GTM未触发DOM和窗口加载的触发器

时间:2019-06-04 13:16:20

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

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

如果我进行硬刷新,请清除我的cookie并进行一次处理,一切似乎都可以正常启动。但是,一旦返回首页或网站的其他部分,我只会看到gtm.js被解雇,而我的触发器都无法工作。

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

我在这里很茫然,因为我从未见过gtm.load不会触发

dataLayer before - working

dataLayer after - not working

产品列表页面上的

数据层代码:          var window.dataLayer = window.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>

1 个答案:

答案 0 :(得分:0)

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