通过标签管理器的 Universal Analytics 事件不起作用
Universal Analytics events via Tag-manager not working
关于通过 Google 跟踪代码管理器部署的 Universal Analytics 的事件触发问题,我希望获得任何帮助。
特别是,我正在尝试发送两种事件在同一页面上:一个 checkout-purchase 事件(增强型电子商务)和一个 onclick generic 自定义事件。
在我页面的相关代码下面,按照onload执行的顺序:
<script>
<!--Initialize dataLayer-->
dataLayer = [{'userId' : ...}];
<!--End dataLayer-->
<!--Tag Manager-->
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':.....})(window,document,'script','dataLayer','GTM-...');
<!--End Tag Manager-->
dataLayer.push({
'event': 'checkout',
'ecommerce': {
'purchase': {
'actionField': {
'id': ...
'revenue': '1.00',
'tax': ...
},
'products': [{
'name': 'Product1',
'price': '1.00',
'category': 'Category 1',
'variant': 'Variant1',
'quantity': 1
}]
}
},
'eventCallback': function() {
console.log("Purchase pushed!");
}
});
</script>
<button onclick="dataLayer.push({'event': 'eventTest'});">CLICK ME</button>
如您所见,购买事件在页面加载时被正确推送。
我声明 "correctly" 因为在浏览器控制台中检查 dataLayer 对象,显示添加的购买子对象。
在上瘾中,最后您会发现一个简单的按钮,它会在其 onclick 处理程序上推送另一个通用的 "eventTest"。甚至这个事件对象也被添加到dataLayer "queue".
供您考虑,以下是关于 Google:
的页面加载“200 状态”请求
- gtm.js?id=GTM-... [www.googletagmanager.com]
- analytics.js [www.google-analytics.com]
- collect?v=1&_v=j35&a=211135512&t=pageview... [www.google-analytics.com]
总之,似乎一切正常
显然,当这些推送完成后,不会触发任何令人上瘾的请求,但这是预料之中的。
我的问题是:何时以及基于什么发送 dataLayer "queue" 数据?
事实上,在我的测试 几天后,Analytics 面板中没有报告任何事件数据。
Analytics 标签基于 "All pages" 触发规则,在 Google 跟踪代码管理器中,"e-commerce elements",具有高级电子商务功能和数据层选项,都处于活动状态。
是否还有其他跟踪代码管理器的选项,或规则,我应该设置以便收集这些事件?这些事件是否应该在跟踪代码管理器的控制台之前 "registered"?
抱歉,太长了,非常感谢。
更新:
我设法收集了这些事件数据,但我遇到了发送事件 "labels" 的问题。
我的意思是即使在 Universal Analytics 实时面板中也会定期记录事件,但作为“undefined".
Inspecting Analytics' 请求显示 "undefined" "ec" 和 "ea" 参数的值,两者都是电子商务对象 "addToCart / removeFromCart" dataLayer.push,以及通用 onclick "eventTest" 一个。
这些可能有什么问题?
非常感谢.
GTM如何观察数据层。
Google Analytics 标签模板会在页面加载时自动评估电子商务数据,因此会记录您的交易。
对于您按钮中的自定义事件,您需要创建触发器、类型 "event"、条件 "event equals eventTest",然后创建一个为事件跟踪配置的 Google Analytics 标记。
Google 当它在两个本应一起使用的产品中使用相同的术语来表示完全不同的东西时,它真的搞砸了。
GTM 事件不会跟踪 Google Analytics 中的任何内容,它是 GTM 中的一个 "reserved" 变量名称,必须存在并填充到触发代码中。在页面加载时,DOM 准备就绪,点击并提交它由 GTM 自动填充。
但是 GTM 事件不会跟踪任何 Google 分析。为此,您需要创建一个单独的 Google 事件跟踪标签,该标签又由 GTM 事件触发(为了避免混淆,可能由 javascript 事件触发)。
在这种情况下,您应该将一个命中发送到 Google Analytics 以发送增强的电子商务数据,并将另一个命中发送到 Google Analytics 事件数据。
这意味着您应该在页面上触发 3 个 Google Analytics 标记:一个用于带有 "All pages" 触发器的综合浏览量跟踪(综合浏览量类型),一个用于增强型电子商务跟踪(事件类型)带有 "event equals checkout" 触发器,一个用于带有 "event equals eventTest" 触发器的事件跟踪(事件类型)。
关于通过 Google 跟踪代码管理器部署的 Universal Analytics 的事件触发问题,我希望获得任何帮助。
特别是,我正在尝试发送两种事件在同一页面上:一个 checkout-purchase 事件(增强型电子商务)和一个 onclick generic 自定义事件。
在我页面的相关代码下面,按照onload执行的顺序:
<script>
<!--Initialize dataLayer-->
dataLayer = [{'userId' : ...}];
<!--End dataLayer-->
<!--Tag Manager-->
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':.....})(window,document,'script','dataLayer','GTM-...');
<!--End Tag Manager-->
dataLayer.push({
'event': 'checkout',
'ecommerce': {
'purchase': {
'actionField': {
'id': ...
'revenue': '1.00',
'tax': ...
},
'products': [{
'name': 'Product1',
'price': '1.00',
'category': 'Category 1',
'variant': 'Variant1',
'quantity': 1
}]
}
},
'eventCallback': function() {
console.log("Purchase pushed!");
}
});
</script>
<button onclick="dataLayer.push({'event': 'eventTest'});">CLICK ME</button>
如您所见,购买事件在页面加载时被正确推送。
我声明 "correctly" 因为在浏览器控制台中检查 dataLayer 对象,显示添加的购买子对象。
在上瘾中,最后您会发现一个简单的按钮,它会在其 onclick 处理程序上推送另一个通用的 "eventTest"。甚至这个事件对象也被添加到dataLayer "queue".
供您考虑,以下是关于 Google:
的页面加载“200 状态”请求
- gtm.js?id=GTM-... [www.googletagmanager.com]
- analytics.js [www.google-analytics.com]
- collect?v=1&_v=j35&a=211135512&t=pageview... [www.google-analytics.com]
总之,似乎一切正常
显然,当这些推送完成后,不会触发任何令人上瘾的请求,但这是预料之中的。
我的问题是:何时以及基于什么发送 dataLayer "queue" 数据?
事实上,在我的测试 几天后,Analytics 面板中没有报告任何事件数据。
Analytics 标签基于 "All pages" 触发规则,在 Google 跟踪代码管理器中,"e-commerce elements",具有高级电子商务功能和数据层选项,都处于活动状态。
是否还有其他跟踪代码管理器的选项,或规则,我应该设置以便收集这些事件?这些事件是否应该在跟踪代码管理器的控制台之前 "registered"?
抱歉,太长了,非常感谢。
更新:
我设法收集了这些事件数据,但我遇到了发送事件 "labels" 的问题。
我的意思是即使在 Universal Analytics 实时面板中也会定期记录事件,但作为“undefined".
Inspecting Analytics' 请求显示 "undefined" "ec" 和 "ea" 参数的值,两者都是电子商务对象 "addToCart / removeFromCart" dataLayer.push,以及通用 onclick "eventTest" 一个。
这些可能有什么问题?
非常感谢.
GTM如何观察数据层
Google Analytics 标签模板会在页面加载时自动评估电子商务数据,因此会记录您的交易。
对于您按钮中的自定义事件,您需要创建触发器、类型 "event"、条件 "event equals eventTest",然后创建一个为事件跟踪配置的 Google Analytics 标记。
Google 当它在两个本应一起使用的产品中使用相同的术语来表示完全不同的东西时,它真的搞砸了。
GTM 事件不会跟踪 Google Analytics 中的任何内容,它是 GTM 中的一个 "reserved" 变量名称,必须存在并填充到触发代码中。在页面加载时,DOM 准备就绪,点击并提交它由 GTM 自动填充。
但是 GTM 事件不会跟踪任何 Google 分析。为此,您需要创建一个单独的 Google 事件跟踪标签,该标签又由 GTM 事件触发(为了避免混淆,可能由 javascript 事件触发)。
在这种情况下,您应该将一个命中发送到 Google Analytics 以发送增强的电子商务数据,并将另一个命中发送到 Google Analytics 事件数据。
这意味着您应该在页面上触发 3 个 Google Analytics 标记:一个用于带有 "All pages" 触发器的综合浏览量跟踪(综合浏览量类型),一个用于增强型电子商务跟踪(事件类型)带有 "event equals checkout" 触发器,一个用于带有 "event equals eventTest" 触发器的事件跟踪(事件类型)。