事件在数据层中的位置——重要吗?

Position of event in data layer - does it matter?

我有一段 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'
});

注意这只是一个例子。在将产品添加到购物车的情况下,事件始终位于数据层的顶部,但在印象事件的情况下,事件始终位于底部(这部分代码基于在互联网上找到的教程,其中事件放置在那里).乍一看,GA 统计数据似乎没有问题。然而,在 GTM+GA 组合的情况下,有时很难找出是否有问题(而不是找出它是否有效),因此出现了问题。

您正在将 javascript object 推入数据层。在对象内部,所有属性(ecommerceevent 实际上是对象的属性)都根据它们的名称进行索引,而不是一些数字,例如在数组中,并使用它们的名称进一步精确地调用它们。 Javascript 中的对象不保证其属性中的任何顺序。最后,您在对象中定义属性的顺序并不重要,因为它们会更进一步 "unordered",即使是在将其推送到数据层的那一刻。