Media Item 的 Sitecore 目标不会影响参与价值
Sitecore goals for Media Item don't affect engagement value
我使用 Sitecore 7.2 修订版 140526 + DMS。我正在尝试将目标分配给媒体项目 (PDF)。当我尝试下载此媒体项目时,目标会在 PageEvents table 中注册,但访问的参与度值不会改变。我在 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 取消了页面,因此参与度值不会增加。我可以覆盖此行为或禁用 [=22=] 但我想了解后果以及为什么这样做,我知道有一些建议不要禁用 Sitecore.Analytics.RobotDetection.config
所以我的问题是:为媒体项下载访问分配积分的最佳方式是什么?
对于那些可能遇到同样问题的人,这里是 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>
我使用 Sitecore 7.2 修订版 140526 + DMS。我正在尝试将目标分配给媒体项目 (PDF)。当我尝试下载此媒体项目时,目标会在 PageEvents table 中注册,但访问的参与度值不会改变。我在 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 取消了页面,因此参与度值不会增加。我可以覆盖此行为或禁用 [=22=] 但我想了解后果以及为什么这样做,我知道有一些建议不要禁用 Sitecore.Analytics.RobotDetection.config
所以我的问题是:为媒体项下载访问分配积分的最佳方式是什么?
对于那些可能遇到同样问题的人,这里是 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>