2016-03-22 124 views
3

我使用Sitecore 7.2修訂版140526 + DMS。我試圖將目標分配給媒體項目(PDF)。當我嘗試下載此媒體項目時,目標會在PageEvents表格中註冊,但訪問的參與值不會更改。我發現下面的代碼裏面StartTrackingProcessor:媒體項目的Sitecore目標不會影響參與價值

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 whech由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

所以我的問題:什麼是爲媒體項目下載分配訪問點的最佳方式是什麼?

+0

是請求總是取消或媒體文件,只有當它是第一個請求會議? 7.5版本的改進之一是在第一次訪問時重新修改介質的機器人檢測。所以這可能是Sitecore支持可以幫助您的。 –

+0

@BenGolden從代碼和我看到當我測試它看起來像它總是取消。 – Elena

+0

只需確認,您的網頁佈局中是否有VisitorIdentification控件? –

回答

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> 
相關問題