javascript - 手动将 setTimeout 添加到谷歌标签管理器

标签 javascript wordpress google-tag-manager

正在Wordpress标签管理器中加载,我想添加一个setTimeout以在5秒后加载脚本。

    echo "<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 =
        'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
    f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-code');</script>";

第二部分:

<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-code"
        height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>

最佳答案

延迟加载 GTM 时请小心。如果用户访问您的网站仅几秒钟然后就离开,则在 Google Analytics 中称为“跳出”。如果 GTM 没有及时加载以将页面 View 发送到 Google Analytics(分析),您可能会人为地降低 bounce rate 。在推迟 GTM 之前,您可能需要考虑其他选择来解决您正在解决的任何问题。

话虽如此,这里有一些应该可以工作的代码。 :)

echo "<script>
var loadGtm = 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 = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
  f.parentNode.insertBefore(j, f);
}
setTimeout(loadGtm.bind(null, window, document, 'script', 'dataLayer', 'GTM-code'), 5000);
</script>";

@Eike Pierstorff也就是说,使用 setTimeout 加载 noscript 标记是没有意义的。如果启用了 javascript,该标记将不会执行任何操作。如果禁用 javascript,setTimeout 将不起作用,因此不会添加 noscript 标记。我只需将其按原样添加到 body 中即可。

关于javascript - 手动将 setTimeout 添加到谷歌标签管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64154090/

相关文章:

javascript - Titanium:如何获取从 .js 创建的对象或 native 对象

php - WooCommerce 添加商品到订单

html - div 在调整浏览器大小时下降

google-analytics - 检查触发Google跟踪代码管理器事件的用户的用户代理

javascript - 更改通过谷歌标签管理器添加并在 iframe 中异步加载的小部件的 css 属性

javascript - Playwright 中的 GDPR cookie 弹出窗口

javascript - 主干 View 脚本错误

javascript - 替换 Windows '\\' 路径中的文件名

php - 如何在 Wordpress 的 Woocommerce 中禁用模板 Hook 的操作?

google-tag-manager - 在Google标签管理器中获取页面更改前的点击信息