我有一段GTM代码,其中事件有时放在对象的顶部,有时放在底部。现在的问题是,是否有任何区别(比如从前一个事件中发送数据),哪个是处理它的正确方法?
dataLayer.push({
'event': 'addToCart',
'ecommerce': {
'add': {
'actionField': { 'list': 'Bestsellers' },
'products': [{
'name': 'Product 1',
'id': 1,
'position': 1,
'quantity': 1
}]
}
}
});
或者
dataLayer.push({
'ecommerce': {
'add': {
'actionField': { 'list': 'Bestsellers' },
'products': [{
'name': 'Product 1',
'id': 1,
'position': 1,
'quantity': 1
}]
}
},
'event': 'addToCart'
});
请注意,这只是一个例子。如果将产品添加到购物车,则事件始终位于dataLayer的顶部,但是在展示的情况下,事件始终位于底部(此部分代码基于互联网上的教程,其中事件放在那里)。乍一看,GA统计数据似乎注册得很好。然而,在GTM + GA组合的情况下,有时很难发现某些东西是否工作不正确(而不是发现它是否有效),因此问题就出现了。
答案 0 :(得分:1)
您正在将javascript object推送到dataLayer。在对象内部,所有属性(电子商务,事件实际上是对象的属性)都是根据它们的名称编制索引的,而不是像数组中那样的数字,它们是进一步精确地使用他们的名字。 Javascript中的对象不保证其属性中的任何顺序。总而言之,在对象中定义属性的顺序并不重要,因为即使在将它推送到dataLayer的时候它们也会进一步“无序”#34;