Цели Sitecore для Media Item не влияют на ценность участия
Я использую 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
Итак, мой вопрос: каков наилучший способ присвоить баллы посещению для загрузки медиа-элемента?
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>