[英]Does order of dataLayer matter in Google Tag Manager?
如果我創建這引發了關於在GTM“網頁瀏覽”標簽,我可以把數據傳輸到標簽后,該標簽已經被解雇?
<script>
window.dataLayer = window.dataLayer || []; //dataLayer object is instantiated
</script>
<script>
var data = {page data, user data etc.}
dataLayer.push(data);
</script>
<script>
GoogleTagManager container code
</script>
// Will dataLayer.push(moreData) get caputured in the page view event?
據我了解,使用dataLayer.push會在事件上更新dataLayer,但是隨着pageview事件在頁面視圖上觸發,這意味着僅在此事件中捕獲GTM容器代碼之前 dataLayer中的信息。
這是正確的嗎,還是可以使用dataLayer.push更新瀏覽量信息?
您始終可以使用其他觸發器(例如gtm.dom
或gtm.load
來讀取觸發了Pageview事件后已推送到dataLayer的更多信息。 但是我總是建議您將一個事件與任何其他數據一起推入並使用該事件來觸發標簽,因為您不一定要等到DOM加載或頁面完全加載后再進行操作。
在您提供的示例中,Google跟蹤代碼管理器可能會捕獲有關DOM准備就緒的額外信息。
DataLayer信息將一直保留到頁面關閉(新頁面或已關閉頁面)。 如果您想在以后收集信息(例如表單提交),這對於跟蹤信息(例如點擊值)很有用。 通過在點擊時觸發dataLayer推送(例如,用戶是否在商店中點擊了?),該信息將存儲在dataLayer中,並可以隨時(針對該頁面)像聯系表單提交一樣被調用。 這意味着您可以發生以下事件
Event Category: Contact
Event Action: Form Submitted
Event Label: Store info interaction | No store info interaction
此外,最佳做法始終是在每個dataLayer推送中添加事件鍵,例如:
dataLayer.push({
'event': 'addToCart',
'ecommerce': {...
}
});
還值得注意的是,默認情況下,增強型電子商務會讀取dataLayer版本1中的dataLayer。 這意味着將僅讀取最新的電子商務對象。
實際上,這意味着如果您在同一頁面上有產品和促銷,並且它們以不同的推送方式發送,則Google跟蹤代碼管理器將僅收集初始頁面瀏覽量中的最新推送。 這就是為什么擁有事件鍵始終很重要的原因,因為它為您提供了觸發標記的靈活性。
標記中的“數據”將保持不變,您無法追溯更改“數據”。 使用GTM預覽和調試時,您會看到“頁面視圖”,“事件”,“ DOM就緒”等。單擊這些內容時,您可以看到每個數據層的內容。您可以將代碼設置為在其他時間觸發為了確保您可以隨時調用所需的信息,因此設置一個標簽來執行datalayer.push,然后設置另一個要觸發事件的標簽等於addToCart而不是pageview,這樣數據層便擁有了您想要的所有信息它在datalayer.push之后觸發。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.