I use Sitecore 7.2 revision 140526 + DMS. I'm trying to assign goal to the media item (PDF). When I try to download this media item the goal get registered in the PageEvents table but Engagement Value of the visit does not change. I found following code inside 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);
});
This code prevents engagement value from increasing for the pages that have been cancelled somewhere in the pipeline. And then I found the code that cancel the page in the Sitecore.Analytics.RobotDetection.Media.MediaRequestEventHandler whech is enabled by 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());
}
}
So this MediaRequestEventHandler cancels the page and therefore engagement value does not increase. I can override this behavior or disable RobotDetection.config but I want to understand the consequences and why it was done this way and I know there are recommendations not to disable Sitecore.Analytics.RobotDetection.config
So my question: what is the best way to assign points to the visit for media item download?