通过代码管理器

时间:2015-09-11 19:48:03

标签: google-analytics google-tag-manager

我们根据以下文档使用GTM实施GA转换跟踪,但我找不到有关如何在订单级别处理折扣(优惠券)的任何信息。 https://support.google.com/tagmanager/answer/6106097?hl=en https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce

我可以发送收入,运费和税金,但对于包含折扣的订单,这些不会完全正确。如果订单如下:

T-Shirt:     $5
Socks:       $5
subtotal:   $10
tax:         $2
shipping:    $3
discount:   -$5
order total: $10

我的dataLayer应该是这样的吗?

<script>
dataLayer = [{
    'transactionId': '1234',
    'transactionAffiliation': 'Acme Clothing',
    'transactionTotal': 10,
    'transactionTax': 2,
    'transactionShipping': 3,
    'transactionProducts': [{
        'sku': 'DD44',
        'name': 'T-Shirt',
        'category': 'Apparel',
        'price': 5,
        'quantity': 1
    },{
        'sku': 'AA1243544',
        'name': 'Socks',
        'category': 'Apparel',
        'price': 5,
        'quantity': 1
    }]
}];
</script>

这会导致GA中的任何不准确或不一致吗?

3 个答案:

答案 0 :(得分:4)

我和同事正在解决同样的问题。

在我进入之前,尽管你永远不应该这样做,但是要像那样声明你的dataLayer。可悲的是,它似乎是Google自己在所有代码示例中执行此操作的方式,但它非常危险,因为它将使用仅包含那些键:值对的新数据覆盖现有的dataLayer。而是检查dataLayer是否存在,如果不存在则创建它,并推送到它。

window.dataLayer = window.dataLayer || [];
dataLayer.push({
  'key' : 'value'
});

此外,假设您已切换到Universal Analytics,请考虑切换增强型电子商务跟踪。它同时是一个功能更强大,更清晰的电子商务跟踪实现。

到目前为止,我们已经提出了几种看似可行的方法。您可以像上面一样忽略所有折扣,并在应用折扣后手动报告总收入。如果您切换到增强型电子商务,我会添加的一件事是优惠券代码,以确认产品已应用折扣。

<script>
  window.dataLayer = window.dataLayer || [];
  dataLayer.push({
    'ecommerce': {
      'purchase': {
        'actionField': {
          'id': '1234',
          'affiliation': 'Acme Clothing',
          'revenue': '10.00',
          'tax':'2.00',
          'shipping': '3.00',
          'coupon': 'SUMMER_SALE' //Transaction-scope coupon. This would
//be where you'd include discounts like '$10 off purchases of $50 or more'
        },
        'products': [{
          'name': 'T-Shirt',
          'id': 'DD44',
          'price': '5.00',
          'category': 'Apparel',
          'quantity': 1
         },
         {
          'name': 'Socks',
          'id': 'AA1243544',
          'price': '5.00',
          'category': 'Apparel',
          'quantity': 1,
          'coupon': 'FREE_SOCKS' //Product-scope coupon. This would be for 
//discounts like 'free socks with purchase of a t-shirt'
         }]
      }
    }
  });
</script>

或者,您可以将折扣输入为负值SKU,并在交易中将其作为自己的订单项进行跟踪。

<script>
  window.dataLayer = window.dataLayer || [];
  dataLayer.push({
    'ecommerce': {
      'purchase': {
        'actionField': {
          'id': '1234',
          'affiliation': 'Acme Clothing',
          'revenue': '10.00',
          'tax':'2.00',
          'shipping': '3.00'
        },
        'products': [{
          'name': 'T-Shirt',
          'id': 'DD44',
          'price': '5.00',
          'category': 'Apparel',
          'quantity': 1
         },
         {
          'name': 'Socks',
          'id': 'AA1243544',
          'price': '5.00',
          'category': 'Apparel',
          'quantity': 1,
         },
         {
          'name': 'Socks-Discount',
          'id': 'free-socks',
          'price': '-5.00',
          'category': 'Apparel',
          'quantity': 1,
         }]
      }
    }
  });
</script>

最终,我的建议是反映您如何处理购物车本身的折扣。如果折扣是他们自己的购物车中有自己SKU的订单项,则会以同样的方式在GA中报告。如果优惠券代码更有意义那样做。如果您愿意,甚至可以将两者合并。

答案 1 :(得分:0)

DL中的事务总数应该被推送到addTrans调用。因此,只需确保您发送给它的值是您要发送的内容。 GA并不关心您如何定义收入。

答案 2 :(得分:0)

使用优惠券字段指定交易和/或产品正在打折的事实。 e.g。

&#34;优惠券&#34; :&#34; 10%夏季促销&#34;或只是&#34;一般折扣&#34;

然后使用自定义指标(范围=匹配,格式=十进制)来跟踪应用于交易的折扣金额。

&#39; dimension1&#39;:&#39; 50.0&#39;

参考:https://developers.google.com/tag-manager/enhanced-ecommerce#checkout