从GTM访问数据层

时间:2017-04-28 16:14:34

标签: 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”被推送到dataLayer时,if语句返回false并且推送{“count”:1}。之后,每次按下都应增加count的值。我的目的只是计算某个按钮的点击次数。

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

1 个答案:

答案 0 :(得分:0)

我必须使用dataLayer.length-2代替dataLayer.length-1才能访问count。这是因为GTM在每次点击事件后将gtm.click推送到dataLayer