【发布时间】: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