omn​​iture drupal s.prop显示以前的曲目数据

时间:2016-05-11 19:48:42

标签: javascript drupal-7 adobe-analytics

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.prop3的值也在跟踪s.prop4值时它没有清空先前的道具值任何建议事先感谢

1 个答案:

答案 0 :(得分:1)

总的来说,您的代码应更改为以下,但在更改之前,请阅读下面的注释,它解释了它们的变化及其影响,与您现在的情况相比。< / p>

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)的定义&#34;触发&#34;方法。

s.t() - 这适用于&#34;页面视图&#34;跟踪,首次加载页面时通常用于触发AA调用的内容。收集的数据将计为报告中的页面视图。调用此值时具有值的AA变量将包含在http请求中。

s.tl() - 这适用于点击(互动)跟踪,您通常用于在加载页面后跟踪链接点击或其他交互。这将计为报告中的页面视图。只有在 linkTrackVarslinkTrackEvents中设置并注册的变量和事件才会包含在http请求中。注意:设置的其他变量仍然存在于缓存中;他们只是不会被包含在http请求中。因此,请将linkTrackVarslinkTrackEvents视为s.tl电话的白名单。

变量缓存

AA&#34;缓存&#34;明确设置的变量(例如s.prop1='foo';)。对于您在同一页面上进行的任何后续s.t()s.tl()来电,这些变量的值仍然存在(它不会通过Cookie从一页到另一页继续)。

您当前的代码

当您在没有参数的情况下调用s.tl()时,AA会将其视为s.t()被调用,因此任何AA变量或事件(假设您不会覆盖它们)已经设置了包含在http请求中,即使他们没有注册&#34;在linkTrackVarslinkTrackEvents中。 这是您的变量转移的直接原因。但是,我还想指出一个事实,即您的代码也有效地将这些点击交互计为页面视图,这可能可能而非您的意图。

新代码的作用

我所展示的新代码假设您实际上并不希望这些点击次数计为页面浏览量。所以,我已将linkTrackVarslinkTrackEvents添加到&#34;注册&#34;事件和变量。

另请注意我是如何向s.tl添加一些参数的。第一个参数传统上是对单击的链接的引用(例如,在单击回调中,this是对单击的链接的引用,您将this作为第一个参数传递给{ {1}}。但是,并非网站上的所有交互都是实际链接,s.tl仅在第一个参数是对实际链接对象的引用(更准确地说,具有href属性的内容)时才有效,或者boolean s.tl。另外,传递它的原因是传统的ClickMap功能一直都是错误的,而且不再支持Adobe。所以,我总是只传递true。 / p>

第二个参数指定它是什么类型的链接或交互。有3个可用值:&#34; d&#34; (表示下载已启动),&#34; e&#34; (指定网站的退出),&#34; o&#34; (&#34;其他&#34; - 一般&#34;全能&#34;桶)。我不知道你拥有的这些事件处理程序的上下文,所以我只是使用&#34; o&#34;。如果您觉得它们更合适,请随意使用其他值之一。

第三个参数是用于描述链接/交互的字符串值; a&#34;标签&#34;。 一般你应该使用简短但描述发生事件的东西,但老实说,大多数人们并不真正看到AA界面中的原生链接报告,因为他们在打破它或将其与下游活动联系起来时基本没用。这就是为什么大多数人会自定义trueeventsprops,并查看这些报告。所以,你很可能只是放一些静态的,通用的&#34;点击/互动&#34;类型值(必须使用某事弹出第3个arg)并将其称为一天。

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

  • 删除eVarslinkTrackVars行。
  • 删除linkTrackEvents次调用并替换为s.tl(..)(无参数)。
  • 这就是它变得棘手的地方 - 你必须明确擦除你不希望成为命中一部分的任何AA变量。您可以将它们设置为空字符串或s.t()它们。

在第3点,正如你可能已经猜到的那样,这是一个痛点。有一些比较容易的解决方法,但我不知道您的实现的完整上下文,以了解它们是否适合您(甚至可用的选项)。

例如,AA确实有delete方法,但它仅适用于(相对)最新版本的AppMeasurement库。因此,如果您仍然使用旧版H代码库,或者使用其中一个早期版本的AppMeasurement,那么此方法将无法使用。如果它在您的库版本中可用,那么只需先调用它(无参数)。然后设置变量和s.clearVars()调用。

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

根据您使用的AA代码的版本,可以将AA变量作为对象有效负载(例如s.clearVars()作为参数传递给{prop1:'foo',events:'event'}s.t(),它们只会计算那个http请求然后被擦除。但是如果你想要走这条路线有很多事情需要考虑,这是一个完整的其他TL; DR。我建议你阅读关于{的在线AA文档{1}}和s.tl()方法了解详情。