有問題可以在文章底部留言

GA4 Measurement Protocol API 完整教學

Google Analytics Haran 4年前 (2022-11-14) 6353次瀏覽 2條留言

更新時間:2026年8月4日

本篇將深入介紹GA4的重要功能——Measurement Protocol API。

透過此協定,您可將離線資料、CRM資料或伺服器端事件直接傳送至GA4,突破瀏覽器與App SDK的限制,實現更完整的數據蒐集與分析。

什麼是Measurement Protocol API?

Measurement Protocol API(簡稱MP協定)是一套由GA4提供的API,允許開發者透過HTTP Request將事件資料發送至GA4伺服器。

主要應用情境:

  • 整合線上與線下行為數據(如門市消費、客服電話成交)
  • 發送離線轉換事件(例如實體店鋪交易)
  • 從無法自動追蹤的裝置(如資訊看板、智慧手錶、IoT設備)傳送事件

典型可上報的資料來源:客服通話記錄、門市POS交易、CRM會員屬性、ERP訂單狀態等。

Measurement Protocol與Measurement Protocol API的差異

官方文件曾混用兩種名稱,實則對應不同版本:

項目 Universal Analytics(舊版) GA4(新版)
名稱 Measurement Protocol Measurement Protocol API
API Secret ❌ ✅
最大 Payload 16KB 130KB
HTTP 方法 GET、POST POST
安全性 較低 較高

目前Google已逐步統一簡稱為Measurement Protocol,文件中若未特別標示,通常即指GA4版本。

Measurement Protocol API 的組成

MP協定主要由兩部分構成:

  • 運送(Transport)
  • 酬載(Payload)

如下圖:

GA4 Measurement Protocol API 完整教學

運送(Transport)—— 查詢參數

決定資料送達的目標端點及驗證資訊。

範例:

https://www.google-analytics.com/mp/collect?measurement_id=${measurement_id}&api_secret=${api_secret}

必要查詢參數:

參數名稱 說明
api_secret 必填。Measurement Protocol API密鑰
firebase_app_id App 資料串流的Firebase App ID
measurement_id 網頁資料串流的評估ID

 

酬載(Payload)—— 訊息內文

即 HTTP POST Request 的 JSON Body,內含真正要傳送的事件資料。

主要欄位如下:

金鑰 型別 說明
client_id string 網頁用戶端必填。唯一識別瀏覽器使用者執行個體(格式如123456.789012)
app_instance_id string App端必填。Firebase安裝實例ID(與 client_id 二選一)
user_id string 選用,跨平台使用者專屬ID(需符合 UTF‑8 編碼)
timestamp_micros number 選用,事件發生的Unix微秒時間戳(可用於補報72小時內的事件,依資源時區判定)
user_properties object 選用,使用者屬性(如會員等級)
events[] array 必填。事件陣列,單次請求最多25個事件
events[].name string 必填。事件名稱(僅限英數字及底線,須以英文字母開頭,長度 ≤ 40)
events[].params object 選用,事件參數(每個事件最多25個參數,參數名長度 ≤ 40,值長度 ≤ 100)

Measurement Protocol AP的限制

使用 Measurement Protocol API 時需注意以下限制:

項目 限制
每次請求事件數 25 個
每個事件參數數量 25 個
每個事件使用者屬性數量 25 個
使用者屬性名稱長度 24 個字元
使用者屬性值長度 36 個字元
事件名稱長度 40 個字元
參數名稱長度 40 個字元
參數值長度 100 個字元
Item 自訂參數數量 10 個
Payload 大小 130 KB

 

 

實作範例:傳送tutorial_begin事件

步驟 1:取得API密鑰與評估ID

在GA4中点击「管理」——「資源設定」——「資料收集和修改」——「資料串流」—— 點擊你的網頁串流 ——「Measurement Protocol API 密鑰」——「建立」,暱稱命名為“CRM”。

完成後即可獲得:

  • 密鑰值:nOrc0q9_RiqPsqsjBxmj9A
  • 評估ID:G-3FK847CLRT  (在GA4使用者介面中找到: 管理 > 資料串流 | 選擇串流 > 評估 ID)

 

步驟 2:發送請求

在伺服器端發送如下資訊:

<span style="font-size: 10pt;">const measurement_id = `G-3FK847CLRT`;
const api_secret = `nOrc0q9_RiqPsqsjBxmj9A`;

fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurement_id}&api_secret=${api_secret}`, {
  method: "POST",
  body: JSON.stringify({
    client_id: '123.456',
    events: [{
      name: 'tutorial_begin',
      params: {},
    }]
  })
});
</span>

幾點注意:

  • client_id 必須為字串,若以數值傳送可能會被截斷精度(例如 123.456789 變成 123.4567)。
  • 若您需要補報歷史事件,可在 Payload 中加入 timestamp_micros(微秒級 Unix 時間戳),但僅限過去72小時內的資料。
  • 如欲保留流量歸因,建議同時傳送ga_session_id參數(可從瀏覽器 Cookie _ga_<container-id> 中取得)。

 

步驟 3:驗證事件是否正確

Measurement Protocol 在收到請求時,即使資料有誤,通常仍會回傳 HTTP 2xx 成功狀態,不會明確回報錯誤碼。

因此建議先使用官方驗證工具GA4 Event Builder,驗證事件結構是否正確。

將你的請求資訊填入

GA4 Measurement Protocol API 完整教學

然後就可以在下面看到RequestInfo(運送)和Payload(酬載):GA4 Measurement Protocol API 完整教學

確認 Payload 與步驟 2 的格式完全一致,再點擊VALIDATE EVENT去驗證:

GA4 Measurement Protocol API 完整教學

若顯示「Event is valid」則表示格式正確。

 

步驟 4:驗證資料是否進GA4

驗證無誤後,可至GA4的即時報表查看該事件tutorial_begin是否出現於事件計數中。若出現,即代表資料成功寫入。

GA4 Measurement Protocol API 完整教學

 

 

常見問題FAQ

透過MP發送的資料都被歸類為「Unassigned」管道,或工作階段來源顯示 (not set)?

有些人可能留意到,通過Measurement Protocol發送的資料都被劃分到Unassigned管道,如:

GA4 Measurement Protocol API 完整教學

或工作階段來源、媒介,廣告顯示為(not set)

可能原因:

  • 缺少ga_session_id參數:該值儲存於Cookie _ga_<container-id> 中,若未正確傳遞,系統無法建立工作階段歸因。
  • 時間間隔超過3天:MP 僅允許補報3天內的事件,超過期限的事件即使送達,也無法正確關聯流量來源與工作階段。

建議解決方式:若需保留歸因,請務必在事件參數中帶入ga_session_id欄位。

 

GA4記錄到的 Client ID與我發送的不一致(例如小數點被截斷)?

範例:

  • 發送:1103448851.1680533058
  • GA4 記錄:1103448851.1680533
根本原因:你可能將client_id以數值(Number)型別傳送,而GA4預期為字串(String)。當傳入數值時,系統會自動轉換並可能遺失精度。
解決方法:務必將client_id加上引號,視為字串處理。

總結

Measurement Protocol API是GA4串接內外部數據的強大橋樑,靈活運用可補足自動追蹤的缺口。請特別留意格式限制、時間戳記與驗證流程,方能確保數據品質與歸因正確性。


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

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

  • 顯示名稱*
  • 電子郵件地址*
  • 個人網站網址
(2)个小伙伴在留言
  1. 你好,首先感謝你的很多文章,都非常詳細且有幫助。 想問下,Measurement Protocol API網路上很少文章,是什麼原因還是其他替代方案更好用?
    Jason002025-11-25 16:30 Reply Windows 10 | Chrome 142.0.0.0
    • 主要是使用技術門檻與比較高,需要大量開發
      Haran2025-11-25 17:02 Reply Mac OS X | Chrome 142.0.0.0