对于通过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 status'请求:
- gtm.js?id = GTM -... [www.googletagmanager.com]
- analytics.js [www.google-analytics.com]
- 收集?v = 1&_v = j35&a = 211135512&t = pageview ... [www.google-analytics.com]
简而言之,一切似乎都没问题 .
显然,当完成这些推送时,不会触发成瘾请求,但这是预期的 .
我的问题是:何时,以及基于什么,dataLayer "queue"数据被发送?
事实上, no events data are reported in Analytics panel after several days 来自我的测试 .
Analytics标记基于Google跟踪代码管理器中的"All pages"触发规则,而"e-commerce elements"具有高级电子商务功能和dataLayer选项,均处于活动状态 .
有没有其他Tag Manager 's options, or rules, I should set in order to make those events be collected?? Should those events be previously 2520849 in Tag Manager'的控制台?
为长期而道歉并非常感谢 .
UPDATE:
我设法收集了这些事件数据,但我遇到了发送事件"labels"的问题 .
我的意思是即使在Universal Analytics实时面板中也会定期记录事件,但是“ undefined ” .
对于电子商务对象"addToCart / removeFromCart"dataLayer.push和通用onclick "eventTest"一个,检查Google Analytics请求的"ec"和"ea"参数值均为"undefined" .
这些可能有什么问题?
非常感谢 .
2 回答
在这种情况下,您应向Google Analytics发送一次点击以发送增强型电子商务数据,并发送其他点击以发送Google Analytics事件数据 .
这意味着您应该在您的页面上触发3个Google Analytics代码:一个用于具有“所有页面”触发器的网页浏览跟踪(网页浏览类型),一个用于增强电子商务跟踪(事件类型),具有“事件等于结帐”触发器,一个用于事件跟踪(事件类型),带有“event equals eventTest”触发器 .
GTM如何观察dataLayer is answered here .
通过Google Analytics代码模板在页面加载时自动评估ecommcerce数据,以便记录您的交易 .
对于按钮中的自定义事件,您需要创建触发器,键入“event”,条件“event equals eventTest”,然后创建为事件跟踪配置的Google Analytics标记 .
谷歌在两个产品中使用相同的术语来完全不同的东西时,谷歌真的搞砸了 .
GTM事件不会跟踪Google Analytics中的任何内容,它是GTM中的“保留”变量名称,必须存在并填充到fire标记中 . 在页面加载,DOM就绪,点击并提交由GTM自动填充 .
但是,GTM事件不会跟踪Google Analytics的任何内容 . 为此,您需要创建一个单独的Google事件跟踪代码,该代码又由GTM事件触发(为了完成混淆,可能会由javascript事件触发) .