【发布时间】:2023-03-08 22:09:02
【问题描述】:
我想就通过 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>
如您所见,购买事件在页面加载时被正确推送。
我说“正确”,因为在浏览器控制台中检查 dataLayer 对象会显示添加的购买子对象。
上瘾,最后,您会发现一个简单的按钮,该按钮在其 onclick 处理程序上推送另一个通用“eventTest”。甚至这个事件对象也被添加到数据层“队列”中。
供您考虑,以下是有关 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“队列”数据?
事实上,没有事件数据几天后在分析面板中报告我的测试。
分析代码基于谷歌跟踪代码管理器中的“所有页面”触发规则和“电子商务元素”,具有高级电子商务功能和 dataLayer选项,都处于活动状态。
我应该设置任何其他跟踪代码管理器的选项或规则以收集这些事件吗?这些事件之前是否应该在跟踪代码管理器的控制台中“注册”?
抱歉,时间长了,非常感谢。
更新:
我设法收集了这些事件数据,但我在发送事件“标签”时遇到了问题。
我的意思是即使在 Universal Analytics 实时面板中也会定期记录事件,但作为“未定义”。
Inspecting Analytics 的请求显示“ec”和“ea”参数的“未定义”值,包括电子商务对象“addToCart / removeFromCart”dataLayer.push 和通用 onclick“ eventTest" 之一。
这些可能有什么问题?
非常感谢。
【问题讨论】:
标签: events analytics google-tag-manager universal-analytics