文章目錄
更新時間:2025年11月13日
在 Google Tag Manager(GTM) 中,資料層(Data Layer)是整個標籤管理系統的核心概念。無論是追蹤網頁事件、電商轉換、表單送出,還是整合 Google Analytics 4(GA4)、Facebook Pixel 或其他行銷工具,資料層都是資料傳遞與標籤觸發的關鍵。
這一篇來介紹Google Tag Manager的高階功能之一資料層——Data Layer。
資料層(Data Layer)是什麼?
資料層本質上是一個 JavaScript 陣列(Array),用於在網頁上存放各種結構化資料,並讓 GTM 取得這些資料來觸發標籤或填充變數。
簡單來說,資料層是前端與GTM之間的橋樑,負責傳遞事件、用戶資訊、商品資訊等資料。
如果沒有Data Layer:
這樣就會有問題:網站打開過程中,不同時間點去獲取,GTM獲取到的資訊可能會不一樣的,有些甚至獲取不到,所以需要用Data Layer,主動獲取資訊,並通過資料層發送出去,確保了資訊的準確。
具體過程:
資料層在電商追蹤裡是用得最多,延伸閱讀:Google Analytics 4 :Google Tag Manager 電商设定指南(事件參數法)
資料層的基本結構
範例資料層初始化
在網頁中初始化資料層通常使用以下程式碼:
<span style="font-size: 12pt;">window.dataLayer = window.dataLayer || []; </span>
這行程式碼的作用是確保網頁上存在 dataLayer 陣列。
- 若網頁尚未定義
dataLayer,則建立一個空陣列。 - 若已經存在,則保留原本的資料,避免覆蓋。
推送事件資料到資料層
將資料傳送給GTM時,通常使用 dataLayer.push() 方法。例如:
window.dataLayer.push({
'event': 'refund',
'ecommerce': 'yui',
'transactionId': 'T12345'
});
dataLayer.push():表示將資料層物件發送到 GTM,用於觸發標籤或填充變數。event:自訂事件名稱,用於設定觸發條件。每次推送的資料通常包含一個事件名稱。- ecommerce、transaction_id :資料層變數,用於傳輸具體資訊。
資料層的結構與嵌套
資料層是JavaScript 物件,因此可以包含巢狀結構,例如:
window.dataLayer.push({
'event': 'refund',
'ecommerce':{
'transactionId': 'T12345'
}});
event:事件名稱,標識這筆資料層資料對應的行為。ecommerce:一個資料層變數物件,可以嵌套多個變數。transaction_id、:嵌套在ecommerce中的資料層變數,代表交易資訊。
GTM中獲取自訂事件和資料層變數
自訂事件
在GTM中點擊「觸發條件」——「新增」——「請選擇觸發條件類型以開始設定…」——「自訂事件」,命名為“refund”,然後做如下設定:
事件名稱裡填event的值refund。
資料層變數
在GTM中點擊「變數」——「新增」——「請選擇變數類型以開始設定…」——「資料層變數」,命名為“dlv-ecommerce”,然後做如下設定:
dlv表示dataLayer Variables,建議是資料層變數都採用dlv-XXXXX的結構,便於區分。
- 如果是嵌套的,那麼填ecommerce.transaction_id。
- 如果裡面有數組,那麼用數值表示第幾個的值,如ecommerce.items.0.discount裡的0就表示是數組裡第一個。
dataLayer和dataLayer.push的區別
如果錯誤使用dataLayer會導致資訊沒有發送出去,GA4報告中会沒有數據:









