Skip to content
Darrell TW

Google Tag Manager - 進階技巧 DataLayer Variable 資料層變數的版本1和2

GTM_Variable_DatalayerVersion_One_Two_BG

用上餐來解釋

如果我們將 DataLayer 的推送比喻成一個晚餐的上餐順序,主菜 -> 水果 -> 飲料 並且建立一個資料層變數 餐桌

DataLayer的上餐順序

版本一會是

出完餐後的版本一

版本二會是

出完餐後的版本二

以 JSON 的格式來說明的話

// 版本1
{
  飲料 : 檸檬紅茶
}
// 版本2
{
  主餐 : 早餐拚盤,
  水果 : 頻果,
  飲料 : 檸檬紅茶
}

簡單來說 : 版本2 會將不同的參數累加在一起

以上面的例子來用一點生活化的方式來想

如果每次只上一道菜 版本一 : 服務生每次都會先將你桌上的餐點收走,才會上新的一道餐 版本二 : 服務生就會一直放在你的桌上,宛如一個桌菜

GTM 實際測試

回到用 GTM 來舉例

我們使用 Google Tag Manager 建立兩個資料層參數 DataLayer Variable

  • 點擊資料

並且推送兩個 DataLayer 事件 第一個事件中有 文字和分類 第二個事件中有 文字和網址 (沒有分類)

dataLayer.push({
    event : "點擊",
    點擊資料 : {
      點擊文字 : "1234",
      點擊分類 : "分類上方"
    }
})
dataLayer.push({
    event : "點擊",
    點擊資料 : {
      點擊文字 : "5678",
      點擊網址 : "https://www.google.com/",
    }
})

會看到在版本二的情況下 原本是 文字和分類,文字和網址 在第二個點擊事件中居然是 文字+分類+網址 因為第二個點擊事件 會累積到第一個事件中 所以第二個點擊事件多出來的分類,就很有可能是錯誤的資料

在GTM資料層變數版本一的狀態

如果切換到 版本一 就會變成正常的情況 第二個點擊事件時,會覆蓋掉原本第一個點擊事件的資料

在GTM資料層變數版本二的狀態

結論

如果可以理解這些累加覆蓋的概念 在規劃資料追蹤時就可以知道什麼時候要切換版本一或二

目前 GTM 新增一個資料層變數,預設的版本是二

就目前多年的使用經驗下來,其實大部分不會造成問題或影響 只有網頁是 SPA 的架構(ReactJS, AngularJS, VueJS) 時 某些狀況可能就要稍加留意

至少當發現預覽時,資料層變數跟使用者原本預設的不太一樣,就可以回頭測試是否因為版本問題所導致


分享這篇文章

不想自己建?讓我幫你

已協助 15+ 個團隊導入 n8n 自動化,從流程規劃到上線維護一手包辦。

看看我能幫你做什麼