1

我有一段 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 组合的情况下,有时很难找出某些东西是否工作不正确(而不是找出它是否工作正常),因此是个问题。

4

1 回答 1

1

您正在将javascript 对象推入 dataLayer。在对象内部,所有属性(电子商务事件实际上是对象的属性)都基于它们的名称进行索引,而不是像数组中的某个数字,并且使用它们的名称进一步精确地调用它们。Javascript 中的对象不保证其属性的任何顺序。最后,在对象中定义属性的顺序并不重要,因为它们将进一步“无序”,即使在将其推送到 dataLayer 时也是如此。

于 2015-02-05T13:54:03.477 回答