簡體   English   中英

手動將 setTimeout 添加到谷歌標簽管理器

[英]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,則您可能會人為地降低跳出率 在延遲 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中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM