javascript - 事件在数据层中的位置 - 这重要吗?

标签 javascript google-tag-manager google-datalayer

我有一段 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进入数据层。在对象内部,所有属性(电子商务事件实际上是对象的属性)都是根据其名称进行索引的,而不是像数组中那样的数字,并且它们是进一步精确地使用他们的名字来称呼。 Javascript 中的对象不保证其属性的任何顺序。总之,在对象中定义属性的顺序并不重要,因为它们将进一步“无序”,即使在将其推送到数据层时也是如此。

关于javascript - 事件在数据层中的位置 - 这重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28296354/

相关文章:

javascript - 从 ES6 javascript 中的字符串动态创建方法(非浏览器)

javascript - 同一网络 Assets ID 被跟踪两次 - Google Analytics

javascript - 如何将 Google 跟踪代码管理器与多个 Google Analytics(分析)帐户一起使用

javascript - 访问 gtm.formsubmit 上的 Google 跟踪代码管理器 dataLayer 字段值

google-analytics - Google 标签管理器未注册增强型电子商务的交易

android - 错误 : package com. google.android.gms.tagmanager 不存在

javascript - 在extjs中为图表的图例添加自定义项

javascript - 在js中拖动滚动时防止点击

javascript - 删除单链表javascript中的节点

javascript - 如何使用 Google 标签管理器和 Google Analytics 跟踪 anchor 链接?