2011-11-22 24 views
1

我無法識別通過我們網站的聯繫表單與我們聯繫的訪問者。該表單收集基本信息,但在電子郵件正文中包含一些Sitecore Analytics數據以幫助繪製更大的圖片會很好。如何獲取Sitecore會話期間觸發的廣告系列和目標列表?

爲了實現這一點,我需要以某種方式檢索當前會話期間觸發的所有廣告系列和目標。

Sitecore API爲「觸發」目標和活動提供了便利的方法,但我似乎無法找到任何方法來檢索當前會話觸發的內容。如果可能,我想避免直接查詢OMS數據庫。

任何幫助,非常感謝。

回答

0

你可以在VisitorDataSetTracker.CurrentVisit返回的對象中進行挖掘,你應該能夠獲得一些有用的屬性,然後提取相關數據。

這一點,例如,應該讓你當前訪問歸來的競選活動(如果有相關的活動)..

if(!Tracker.CurrentVisit.IsCampaignIdNull()) 
{ 
    var campaignDataTable = new SharedDataSet.CampaignsDataTable(); 
    var data = campaignDataTable.FindByCampaignId(Tracker.CurrentVisit.CampaignId); 

    Response.Write("Campaign Name:" + data.CampaignName); 
    Response.Write("Id:" + Tracker.CurrentVisit.CampaignId);  
} 
else 
{ 
    Response.Write("No campaign found!"); 
} 

我沒有用這個有很多,但可能讓你走在正確的方向,抱歉,我不能提供任何更多的細節。

+0

謝謝,我試着看看這個。我認爲這些課程可能已經被移除了。我似乎無法在SC 6.4中找到它們。你正在運行什麼版本? –

+0

啊,這是6.5(API比6.4改進了很多)。我會試着看看我能否爲你找到一個6.4的例子。 –

0

我無法得到建議的答案,但我找到了一個解決方案!它應該與Sitecore 6.5至7.2相關(不確定大約7.5及以上)。您可以通過Sitecore.Analytics.Tracker.DataContext對象訪問廣告系列。

結合這方面的知識與斯蒂芬教皇的答案,我們得到:

using System.Linq; 
using Sitecore.Analytics; 

// won't be null if a campaign was triggered 
if (!Tracker.CurrentVisit.IsCampaignIdNull()) 
{ 
    var campaign = Tracker.DataContext.Where(x => x.ID.Guid == Tracker.CurrentVisit.CampaignId).FirstOrDefault(); 

    if (campaign != null) 
    { 
     // do stuff with the campaign here 
     var name = campaign.Title; 
    } 
} 

我也在意獲得系列的流量類型,你可以做像這樣:

var trafficType = campaign.SelectTrafficType.TargetItem.Name; 
相關問題