![](/img/trans.png)
[英]Google Analytics dataLayer.push not working in a Javascript Promise
[英]Google analytics: dataLayer.push not working?
基於此主題: 使用Google跟蹤代碼管理器跟蹤事件
我創建了自己的版本,位於http://test.site.com
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
'event':'GAevent',
'eventCategory': 'App4',
'eventAction': 'Click',
'eventLabel': 'iOS4'
});
</script>
</head>
<body>
<!-- Start google tag manager -->
<script>
(function(w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
'gtm.start': new Date().getTime(),
event: 'gtm.js'
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src =
'//www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'primecont', 'GTM-1234');
</script>
<!-- End google tag manager -->
</body>
</html>
我打開谷歌標簽管理器調試模式,並在谷歌分析實時觀看它。
我對標簽有2個防火規則:
我得到的是“ event category: undefined
”和“ event action: undefined
”實時谷歌分析。
如果我刪除"{{url}} contains test.site.com
”,則不會實時顯示任何內容。
更新我使用了一個單獨的谷歌標記管理器帳戶並創建了一個測試頁面,所以一切都是最小的。 它似乎在實時工作。 非工作的Google代碼管理器由學校和學院共享。 我懷疑是這個原因?
由於多種原因,您的標簽使用錯誤的變量觸發。
如果dataLayer.push()
是正確的,那么Tag只需要{{url}}匹配RegEx。*作為其規則,因為在容器代碼段之前發生的所有推送都可用於所有頁面規則。
但是,如果您願意,還可以推送'event' : 'GAEvent'
預容器代碼段。 但是,您必須刪除{{url}}規則,因為它會使您的代碼觸發兩次 :首先使用{{event}}等於GAEvent ,然后使用{{url}}規則。
即使您修復了上述問題,您的代碼仍無法正常工作的原因是您已在容器代碼段中重命名了dataLayer對象:
})(window, document, 'script', 'primecont', 'GTM-1234');
由於某些原因, 'primecont'
字符串是您提供的Google 'primecont'
代碼管理器數據層的新名稱。 這就是為什么你的dataLayer.push()
不起作用,因為Google primecont.push()
代碼管理器正在監聽primecont.push()
。
因此,要么將所有dataLayer
交互更改為primecont
,要么將容器代碼段的調用行編輯為如下所示:
})(window, document, 'script', 'dataLayer', 'GTM-1234');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.