【问题标题】:Google Tag Manager access datalayer object valuesGoogle 跟踪代码管理器访问数据层对象值
【发布时间】:2019-04-09 11:43:19
【问题描述】:

我正在尝试在添加到购物车事件时访问数据层变量,但它没有在标签管理器管理站点上得到跟踪

*触发了事件但没有发送值

数据层推送:

<script>
  dataLayer.push({
    'event': 'addToCart', 
    'ecommerce': {
      'currencyCode': 'EUR', 
      'add': {
        'products': [
          {
            'name': 'test',
            'id': 'ZZZ232323',
            'price': 33,
            'brand': '',
            'category': 'test',
            'variant': '','quantity': 1
          }
        ]
      }
    }
  });
</script>

我正在尝试访问数据层以获取产品名称:

dataLayer.find(x => x.event == 'addToCart').ecommerce.add.products[dataLayer.find(x => x.event == 'addToCart').ecommerce.add.products.length - 1].price

Image of google tag manager site

【问题讨论】:

    标签: google-tag-manager google-datalayer


    【解决方案1】:

    数据层变量不需要引用数据层的特定步骤(数组元素)。当您创建对 dataLayer 变量的引用时,例如ecommerce,Google 跟踪代码管理器 (GTM) 将尝试在任何给定的 GTM 事件中对其进行评估,但会回退到 undefined 或您指定的任何其他值。

    这意味着,如果您在产品数据可用时触发 Facebook Pixel 跟踪代码(事件 = addToCart),则对电子商务数据的正确引用将具有价值。有多种方法可以获取您的产品名称。

    您可以创建一个通用的“电子商务”变量,将 ecommerce 引用为数据层变量名称。在您的 Facebook Pixel 相关代码中,您将不得不走到所需的变量,并注意任何可能的缺失值。但是,这个电子商务变量可以在多个标签中使用。

    var productName = {{Ecommerce}}.add.products[0].name; //assuming you'll always have just one product in products array
    

    或者,您可以选择一个特定变量,在其中设置“电子商务 - 添加到购物车的产品名称”,您可以在其中引用 ecommerce.add.products[0].name。这样,您可以简单地将这个变量分配给正确的 Facebook Pixel 变量,使用 {{Ecommerce - name of product added to cart}}

    【讨论】:

      猜你喜欢
      • 2022-01-13
      • 2017-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      相关资源
      最近更新 更多