我最近按照Simo博客上的约定在Google Analytics(分析)增强型电子商务的产品和结帐页面上添加了dataLayer。但是,自从我们添加了dataLayer之后,发生了一些奇怪的事情-gtm.load和gtm.dom调用不再触发。
如果我进行硬刷新,请清除我的cookie并进行一次处理,一切似乎都可以正常启动。但是,一旦返回首页或网站的其他部分,我只会看到gtm.js被解雇,而我的触发器都无法工作。
例如,导航流是主页->产品列表->产品详细信息。该站点是一个React单页应用程序,因此我有一个历史事件触发器来触发GA标签。如果我是新用户,并且浏览了这三个页面,则将在dataLayer中看到以下情况(如预期的那样):gtm.js,gtm.dom,gtm.load,gtm.history。但是,如果我返回主页并再次执行该流程,则gtm.dom和gtm.load dataLayer对象将消失,结果,我的GTM触发器将永远不会触发。有关上述流程,请参见下面的图像以获取dataLayer在产品详细信息页面上的外观示例。
我在这里很茫然,因为我从未见过gtm.load不会触发
产品列表页面上的数据层代码: var window.dataLayer = window.dataLayer || []
dataLayer.push({
'ecommerce': {
'currencyCode':'CAD',
'impressions': [ //the array of products present within the listing
{ 'id':'123456', // Product SKU
'name':'GOOD FOOD', // Product Name
'price':'7.20', // Display price - use only xxxx.xx formatting
'brand':'No Name', // Product Brand
'category':'Food',
'position':0, // Product position within the list
'list':'Products page' // leave as is
}, { //second product
'id':'456890',
'name':'ABC Nuts',
'price':'8.50',
'brand':'ABC',
'category':'Food',
'position':1,
'list':'Products page'
},
...
{
'id':'1001010',
'name':'Fish Oil',
'price':'95.00',
'brand':'Zenn',
'category':'Oil',
'position':21,
'list':'Products page'
}
]
}
}); </script>
产品详细信息页面上的dataLayer:
<script>
var window.dataLayer = window.dataLayer || []
dataLayer.push({
'event': 'detail',
'ecommerce' : { 'detail' :
{ 'products' : [{
'name': 'Product ABC', // Full product name
'id': '123456', // Product SKU
'price': '15.25', // Price
'brand': 'Noname', // Brand of product
'category': 'Food', // Product category: Oil, Capsule, Flower or Accessory
'variant': '5g' // Size
}]
}
}
});
</script>
答案 0 :(得分:0)
由于您位于SPA中,因此gtm.load和gtm.dom仅会发生一次,因此您需要将触发器基于其他内容。