如何获得在Sitecore会话期间触发的活动和目标列表
本文关键字:活动 列表 目标 何获得 Sitecore 会话 | 更新日期: 2023-09-27 18:15:23
我在识别通过我们网站的联系表单联系我们的访问者时遇到了麻烦。该表单收集基本信息,但如果在邮件正文中包含一些Sitecore Analytics数据,以帮助描绘更大的图景,那就更好了。
为了实现这一点,我需要以某种方式检索当前会话中触发的所有活动和目标。
Sitecore API为"触发"目标和活动提供了方便的方法,但我似乎找不到任何方法来检索为当前会话触发的内容。如果可能的话,我希望避免直接查询OMS数据库。
您可以在Tracker.CurrentVisit
返回的VisitorDataSet
对象中进行挖掘,您应该能够获得一些有用的属性,然后提取相关数据。
这个,例如,应该得到您当前访问返回的广告系列(如果有相关的广告系列)..
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!");
}
我不经常使用这个,但可能会让你在正确的方向,对不起,我不能提供更多的细节
我无法得到建议的答案,但我找到了一个解决方案!它应该与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;