追蹤目標:區塊曝光(
event_a)與項目點擊(event_b)
主要是因為工作上有串接過的經驗分享。 透過 Google Tag Manager(GTM) 搭配 Google Analytics 4(GA4),追蹤頁面特定區塊的曝光與互動行為。
整體架構:前端在適當時機呼叫 dataLayer.push() 推送事件,GTM 監聽後觸發對應的 GA4 事件代碼,GA4 接收並記錄資料。GTM 作為中間層,工程師只需按規格推送 dataLayer,GA4 串接與參數映射都在 GTM 後台設定。
1. 確認追蹤需求(事件名稱、參數規格)
↓
2. 建立 GA4 帳號,取得 Measurement ID
↓
3. 建立 GTM Container,連接 GA4
- 建 dataLayer 變數
- 建觸發條件
- 建事件代碼
↓
4. 工程師依照規格埋碼(dataLayer.push)
↓
5. 部署到測試機,GTM Preview 驗證
↓
6. GTM 發布,GA4 即時報表確認
G-XXXXXXXXXX)建議 測試機 與 正式機 各建一個資源,避免測試資料污染正式報表。
GTM-XXXXXXX)Container 建立後會產生一段載入程式碼,需由工程師嵌入網站
<head>與<body>。
GTM 後台 → 代碼 → 新增 → 類型選「Google Analytics: GA4 設定」,填入 Measurement ID,觸發條件選「All Pages」,命名 GA4 - 設定 → 儲存。
GTM 後台 → 變數 → 使用者定義的變數 → 新增,類型選「資料層變數」,選擇版本,共建立 3 個:
| GTM 變數名稱 | 資料層 key |
|---|---|
dlv - param_a |
param_a |
dlv - param_b |
param_b |
dlv - param_c |
param_c |
GTM 變數名稱為內部識別用;資料層 key 必須與前端
dataLayer.push()的欄位名稱完全一致。
代碼 → 新增 → 類型「GA4 事件」→ 設定代碼選「GA4 - 設定」→ 事件名稱填 event_a,加入事件參數:
| 參數名稱 | 值 |
|---|---|
param_a |
{{dlv - param_a}} |
param_b |
{{dlv - param_b}} |
觸發條件新增「自訂事件」,事件名稱填 event_a,命名 GA4 - event_a → 儲存。
同 Step 3,事件名稱改為 event_b,事件參數:
| 參數名稱 | 值 |
|---|---|
param_a |
{{dlv - param_a}} |
param_c |
{{dlv - param_c}} |
觸發條件事件名稱填 event_b,命名 GA4 - event_b → 儲存。
右上角點「提交」→ 填寫版本說明 → 發布。
// 瀏覽
window.dataLayer?.push({
event: 'event_a',
param_a: '<區塊識別名稱>',
param_b: 1,
});
// 點擊
window.dataLayer?.push({
event: 'event_b',
param_a: '<區塊識別名稱>',
param_c: '<被點擊的項目名稱>',
});
實作要點:使用 IntersectionObserver 偵測曝光,並加上旗標避免重複觸發;僅在測試機環境執行。
GTM Preview:GTM 後台 → 預覽 → 輸入測試機環境網址連線,操作頁面,確認 Tag Assistant 面板中 event_a、event_b 有觸發,並在「資料層」分頁核對參數值。
GA4 即時報表:GTM 發布後,前往 GA4 → 即時 → 事件,操作測試機環境網站,約 1 分鐘內應出現 event_a 和 event_b。