"dataLayer.push" 或使用 "dataLayer =" 声明 Analytics 电子商务跟踪 GTM

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

以下哪个更优?

我有一个感谢页面,我需要将我所有的交易销售信息加载到此页面,然后通过 Google 标签管理器将其 post 加载到 Google 分析。

我是否使用下面的代码声明数据层并post它在我的 GTM 代码之前?

dataLayer = [{
  'ecommerce': {
    'purchase': {
      'actionField': {
        'id': '40008',
        'revenue': '90.00',
      },
      'products': [{
        'name': 'Clothes',
        'price': '9.00',
        'category': 'Shirt',
        'quantity': 10.00,
       }]
    }
  }
}];

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

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 标签之后添加的信息。

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