【问题标题】:Console returns value but Google Tag Manager variable does not控制台返回值,但 Google 跟踪代码管理器变量不返回
【发布时间】:2015-05-28 09:40:15
【问题描述】:

当我将dataLayer[1].ecommerce.checkout.products[0].metric2 放入控制台时,它会返回正确的值。

但是,当我尝试从 Google 跟踪代码管理器中的自定义 JavaScript 变量(“测试”)中提取值时,当 Google 跟踪代码管理器处于预览模式时,它会返回 undefined

JavaScript 代码:

function(){
var basketSize = dataLayer[1].ecommerce.checkout.products[0].metric2;
return basketSize;
}

【问题讨论】:

  • 关于什么问题?
  • 我正在开发一个增强型电子商务客户端,其中当前购物篮大小在结帐的每个步骤中都被推送到 dataLayer 作为“metric2”我想做的是对这些值进行分组在处理 Google Analytics 中的数据之前,每隔 200 次(0-200、201-400 等)。但是,跟踪代码管理器似乎没有根据放入控制台的代码找到正确的值。据我了解,他们应该以相同的方式读取 dataLayer 中的数据,尽管我可能错了?
  • 可能在您评估自定义 javascript 变量时,GTM 已将许多其他内容(gtm.js、gtm.dom 和 gtm.load 事件等)推送到 dataLayer,因此您的索引是错误的。您应该仅通过 dataLayer 变量访问 dataLayer,其他任何事情都是自找麻烦。
  • 谢谢@EikePierstorff!问题是,我想在将数据发送到 GA 之前对值进行分组,而 dataLayer 变量——据我所知——不提供?当我在控制台中查找 dataLayer[1] 时,它指的是正确的 dataLayer,我可以通过上面的表达式查找该值。令我困惑的是,在设置 i Custom JavaScrip 变量时,完全相同的表达式没有返回值..
  • 在 GTM 控制台中记录的每个事件都会发生这种情况吗?

标签: javascript google-tag-manager


【解决方案1】:

如果您的问题尚未得到解答:问题是您不想在 GTM 中的 dataLayer 变量中引用 dataLayer 数组。这没有意义,因为您已经在dataLayer“命名空间”中。如果您通过简单地编写 ecommerce./*...*/.metric2 并省略 dataLayer[1] 部分来引用该字段,它将起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 2019-09-22
    相关资源
    最近更新 更多