2014-02-06 19 views
0

使用Google跟蹤代碼管理器,我使用變量來了解應用程序的位置。每當用戶更改部分,JS代碼將一個新值的「位置」變量,就像這樣:向Google跟蹤代碼管理器推送相同的變量,但它們被複制

(function() { 
    dataLayerGoogleTagManager.push({'location': 'tools'}); 
})(); 

我的問題是當我檢查了數據層,它複製了變量「位置」與許多不同的價值。調試控制檯:

enter image description here

顯然,當我試圖讓「位置」的值,結果不是我想要的。 你知道如何解決這個問題嗎?

感謝您的幫助,您可以提供

+0

爲什麼這個「顯然」是錯的?這是它在GTM文檔中描述的方式,並且至少對我來說工作得很好(除非您嘗試手動訪問數據層而不是通過宏,在這種情況下,您需要通過索引dataLayer [1],dataLayer [2] ... dataLayer [n])。 –

+0

@EikePierstorff你說得對,這是GTM文檔中描述的方式,但我需要找出用戶在那一刻的位置,我期望值被覆蓋。 –

+0

如果你有一個宏「位置」,它總是會將最新的值推送到dataLayer,無論有多少位置值。至少這就是它對我的作用 - 如果它不適合你,我認爲還有其他問題。 –

回答

0

這是確定的 - 所有數據層變量在控制檯行爲顯示這樣的 - 當他們更新了自己的價值變化。

如果您使用GTM宏讀取值,那麼它將始終採用最新的值。

我使用的HTML標籤類似這樣的展示正是我現在的宏值是用於調試目的:

<script> 
console.log("*** GTM Debugging to Console ***"); 
console.log("GTM event fired: " + {{event}}); 
console.log("Debug mode: " + {{debug mode}}); 
console.log("Location: " + {{location}}); 
</script> 

創建位置宏,你可以查看它與這個標籤電流值。

將標記規則設置爲您要調試的任何事件,或者將其設置爲所有頁面,並使用debug = false的規則對其進行設置,然後它僅顯示在調試模式下。

相關問題