Sitecore Analytics:从Web服务触发配置文件和事件

Sitecore Analytics:从Web服务触发配置文件和事件,第1张

概述我有Sitecore.Analytics的问题 从我的xslt,我使用jQuery对web服务进行ajax调用. 在我的网络服务中,我需要注册/保存一些Sitecore.Analytics数据. 问题是我无法使用Sitecore.Analytics.AnalyticsTracker.Current. 那我该怎么做TriggerProfile和TriggerEvent呢? 我想知道Sitecore. 我有Sitecore.Analytics的问题

从我的xslt,我使用jquery对web服务进行AJAX调用.

在我的网络服务中,我需要注册/保存一些Sitecore.Analytics数据.
问题是我无法使用Sitecore.Analytics.AnalyticsTracker.Current.

那我该怎么做TriggerProfile和TriggerEvent呢?
我想知道Sitecore.Analytics.AnalyticsManager是否可以提供任何帮助.

解决方法 我最近遇到了类似的情况,必须跟踪Web服务中的分析事件.如您所述,问题是AnalyticsTracker.Current在Web服务的上下文中为空.

这样做的原因是在trackAnalytics管道期间填充了AnalytisTracker.Current,而后者又在renderLayout管道中调用,只有在上下文项不为null并且上下文项具有已定义的演示设置时才会调用此管道.

话虽如此,有一个解决方法:)

您可以手动启动AnalyticsTracker,如下所示:

if (!AnalyticsTracker.IsActive){    AnalyticsTracker.StartTracking();}

然后,您可以检索AnalyticsTracker实例,如下所示:

AnalyticsTracker tracker = AnalyticsTracker.Current;if (tracker == null)    return;

最后,您可以创建并触发您的事件,个人资料等…下面的示例会触发一个PageEvent.注意:为了获取Timestamp属性,需要特别考虑PageEvent(以及很可能是其他事件).请参阅以下代码中的注释.

if (!AnalyticsTracker.IsActive){    AnalyticsTracker.StartTracking();}AnalyticsTracker tracker = AnalyticsTracker.Current;if (tracker == null)    return;string data = httpContext.Current.Request.UrlReferrer != null                        ? httpContext.Current.Request.UrlReferrer.PathAndquery                        : string.Empty;//Need to set a context item in order for the AnalyticsPageEvent.Timestamp property to //be set. As a Hack,just set the context item to a kNown item before declaring the event,//then set the context item to null afterwards.Sitecore.Context.Item = Sitecore.Context.Database.GetItem("/sitecore");AnalyticsPageEvent pageEvent = new AnalyticsPageEvent();pageEvent.name = "Download Registration Form submitted";pageEvent.Key = httpContext.Current.Request.RawUrl;pageEvent.Text = httpContext.Current.Request.RawUrl;pageEvent.Data = data;//Set the AnalyticsPageEvent.Item property to null and the context item to null.//This way the PageEvent isn't tIEd to the item you specifIEd as the context item.pageEvent.Item = null; Sitecore.Context.Item = null;tracker.CurrentPage.TriggerEvent(pageEvent);tracker.submit();

希望这可以帮助!

总结

以上是内存溢出为你收集整理的Sitecore Analytics:从Web服务触发配置文件和事件全部内容,希望文章能够帮你解决Sitecore Analytics:从Web服务触发配置文件和事件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1138098.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存