【问题标题】:Sitecore goals for Media Item don't affect engagement value媒体项目的 Sitecore 目标不会影响参与价值
【发布时间】:2016-04-01 06:21:06
【问题描述】:

我使用 Sitecore 7.2 修订版 140526 + DMS。我正在尝试将目标分配给媒体项目 (PDF)。当我尝试下载此媒体项目时,目标会在 PageEvents 表中注册,但访问的参与价值不会改变。我在 StartTrackingProcessor 中找到了以下代码:

Tracker.CurrentPage.OnCancel += (EventHandler)((obj, args) =>
{
    AcceptChangesArgs acceptChangesArgs = args as AcceptChangesArgs;
    if (acceptChangesArgs == null)
        return;
    VisitorDataSet.VisitsRow currentVisit = acceptChangesArgs.Visitor.CurrentVisit;
    if (currentVisit == null)
        return;

    Tracker.CurrentPage.RollBackValue(pageEventData, currentVisit);
});

此代码可防止在管道中某处取消的页面的参与度值增加。 然后我在 Sitecore.Analytics.RobotDetection.Media.MediaRequestEventHandler 中找到了取消页面的代码,该代码由 Sitecore.Analytics.RobotDetection.config 启用:

using (new ContextItemSwitcher(obj))
{
    try
    {
        this.StartTracking();
        VisitorDataSet.PagesRow previousPage = Tracker.CurrentVisit.PreviousPage;
        if (previousPage != null)
        {
            Guid pageId = previousPage.PageId;
            foreach (VisitorDataSet.PageEventsRow pageEventsRow in Enumerable.ToArray<VisitorDataSet.PageEventsRow>(Tracker.CurrentPage.PageEvents))
                pageEventsRow.PageId = pageId;


            Tracker.CurrentPage.Cancel();
        }
        this.EndTracking();
    }
    catch (Exception ex)
    {
        Log.Error("Media request analytics failed", ex, this.GetType());
    }
}

所以这个 MediaRequestEventHandler 取消了页面,因此参与度值不会增加。我可以覆盖此行为或禁用 RobotDetection.config,但我想了解后果以及这样做的原因,我知道有建议不要禁用 Sitecore.Analytics.RobotDetection.config

所以我的问题是:为媒体项目下载的访问分配积分的最佳方式是什么?

【问题讨论】:

  • 对媒体文件的请求是始终取消还是仅在会话的第一个请求时取消? 7.5 中的一项改进是在首次访问时对媒体进行机器人检测。所以这可能是 Sitecore 支持可以帮助您解决的问题。
  • @BenGolden 从代码和我在测试时看到的情况来看,它似乎总是被取消。
  • 只是为了确认一下,您的页面布局中是否有 VisitorIdentification 控件?
  • @IanGraham 是的,我在布局中有 VisitorIdentification 控件。

标签: sitecore sitecore7.2


【解决方案1】:

对于那些可能遇到同样问题的人来说,这里是 sitecore 支持的回应。这种行为被报告为一个错误,作为一种解决方法,他们建议在 Sitecore.Analytics.RobotDetection.config 中注释掉以下行:

<event name="media:request">
    <handler patch:instead="*[@type='Sitecore.Analytics.Media.MediaRequestEventHandler, Sitecore.Analytics']" type="Sitecore.Analytics.RobotDetection.Media.MediaRequestEventHandler, Sitecore.Analytics.RobotDetection" method="OnMediaRequest"/>
</event>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    相关资源
    最近更新 更多