【发布时间】:2015-01-30 12:47:15
【问题描述】:
基于此线程:Tracking events using Google Tag Manager
我创建了自己的版本,例如位于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 条防火规则:
- {{url}} 包含 test.site.com
- {{event}} 等于 GAevent
我得到的是实时谷歌分析中的“event category: undefined”和“event action: undefined”。
如果我删除 "{{url}} contains test.site.com",则不会实时显示任何内容。
更新 我使用了一个单独的谷歌标签管理器帐户并创建了一个测试页面,所以一切都是最低限度的。它似乎实时工作。非工作的谷歌标签管理器由学校和院系共享。我怀疑是这个原因?
【问题讨论】:
-
您是否记得在您的 Analytics 事件跟踪代码中插入相应的宏?另外,不要对 GTM 和 GA 都有所谓的“事件”这一事实感到困惑,它们是完全不同的东西。
-
我确定问题是@EikePierstorff 提到的。您没有创建并插入相应的 eventCategory、eventAction、eventLabel 宏。
-
我已经为 eventCategory、eventAction、eventLabel 创建了 dataLayer marcos。我需要为 GAevent 创建自定义事件吗?另一个问题:我将 '{{event}} equals GAevent' 设置为触发规则。 dataLayer.push({'event':'GAevent', ...}) 真的会触发 GAevent 吗?
-
根据 dataLayer 推送的位置,您似乎只在此特定页面上触发了代码。这是你的意图吗?除了这个页面加载之外,没有其他东西可以触发推送。
-
我的最终目标是,如果我点击一个按钮,那么谷歌分析将在“事件类别”中记录点击操作。我想如果我能够让它在页面加载时工作,那么我离我的目标更近了 1 步。我假设 dataLayer.push({'event':'GAevent', ...}) 在页面加载时实际上触发了 GAevent?
标签: javascript google-analytics google-tag-manager