繁体   English   中英

多功能Drupal s.prop显示以前的轨迹数据

[英]omniture drupal s.prop showing previous track data

jQuery('selector1').click(function() {
    s.prop3 = 'loremmmmm';
    s.events = 'event11';
    s.tl();

});

jQuery('selector2').click(function() {
    s.prop14 = 'lorem isam';
    s.events = 'event32';
    s.tl();

});

`跟踪一个道具时尝试跟踪多个道具和事件,例如s.prop2 =“”; s.prop3 =“” 在这种情况下,在跟踪s.prop4值的同时也获得s.prop3的值,它不会清空先前的prop值,因此没有任何建议

总体而言,您的代码应更改为以下内容, 但是在进行更改之前,请阅读以下我的注释 ,其中解释了这些更改及其含义以及与现在相比的含义。

jQuery('selector1').click(function() {
    s.prop3 = 'loremmmmm';
    s.events = 'event11';
    s.linkTrackVars='prop3,events';
    s.linkTrackEvents='event11';
    s.tl(true,'o','selector1 clicks');
});

jQuery('selector2').click(function() {
    s.prop14 = 'lorem isam';
    s.events = 'event32';
    s.linkTrackVars='prop14,events';
    s.linkTrackEvents='event32';
    s.tl(true,'o','selector2 clicks');
});

首先,定义Adobe Analytics(AA)“触发”方法。

st() -这用于“页面视图”跟踪,通常用于在首次加载页面时触发AA调用。 收集的数据将被视为报告中的页面浏览。 带有值的AA变量在被调用时将包含在http请求中。

s.tl() -这是用于单击(交互)跟踪的,通常用于跟踪页面加载的链接点击或其他交互。 在您的报告中,这不会算作页面浏览。 http请求中将仅包含在linkTrackVarslinkTrackEvents中设置和注册的变量和事件。 注意:设置的其他变量仍然存在并且在高速缓存中; 它们只是不会包含在http请求中。 因此, s.tl linkTrackVarslinkTrackEvents视为s.tl调用的白名单。

可变缓存

AA“缓存”已明确设置的变量(例如s.prop1='foo'; )。 对于您在同一页面上进行的任何后续st()s.tl()调用,这些变量将继续保留其值(它们不会通过cookie s.tl()页传递)。

您当前的代码

当您在不传递任何参数的情况下调用s.tl()时,AA会像调用st()一样对待它,因此,已设置的所有AA变量或事件(假设您不覆盖它们)都将包含在http请求中,即使如果未在linkTrackVarslinkTrackEvents “注册”它们。 这就是您的变量被结转的直接原因 但是,我还想指出一个事实,您的代码还可以有效地将这些点击互动算作页面浏览量,这可能不是您想要的。

新代码的作用

我所显示的新代码是在您实际上不希望这些点击视为网页浏览量的前提下进行的。 因此,我添加了linkTrackVarslinkTrackEvents来“注册”事件和变量。

还要注意我如何向s.tl添加一些参数。 传统上,第一个参数是对被单击链接的引用(例如,在click回调中, this是对被单击链接的引用,您可以将this作为第一个参数传递给s.tl但是,并非所有交互在网站上是实际的链接,并且s.tl仅在第一个参数是对实际链接对象的引用(更准确地说,是带有href属性的对象)或boolean true时才起作用。传统的ClickMap功能一直存在问题,而且Adobe也不再支持它,因此,我总是传递true

第二个参数指定链接或交互的类型。 有3个可用值:“ d”(表示开始下载),“ e”(指定从站点退出)和“ o”(“ other”-通用的“ catch-all”存储桶)。 我不知道您拥有这些事件处理程序的上下文,因此我只使用了“ o”。 如果您认为它们更合适,请随意使用其他值之一。

第三个参数是用于描述链接/交互的字符串值; 一个标签”。 通常,您应该使用简短但可以描述发生的事件的方法,但是老实说, 大多数人并没有真正查看AA界面中的本机链接报告,因为它们对于将其分解或与下游活动相关联基本上是无用的。 这就是为什么大多数人会弹出自定义eventspropseVars ,而是查看这些报告的原因。 所以,很可能你可以把一些静态的,通用的“点击/互动”型值(你必须弹出的东西第三个参数)和收工。

如果您确实打算将这些视为网页浏览量

  • 删除linkTrackVarslinkTrackEvents行。
  • 删除s.tl(..)调用,并替换为st() (无参数)。
  • 这就是棘手的地方-您必须明确擦除所有不希望成为匹配内容的AA变量。 您可以将它们设置为空字符串或delete它们。

正如您可能已经猜到的那样,关于第三点,这是一个痛苦的问题。 有一些更简单的解决方法,但是我不知道实现的完整上下文,无法确定它们是否是您的好选择(甚至是可用的选项)。

例如,AA确实具有s.clearVars()方法,但仅在(相对)最新版本的AppMeasurement库中可用。 因此,如果您仍在旧版H代码库上,或者在AppMeasurement的较早版本之一上,则此方法将不可用。 如果您的库版本提供了该功能,则只需先调用该功能即可(无参数)。 然后设置变量并调用st()

如果您无法使用s.clearVars() ,则当然可以定义自己的方法。 本质上, s.clearVars()只是循环遍历并删除或为所有propN和eVarN变量以及大多数命名的AA变量(pageName,channel,event等)设置空字符串。 与上述相同:首先调用它以清除var,然后设置新变量,然后触发。

根据您使用的AA代码的版本,可以将AA vars作为对象有效负载传递(例如, {prop1:'foo',events:'event'}作为st()s.tl()的参数,并且他们只会考虑该http请求,然后再删除。但是,如果您要沿这条路线走,还有很多古怪的地方要考虑,这是其他TL; DR。建议您阅读在线的AA文档有关sts.tl方法的详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM