詳解Google Tag Manager的資料層(Data Layer)

Google Tag Manager Haran 3年前 (2023-01-16) 5170次瀏覽 0條留言

更新時間: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

詳解Google Tag Manager的資料層(Data Layer)

這樣就會有問題:網站打開過程中,不同時間點去獲取,GTM獲取到的資訊可能會不一樣的,有些甚至獲取不到,所以需要用Data Layer,主動獲取資訊,並通過資料層發送出去,確保了資訊的準確。

Data Layer:

詳解Google Tag Manager的資料層(Data Layer)

具體過程:

  • 初始化資料層GTM 容器代碼會先檢查是否存在 dataLayer 陣列,若不存在則建立。
  • 資料推送(push):網頁在發生事件時(如按鈕點擊、表單送出、電商交易),會將資料以物件形式推入 dataLayer
  • GTM 讀取資料:GTM 中的資料層變數Data Layer Variable)和事件觸發器(Event Trigger)會監聽 dataLayer 的變化,根據事件名稱或變數值觸發標籤。
  • 標籤執行:標籤抓到資料層資訊後,送出給 GA4、Facebook Pixel 或其他行銷工具。

資料層在電商追蹤裡是用得最多,延伸閱讀: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中獲取數據層裡的自訂事件資料層變數

自訂事件

GTM中點擊「觸發條件」——「新增」——「請選擇觸發條件類型以開始設定…」——「自訂事件」,命名為“refund”,然後做如下設定:

詳解Google Tag Manager的資料層(Data Layer)

事件名稱裡填event的值refund。

 

資料層變數

GTM中點擊「變數」——「新增」——「請選擇變數類型以開始設定…」——「資料層變數」,命名為“dlv-ecommerce”,然後做如下設定:

詳解Google Tag Manager的資料層(Data Layer)

dlv表示dataLayer Variables,建議是資料層變數都採用dlv-XXXXX的結構,便於區分。

資料層變數名稱就是資料層變數ecommerce。

  • 如果是嵌套的,那麼填ecommerce.transaction_id。
  • 如果裡面有數組,那麼用數值表示第幾個的值,如ecommerce.items.0.discount裡的0就表示是數組裡第一個。

 

dataLayer和dataLayer.push的區別

詳解Google Tag Manager的資料層(Data Layer)

 

如果錯誤使用dataLayer會導致資訊沒有發送出去,GA4報告中会沒有數據:

詳解Google Tag Manager的資料層(Data Layer)


如果您在操作上仍有任何疑問,歡迎留言交流,或加入:Google Analytics 4交流社團發問
Like (0)
發佈我的留言
取消留言
表情 贴图 加粗 删除线 居中 斜体

Hi,*为發佈留言必須填寫。

  • 顯示名稱*
  • 電子郵件地址*
  • 個人網站網址