关于电子商务:\\”dataLayer.push\\” 或声明为 \\”dataLayer =\\” for Analytics Ecommerce Tracking GTM

"dataLayer.push" or declare with "dataLayer =" for Analytics Ecommerce Tracking GTM

以下哪个更好?

我有一个感谢页面,我需要将我所有的交易销售信息加载到此页面中,以便通过 Google 跟踪代码管理器将其发布到 Google Analytics(分析)。

我是否使用下面的代码声明 dataLayer 并将其发布在我的 GTM 代码之前?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dataLayer = [{
  'ecommerce': {
    'purchase': {
      'actionField': {
        'id': '40008',
        'revenue': '90.00',
      },
      'products': [{
        'name': 'Clothes',
        'price': '9.00',
        'category': 'Shirt',
        'quantity': 10.00,
       }]
    }
  }
}];

或者我是否将数据推送到自动创建的数据层中并在我的 GTM 代码之后发布?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dataLayer.push({
  'ecommerce': {
    'purchase': {
      'actionField': {
        'id': '40008',
        'revenue': '90.00',
      },
      'products': [{
        'name': 'Clothes',
        'price': '9.00',
        'category': 'Shirt',
        'quantity': 10.00,
       }]
    }
  }
});

有什么区别?我将使用 "DOM Ready" 事件将数据从 dataLayer 传送到 Google。


您在 GTM 标记上方声明 dataLayer,以获取需要在页面加载时立即可用的信息。您可以将 dataLayer.push 用于添加在 GTM 标记之后的信息。

坦率地说,我认为它在大多数用例中没有太大区别,但是如果您想确保页面加载时数据可用,您应该声明一个 dataLayer。 DOM 就绪意味着源代码中的任何推送事件都已经发生,因此它可能对您没有任何影响。