【问题标题】:GTM not firing DOM and Window Loaded triggersGTM 未触发 DOM 和 Window Loaded 触发器
【发布时间】:2019-10-20 00:48:30
【问题描述】:

我最近在我们的产品和结帐页面上添加了一个 dataLayer,用于 Google Analytics 增强型电子商务,遵循 Simo 博客上的约定。但是,自从我们添加了 dataLayer 后,发生了一些奇怪的事情 - gtm.load 和 gtm.dom 调用不再触发。

如果我进行一次硬刷新,清除我的 cookie 并完成一次流程,一切似乎都能正常启动。但是,一旦我返回主页或网站的其他部分,我只会看到 gtm.js 被触发,而我的触发器都不起作用。

例如,导航流程是首页 -> 产品列表 -> 产品详情。该站点是一个 React 单页应用程序,因此我有一个历史事件触发器来触发 GA 标记。如果我是新用户,并且浏览了这 3 个页面,我将在 dataLayer 中看到以下内容(如预期的那样):gtm.js、gtm.dom、gtm.load、gtm.history。但是,如果我返回主页并再次执行流程,gtm.dom 和 gtm.load dataLayer 对象就会消失,因此我的 GTM 触发器永远不会触发。有关上述流程的产品详细信息页面上的 dataLayer 外观示例,请参见下图。

我在这里不知所措,因为我从未见过 gtm.load 不触发

产品列表页面上的数据层代码: var window.dataLayer = 窗口.dataLayer || []

dataLayer.push({
   'ecommerce': {
     'currencyCode':'CAD',
     'impressions': [    //the array of products present within the listing
      {  'id':'123456',    // Product SKU
         'name':'GOOD FOOD',    // Product Name
         'price':'7.20',   // Display price - use only xxxx.xx formatting
         'brand':'No Name', // Product Brand
         'category':'Food', 
         'position':0,    // Product position within the list
         'list':'Products page'    // leave as is    
      }, {   //second product
         'id':'456890',
         'name':'ABC Nuts',
         'price':'8.50',
         'brand':'ABC',
         'category':'Food',
         'position':1,
         'list':'Products  page'
      },

     ...

      {
         'id':'1001010',
         'name':'Fish Oil',
         'price':'95.00',
         'brand':'Zenn',
         'category':'Oil',
         'position':21,
         'list':'Products page'
      }
    ]
  }
}); </script>

产品详情页面上的dataLayer:

<script>
var window.dataLayer = window.dataLayer || []

dataLayer.push({
    'event': 'detail',
        'ecommerce' : { 'detail' : 
           { 'products' : [{
                 'name': 'Product ABC',      // Full product name
                 'id': '123456',   // Product SKU
                 'price': '15.25',  // Price
                 'brand': 'Noname',  // Brand of product
                 'category': 'Food', // Product category: Oil, Capsule, Flower or Accessory
                 'variant': '5g' // Size
            }]              
           }
         }
});
</script>

【问题讨论】:

  • 你是在初始化一些东西还是重置主页上数据层的值?您能否在主页上发布与您如何实现 GA 相关的代码以及与历史触发器相关的代码?
  • 我已将 dataLayer 代码粘贴到产品列表和产品详细信息页面上。主页上没有设置自定义数据层,只有标准的 GTM sn-p 和 GA

标签: reactjs google-analytics google-tag-manager google-datalayer


【解决方案1】:

由于您处于 SPA 中,gtm.load 和 gtm.dom 只会发生一次,您需要将触发器基于其他内容。

【讨论】:

  • 我应该澄清一下——只有购买流程是 SPA,网站的其余部分是基于标准的综合浏览量——即使在常规页面上我也看不到 dom 和加载
  • 您可以粘贴链接吗?您在 GTM 中有哪些标签?触发因素是什么?
猜你喜欢
  • 2011-03-10
  • 1970-01-01
  • 1970-01-01
  • 2022-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-14
  • 1970-01-01
相关资源
最近更新 更多