正在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/