2014-06-19 132 views
4

我有一個關於google代碼管理器代碼段定位的常見問題。根據谷歌的實施指南,標籤管理器應該在正文標籤啓動後立即執行。我的問題如下:Google跟蹤代碼管理器定位

  • 跟蹤應該加載到頭部的腳本會發生什麼?
  • 跟蹤應在身體末尾加載的腳本會發生什麼情況?

例如VWO(視覺網站優化)建議加載在頭部,以避免閃爍代碼...

我能有2個集裝箱?一個在頭部和一個在身體的開始?

回答

2

有可能有兩個標籤管理器標籤,但這不會做你想要的(並可能導致問題)。 GTM應該直接放在開頭主體標籤之後,而不是放在另一個元素之內的原因是,GTM會執行一些DOM操作來插入包含的標籤。所有你配置好的標籤都被打包成一個JavaScript對象,它被插入你的頁面並從那裏發射。將GTM標籤放入其他位置不會改變插入標籤的位置(除非用戶禁用了javascript,否則圖像標籤將顯示在iframe中)。然而,這意味着GTM標籤可能會失敗,因爲注入JavaScript的DOM操作可能無法從指定的位置運行(特別是如果將它放在主體外部)。

實際上Google說Tag Manager不適用於改變頁面外觀的標籤(例如A/B測試工具,自GTM第一次發佈以來就是listed as "coming soon")。

+0

有人downvoted和我後推測這是因爲這個答案在某些方面不再準確;現在GTM Snippet的建議是將其納入考慮範圍,並且正式支持多個容器。但就問題而言,它仍然是正確的,您不能將兩部分片段放在不同的容器中,並使用該技術同步執行依賴於特定順序的標籤。 –

0

隨着時間的推移,這已經發生了變化,現在GTM爲A/B測試工具(如Google的Optimize)提供了集成功能。

爲了做到這一點,有兩段代碼,你需要添加: 權<header>標籤後:

<!-- Google Tag Manager --> 
<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-CONTAINER_ID');</script> 
<!-- End Google Tag Manager --> 

<body>標籤

<!-- Google Tag Manager (noscript) --> 
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-CONTAINTER_ID" 
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 
<!-- End Google Tag Manager (noscript) --> 
相關問題