手动将 setTimeout 添加到 google 标签管理器
add setTimeout to google tag manager manually
正在加载 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 没有及时加载以将页面视图发送到 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
as-is.
正在加载 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 没有及时加载以将页面视图发送到 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
as-is.