文章目錄
這一篇來介紹Google Tag Manager的高階功能之一資料層——Data Layer。
認識資料層
資料層(Data Layer)是一種 JavaScript 物件,可用來將網站資訊傳送到「代碼管理工具」容器。之後,您便可運用這項資訊,在代碼設定中填入變數並啟用觸發條件。
整體流程是:網站打開,將資料層的資訊發送出去,然後被GTM獲取,用於觸發條件和代碼設定,最終是資訊發現第三方平台。
如果沒有Data Layer:
流程就是:網站打開,GTM去獲取咨詢。
這樣就會有問題:網站打開過程中,不同時間點去獲取,GTM獲取到的資訊可能會不一樣的,有些甚至獲取不到,所以需要用Data Layer,主動獲取資訊,並通過資料層發送出去,確保了資訊的準確。
資料層在電商追蹤裡是用得最多,延伸閱讀:Google Analytics 4 :Google Tag Manager 電商设定指南(事件參數法)
資料層的結構
資料稱既然是JavaScript 物件,那麼就會有<script></script>的結構,資料稱的結構如下:
dataLayer.push:表示將資料層發送出去
event 是自訂事件,用於設定觸發條件,一個資料稱只有一個event
ecommerce、transaction_id 是資料層變數,用於傳輸資訊,一個資料層可以有多個資料稱變數,資料層變數裡是可以嵌套如:
transaction_id就嵌套在ecommerce裡。
GTM中獲取自訂事件和資料層變數
自訂事件
在GTM中點擊「觸發條件」——「新增」——「請選擇觸發條件類型以開始設定…」——「自訂事件」,命名為“refund”,然後做如下設定:
事件名稱裡填event的值refund。
資料層變數
在GTM中點擊「變數」——「新增」——「請選擇變數類型以開始設定…」——「資料層變數」,命名為“dlv-ecommerce”,然後做如下設定:
dlv表示dataLayer Variables,建議是資料層變數都採用dlv-XXXXX的結構,便於區分。
資料層變數名稱就是資料層變數ecommerce。
如果是嵌套的,那麼填ecommerce.transaction_id。
如果裡面有數組,那麼用數值表示第幾個的值,如ecommerce.items.0.discount裡的0就表示是數組裡第一個。
dataLayer和dataLayer.push的區別
- dataLayer:是定義靜態的資料層,自訂事件和資料層變數是獲取不到值的
- dataLayer.push 是將資料層發送出去
如果錯誤使用dataLayer會導致資訊沒有發送出去,GA4報告中会沒有數據: