2016-04-28 39 views
3

我有一個分析管道添加在部分標準之前刪除重複觸發pageevents之前提交所有數據庫,所以我可以有獨特的觸發事件,因爲似乎有一個錯誤的android/ios設備觸發幾個事件內秒間隔。如何獲取commitDataSet Analytics管道中的Sitecore會話期間觸發的所有目標?

在此自定義管道中,我需要獲取當前用戶在他的會話中觸發的所有目標/事件的列表,以便我可以比較從args參數獲取的數據集中的值並刪除已觸發的值。

args.DataSet.Tables [「PageEvents」]只返回要提交給數據庫的集合,並且這沒有幫助,因爲每次運行此管道時它都會發生更改。我也試過Sitecore.Analytics.Tracker.Visitor.DataSet,但是我得到這些屬性的空值。

有沒有人知道如何獲得用戶在他的會話中觸發的所有目標的列表,而無需直接向數據庫請求?

一些代碼:

public class CommitUniqueAnalytics : CommitDataSetProcessor 
     { 
      public override void Process(CommitDataSetArgs args) 
      { 
       Assert.ArgumentNotNull(args, "args"); 
       var table = args.DataSet.Tables["PageEvents"]; 
       if (table != null) 
       { 
        //Sitecore.Analytics.Tracker.Visitor.DataSet.PageEvents - this list always empty 
        ........... 
       } 
      } 
     } 

回答

0

我有一個similar question

在Sitecore的7.5,我發現這工作:

Tracker.Current.Session.Interaction.Pages.SelectMany(x=>x.PageEvents) 

不過我有點擔心,這將是低效的,如果Pages集合是非常大的。

相關問題