google-analytics - 页面上容器容器代码后的 GTM 电子商务

标签 google-analytics transactions e-commerce google-tag-manager

我想使用 GTM 来跟踪电子商务交易。这是针对客户端环境的测试,其中代码可能位于 GTM 代码片段 之后的 ,这就是为什么使用 Dom Ready 作为事务标签的触发器不可靠的原因。

这是我的测试代码:

<body>
    <!-- Google Tag Manager -->
<script>window.dataLayer = window.dataLayer || [];</script>
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-M4RNT2"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->
<div class="container">
<script>
window.dataLayer = window.dataLayer || []
dataLayer.push({
   'transactionId': '32698',
   'transactionAffiliation': 'Acme Clothing',
   'transactionTotal': 38.26,
   'transactionTax': 1.29,
   'transactionShipping': 5,
   'transactionProducts': [{
       'sku': 'DD44',
       'name': 'T-Shirt',
       'category': 'Apparel',
       'price': 11.99,
       'quantity': 1
   },{
       'sku': 'AA1243544',
       'name': 'Socks',
       'category': 'Apparel',
       'price': 9.99,
       'quantity': 2
   }]
});
</script>
</body>

如您所见,电子商务代码直接取自 Google 文档 here

我确保我正在触发的网页浏览标签有效,并且我可以在实时 View 中看到自己。

问题是无论我做什么来触发交易标签,谷歌分析中都不会显示电子商务交易。

这是我尝试过的:
  • 在交易产品之后使用 'event': 'eCommerce' 或在交易代码推送后的单独脚本标签中使用该事件作为触发器
  • 我在 GTM 中创建了一个 dataLayer 变量,它引用 transactionId 并将其默认为 false,然后使用事件 gtm.dom 作为触发器,过滤器为 transactionId does not equal false

  • 令人沮丧的部分是我打开了 GTM 预览窗口,它看起来完全可以正常工作。
  • 在上面的尝试 1 中,它显示了一系列页面浏览、消息、电子商务 DOM 就绪、页面加载,其中消息后的 dataLayer 正确填充了交易数据以及电子商务事件触发的电子商务标签(即数据肯定在 dataLayer 中。
  • 在尝试 2 中,Message 之后的 dataLayer 填充了交易数据,并且在 DOM Ready 事件上触发了电子商务标签。

  • 这已经持续了好几天,所以它不是“数据尚未显示在 GA 中但 ”的情况。我使用了正确的 UA 标签,因为这两个标签都引用了 sasme onstant GTM 变量,而且我实时看到自己的网页浏览标签使用了正确的 UA,因此交易标签也是如此。是的,电子商务显然是在 View 设置中启用的。

    最佳答案

    简单地将交易数据推送到数据层不会触发跟踪工作。您需要一个诸如综合浏览量之类的操作来获取交易数据并将其发送。

    如果您无法在 GTM 代码段之前添加数据层,我的建议如下:

  • 将您的代码转换为增强型电子商务格式(如下提供)
  • 添加一个自定义事件,在本例中它被命名为 trackTrans .
  • 在 GTM 中添加一个事件标签,标签类似于 Send Transaction .您可以为事件类别/操作/标签指定您想要的任何值。
  • 在事件标签中转到 more settings > Ecommerce Features , 启用 Enable Enhanced Ecommerce FeatureUse data layer
  • 将触发器设置为 Custom Event并指定 trackTrans对于值
  • 在您的 View 设置中确保启用增强型电子商务跟踪
    dataLayer.push({
       'ecommerce': {
         'purchase': {
           'actionField': {
             'id': 'T12345',                         // Transaction ID. Required for purchases and refunds.
             'affiliation': 'Online Store',
             'revenue': '35.43',                     // Total transaction value (incl. tax and shipping)
             'tax':'4.90',
             'shipping': '5.99',
             'coupon': 'SUMMER_SALE'
           },
           'products': [{                            // List of productFieldObjects.
             'name': 'Triblend Android T-Shirt',     // Name or ID is required.
             'id': '12345',
             'price': '15.25',
             'brand': 'Google',
             'category': 'Apparel',
             'variant': 'Gray',
             'quantity': 1,
             'coupon': ''         
           }]
         }
      },
      'event' : 'trackTrans'
    });
    

  • 根据我上面的描述,页面将加载,然后触发一个事件并发送电子商务交易数据。

    关于google-analytics - 页面上容器容器代码后的 GTM 电子商务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37597960/

    相关文章:

    php - 添加到购物车不适用于 magento 中的子商店

    swift - Firebase Analytics 代替 Google Analytics 启动

    javascript - _triggers dataLayer 变量阻止标签触发

    regex - 正则表达式 URL

    sql-server - 错误时回滚事务

    php - 如果在获得网站 paypal api 的 paykey 后,交易将由用户使用他们的 paypal 帐户完成怎么办?

    android - Google Analytics + EasyTracker (Android) 在快速切换时跟踪相同的 Activity

    c# - 使用 SubmitChanges 创建 LINQ 事务

    sql - 开始尝试在SQL Server 2005上捕获,如何将ERROR_stuff发送给调用的父级?

    paypal - 有什么方法可以自定义 Paypal 订单摘要以将 'item' 替换为 'service'?