javascript - 从 GTM 访问数据层

标签 javascript google-tag-manager google-datalayer data-layer

我在 GTM(Google 跟踪代码管理器)中创建了以下代码:

(function(window) {
    if (typeof(dataLayer[dataLayer.length-1].count) !== "undefined"){
        dataLayer.push({'count':dataLayer[dataLayer.length-1].count+1});
    } else {
        dataLayer.push({'count':1});
    }
})(window);

最初,当没有“count”推送到数据层时,if 语句返回 false 并推送 { "count": 1} 。之后,计数值应随着每次推送而增加。我的目标只是计算某个按钮的点击次数。

但是,“if”语句似乎从未经过验证,因此每次单击按钮都会将“0”-s 推送到数据层。我知道这不是最好的解决方案,但我仍然无法找出为什么这不起作用。顺便说一句,当我在浏览器控制台中运行此代码时,它正在工作。

最佳答案

我必须使用 dataLayer.length-2 而不是 dataLayer.length-1 来访问 count。这是由于GTM在每次点击事件后将gtm.click推送到dataLayer造成的

关于javascript - 从 GTM 访问数据层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43684676/

相关文章:

javascript - 如何在 Three.js 中从圆柱体中挤出高度段?

javascript - 悬停时用淡入淡出交换图像

javascript - 从 dataLayer.push 获取值

javascript - 基于电子商务数据层对象的 Google 跟踪代码管理器自定义 JavaScript 变量

javascript - 如何将元素固定值的父级向下移动?

javascript - Uncaught ReferenceError : sample is not defined

javascript - Google Analytics 发送事件回调函数

javascript - dataLayer.push() 在 anchor 上触发时肯定会向谷歌发送数据吗?

java - 适用于 Android 的 Google 跟踪代码管理器 NullPointerException

google-analytics - GTM如何将自定义维度设置为GA页面 View ?