以编程方式跟踪使用配置文件卡访问项目

时间:2015-04-08 16:19:38

标签: sitecore sitecore7.2

我们刚刚接管了一个客户希望使用个人资料和模式卡添加个性化的网站。

然而,网站的构建方式意味着访问者实际上从未真正转到将分配了配置文件卡的项目的URL。而是转到单个页面,查询字符串上的值告诉页面应该加载哪些项数据。因此,从不跟踪用户访问该项目,并且配置文件卡对用户的配置文件没有影响。

有没有办法实际触发通常会发生的事情,以便用户为这些页面建立个人资料得分?

该网站正在使用Sitecore 7.2

3 个答案:

答案 0 :(得分:3)

您应该能够使用Google Analytics API以编程方式触发配置文件。

 var profile = Sitecore.Analytics.Tracker.CurrentVisit.GetOrCreateProfile("<Profile Name>");
 profile.BeginEdit();
 profile.Score("<profile key>",<profile key value you want to set>);
 profile.Score("<profile key>",<profile key value you want to set>);
 profile.UpdatePattern(); //sets the appropriate pattern based on the       current profile keys values you have just set.
 profile.EndEdit();

我还要看一下Sitecore.Analytics.Tracker.CurrentVisit对象上的其他方法来执行其他操作

答案 1 :(得分:0)

您是否希望注册页面事件?如果是这样,您可能希望尝试以编程方式创建页面事件项并注册它们。

示例:

PageEventItem pei = new PageEventItem(goalItem);
VisitorDataSet.PageEventsRow pageEventsRow = Tracker.CurrentPage.Register(pei);
Sitecore.Analytics.Tracker.Submit();

上面的代码假设您已经以编程方式检索了Sitecore项目的目标(goalItem)。然后它注册页面事件并提交更改。您可以对事件或广告系列做同样的事情。

其他资源:

答案 2 :(得分:0)

在深入了解分析后,我发现你可以做到这一点。

Sitecore.Data.Database db = Sitecore.Configuration.Factory.GetDatabase("web");
(new TrackingFieldProcessor()).Process(db.GetItem(new ID("395BDEF7-16CB-4C94-B9B6-A6EAC148401F")));

这将导致配置文件键值正确更新,但访客histroy仍然看起来像访问者没有看到页面。要改变它,你可以这样做。

VisitorDataSet.PagesRow rawUrl = Tracker.CurrentVisit.GetOrCreateCurrentPage();
rawUrl.Url = "new url value";
rawUrl.UrlText = "new url value";