Google 跟踪代码管理器回调

Google Tag Manager callback

我收到了一些要放在网站上的数据层定义。他们中的大多数都涉及点击,例如在主菜单链接上。但我看到以下问题:

我在谷歌上搜索了一些解决方案,但似乎没有人遇到过这样的问题 - 很奇怪,它看起来像是一个基本问题。也许 GTA 会自动处理,我不需要考虑这个?

感谢您的帮助。

GTM 不会调用 AJAX(除非您将 Ajax 调用放入自定义 HTML 标记中)。

Google Analytics 获取所有配置的标签、触发器和变量,并将它们包装到一个巨大的 javascript 文件中。该文件被加载到您的页面中并在您的页面上下文中进行评估。如果触发器匹配,相应的标签将插入到页面的 DOM 中。到那时,来自 GTM 的标签与编码到页面源代码中的标签之间没有太大区别。

与硬编码标签一样,当页面重新加载时点击会中止。这就是为什么 GTM 有一个名为 "event callback" 的功能,您可以在其中传递一个函数,该函数仅在触发事件触发的所有标记后才执行。从Google Analytics Enhanced E-Commerce Documentation看这个例子:

function(productObj) {
  dataLayer.push({
    'event': 'productClick',
    'ecommerce': {
      'click': {
        'actionField': {'list': 'Search Results'},      // Optional list property.
        'products': [{
          'name': productObj.name,                      // Name or ID is required.
          'id': productObj.id,
          'price': productObj.price,
          'brand': productObj.brand,
          'category': productObj.cat,
          'variant': productObj.variant,
          'position': productObj.position
         }]
       }
     },
     'eventCallback': function() {
       document.location = productObj.url
     }
  });

这里的事件回调是一个函数,它仅在触发所有标记后才重定向到另一个 Url。

可能值得一提的是,Google Analytics 试图通过 sendBeacon API(如果适用)发送命中来避免数据丢失,而不必等待服务器响应,因此即使用户离开页面,点击也会通过(但是 sendBeacon 在 IE/Edge 上不可用)。