使用 Google 分析跟踪优化防闪烁片段超时

Tracking Optimize anti-flicker snippet timeout using Google Analytics

如何使用 Google Analytics 成功检测和跟踪优化防闪烁代码段超时?

我注意到 dataLayer 变量 hide["GTM-XXXXXX"] 超时时为 true,否则为 false

问题是没有与此变量更改关联的事件。您将如何跟踪超时?

我的目标是每次代码段超时时向 Google Analytics 发送一个事件。

我没有在实践中使用过这个解决方案,但你可能想试一试。

如果你看developer guide of Google Optimize,你可以找到关于防闪烁代码(页面隐藏片段)功能的非常详细的解释。相关代码及注释如下:

// Creates a timeout that will call the page-showing function after the
// timeout amount (defaulting to 4 seconds), in the event that Optimize has
// not already loaded. This ensures your page will not stay hidden in the
// event that Optimize takes too long to load.
  setTimeout(function() {
    i();
    h.end = null
  }, c);
  h.timeout = c;

在此超时中 i() 负责删除默认隐藏页面的 class。

因此理论上,您可以通过 dataLayer 生成 GTM 事件来更改这部分代码,并将事件跟踪绑定到它。例如

setTimeout(function() {
  i();
  h.end = null;

  //added code: notify Google Tag Manager about the timeout
  dataLayer.push({
    event: 'trackAntiFlickerTimeout'
  });

}, c);

显然,您需要将此事件用作触发器,并制作必要的事件标签来触发,并将数据发送到 Google Analytics。

这是我最终得到的解决方案。完美运行。

1.在 GTM

中创建一个新的自定义 Javascript 函数变量
function () { 
    if ( window.dataLayer.hide ) { 
        return window.dataLayer.hide["GTM-xxxxxxx"]; // Your Optimize container ID
    } 
}

2。在 DOM 就绪时,检查其值

如果值为 true,则代码段已超时。当它是 false 时,它设法在您的最大超时持续时间之前 运行。

A more detailed tutorial can be found here.