如何获取Sitecore会话期间触发的广告系列和目标列表?

时间:2011-11-22 22:33:26

标签: c# asp.net analytics sitecore sitecore6

我无法识别通过我们网站的联系表单与我们联系的访客。该表单收集基本信息,但最好在电子邮件正文中包含一些Sitecore Analytics数据,以帮助描绘更大的图片。

为实现这一目标,我需要以某种方式检索当前会话期间触发的所有广告系列和目标。

Sitecore API提供了“触发”目标和广告系列的便捷方法,但我似乎无法找到任何方法来检索当前会话触发的内容。如果可能的话,我想避免直接查询OMS数据库。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您可以在VisitorDataSet返回的Tracker.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!");
} 

我没有经常使用它,但可能会让你朝着正确的方向前进,抱歉,我无法提供更多细节。

答案 1 :(得分:0)

我无法得到拟议的答案,但我发现了一个解决方案!它应该与Sitecore 6.5到7.2相关(不确定7.5及以上)。您可以通过Sitecore.Analytics.Tracker.DataContext对象访问广告系列。

将这些知识与Stephen Pope的答案相结合,我们得到:

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;