我无法识别通过我们网站的联系表单与我们联系的访客。该表单收集基本信息,但最好在电子邮件正文中包含一些Sitecore Analytics数据,以帮助描绘更大的图片。
为实现这一目标,我需要以某种方式检索当前会话期间触发的所有广告系列和目标。
Sitecore API提供了“触发”目标和广告系列的便捷方法,但我似乎无法找到任何方法来检索当前会话触发的内容。如果可能的话,我想避免直接查询OMS数据库。
非常感谢任何帮助。
答案 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;