【问题标题】:omniture drupal s.prop showing previous track data显示以前跟踪数据的omniture drupal s.prop
【发布时间】:2016-05-11 19:48:41
【问题描述】:
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 值,任何建议提前感谢

【问题讨论】:

  • 如果有人可以帮助,请提前感谢omniture

标签: javascript drupal-7 adobe-analytics


【解决方案1】:

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

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)“触发”方法的定义。

s.t() - 这用于“页面查看”跟踪,通常用于在页面首次加载时触发 AA 调用。收集的数据将计为报告中的页面浏览量。 AA 变量在调用时具有值将包含在 http 请求中。

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

变量缓存

AA“缓存”显式设置的变量(例如s.prop1='foo';)。对于您在同一页面上进行的任何后续s.t()s.tl() 调用,这些变量的值将继续存在(它不会通过cookie 从一个页面转移到另一个页面)。

您当前的代码

当您调用 s.tl() 且未传递任何参数时,AA 会将其视为已调用 s.t(),因此任何已设置的 AA 变量或事件(假设您没有覆盖它们)都将包含在 http 请求中,即使他们没有在linkTrackVarslinkTrackEvents 中“注册”。 这是您的变量被结转的直接原因。但是,我还想指出一个事实,即您的代码也有效地将这些点击交互计为页面浏览量,这可能不是您想要的。

新代码的作用

我展示的新代码假设您实际上并不希望这些点击计为页面浏览量。所以,我添加了linkTrackVarslinkTrackEvents 来“注册”事件和变量。

还要注意我是如何向s.tl 添加一些参数的。第一个参数通常是对被点击链接的引用(例如,在点击回调中,this 是对被点击链接的引用,您可以将this 作为第一个参数传递给s.tl。但是, 并非站点上的所有交互都是实际链接,s.tl 仅在第一个参数是对实际链接对象的引用(更准确地说,具有 href 属性的对象)或布尔值 true 时才有效。此外,通过它的原因是因为遗留的 ClickMap 功能一直存在问题,并且 Adob​​e 不再支持。所以,我总是通过 true

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

第三个参数是描述链接/交互的字符串值;一个标签”。 一般您应该使用简短但描述所发生事件的内容,但老实说,大多数人并不会真正查看 AA 界面中的原生链接报告,因为它们基本上是将其分解或将其与下游活动相关联是无用的。这就是为什么大多数人会弹出自定义eventspropseVars,然后查看这些报告。因此,您很可能只需放置一些静态的、通用的“点击/交互”类型值(您必须使用 something 弹出第三个参数)然后就可以结束了。

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

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

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

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

如果您无法使用s.clearVars(),您当然可以定义自己的方法。本质上,s.clearVars() 只是循环并删除或设置所有 propN 和 eVarN 变量以及大多数命名的 AA 变量(页面名称、通道、事件等)的空字符串。和上面一样:首先调用它来擦除变量,然后设置新变量,然后触发。

根据您使用的 AA 代码版本,可以将 AA 变量作为对象有效负载传递(例如,{prop1:'foo',events:'event'} 作为参数传递给 s.t()s.tl(),它们将仅计入该 http 请求和之后被抹去。但是如果你想走这条路,有很多事情需要考虑,这是另一个 TL;DR。我建议你阅读关于 s.ts.tl 的在线 AA 文档具体方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多