在以前,我知道我可以通过GA跟踪电子商务,就像这样
ga("ec:setAction","checkout", {"step": 1,"option": "don't understand this"});。。
现在我必须从GA转到GTM,所以我读了谷歌的DevGuide,并尝试了这个。
function onCheckout() {
dataLayer.push({
"event": "checkout",
"ecommerce": {
"checkout": {
"actionField": {"step": 1, "option": "don't understand this"},
"products": [{
"name": "Some pXXn BD",
"id": "x100-2",
"price": "29.0",
"brand": "SOD",
"quantity": 1
}]
}
},
"eventCallback": function() {
document.location = "some_next_page.html";
}
});
}但是,我不能使用eventCallback函数,因为我的站点中的Next按钮链接只是一个简单的javascript代码,如
void(0);真实的页面流是由某个外部.js文件控制的,我无法修改该文件。所以我尝试了另一种方法,但没能成功。我还是没有结账追踪的线索..。
<script>
dataLayer.push
({
'event': 'checkout',
'ecommerce': {'checkout': {'actionField': {'step': 1}}}
});
</script>

欢迎任何建议~
发布于 2017-08-20 05:07:53
eventCallback特性基本上允许您确保在页面导航发生之前,所有必要的标记都已经完成。这是保证标签发射的一种方法。
在您的例子中,您可以简单地从eventCallback中省略dataLayer。当然,这意味着页面导航在之前发生的可能性很小,标记有机会触发,但这是一个很小的机会,因为标记通常在几毫秒内触发。在将上述内容推到dataLayer上之后,当然需要在GTM接口中配置一个标记,该标记捕获这些数据并将其发送给GA。
因此,您将执行以下代码:
<script>
dataLayer.push({
'event': 'checkout',
'ecommerce': {
'checkout': {
'actionField': {'step': 1},
'products': [{
'name': 'Triblend Android T-Shirt',
'id': '12345',
'price': '15.25',
'brand': 'Google',
'category': 'Apparel',
'variant': 'Gray',
'quantity': 1
}]
}
}
});
</script>然后在GTM中设置一个标记,如下所示:

触发器如下所示:

option属性用于捕获用户可以为特定签出步骤选择的设置。例如,在付款结账步骤中,用户可能选择使用现金或信用购物车。签出选项旨在捕获此值。
发布于 2017-08-19 19:24:05
只是不要使用eventCallback。如果你在你的逻辑中不需要它,就没有必要使用它。
检查以下所有必需变量:https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce
https://stackoverflow.com/questions/45750474
复制相似问题