本指南說明如何將 Google Analytics Measurement Protocol 網站和應用程式串流事件傳送至 Google Analytics 伺服器,以便您在 Google Analytics 報表中查看 Measurement Protocol 事件。
請選擇您想在本指南中查看的平台:
格式化要求
Google Analytics Measurement Protocol 僅支援 HTTP POST
要求。
如要傳送事件,請使用下列格式:
POST /mp/collect HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
<payload_data >
請務必在要求 URL 中包含下列項目:
api_secret
:Google Analytics 使用者介面產生的 API 密鑰。如要建立新的密鑰,請依序前往「管理」 >「資料串流」 > 選擇所需串流 >「Measurement Protocol」 >「建立」。
firebase_app_id
:Firebase 應用程式 ID,請前往 Firebase 控制台,依序點選「Project Settings」 >「General」 >「Your Apps」 >「App ID」。firebase_app_id
不等於app_instance_id
。firebase_app_id
用於識別應用程式,而app_instance_id
則用於識別單一安裝的應用程式。
如需完整參考資料,請參閱「查詢參數」。
請務必在要求內容中提供下列項目:
app_instance_id
:Firebase 應用程式執行個體的專屬 ID。這與網路client_id
不同:
user_id
:選用。使用者的專屬 ID。只能包含 UTF-8 字元。如要進一步瞭解這個 ID,請參閱「跨平台分析的 User-ID」。consent
:選用。瞭解如何設定同意聲明設定。timestamp_micros
:選用。要求中事件和使用者屬性的 Unix 紀元時間 (以微秒為單位)。如未指定,則預設為要求的時間。events
:事件項目陣列。您可以在一個要求中加入多個事件。如要在特定報表 (例如即時) 中顯示使用者活動,則務必在
event
的params
中附上engagement_time_msec
和session_id
。engagement_time_msec
參數應反映事件的參與時間 (以毫秒為單位)。範例如下:
{
"app_instance_id": "12345678901234567890123456789012",
"events": [
{
"name": "campaign_details",
"params": {
"campaign_id": "google_1234",
"campaign": "Summer_fun",
"source": "google",
"medium": "cpc",
"term": "summer+travel",
"content": "logolink",
"session_id": "123",
"engagement_time_msec": 100
}
}
]
}
session_start
是預留的事件名稱,但建立新的 session_id
會一併建立新的工作階段,不需要再傳送 session_start
。瞭解工作階段的計數方式。
立即試用
以下是一次傳送多個事件的範例。這個範例會將 tutorial_begin
事件和 join_group
事件傳送至 Google Analytics 伺服器。
const firebase_app_id = `1:1234567890:android:321abc456def7890`;
const api_secret = `<secret_value>`;
fetch(`https://www.google-analytics.com/mp/collect?firebase_app_id=${firebase_app_id}&api_secret=${api_secret}`, {
method: "POST",
body: JSON.stringify({
app_instance_id: 'app_instance_id',
events: [
{
name: "tutorial_begin",
params: {
"session_id": "123",
"engagement_time_msec": 100
}
},
{
name: "join_group",
params: {
"group_id": "G_12345",
"session_id": "123",
"engagement_time_msec": 150
}
}
]
})
});
firebase_app_id
的格式會因平台而異。請參閱「Firebase 設定檔和物件」中的「應用程式 ID」。
覆寫時間戳記
Measurement Protocol 會針對要求中的每個事件,使用下列清單中找到的第一個時間戳記:
- 事件的
timestamp_micros
。 - 要求的
timestamp_micros
。 - Measurement Protocol 收到要求的時間。
以下範例會傳送要求層級時間戳記,適用於要求中的所有事件。因此,Measurement Protocol 會為 tutorial_begin
和 join_group
事件指派 requestUnixEpochTimeInMicros
的時間戳記。
{
"timestamp_micros": requestUnixEpochTimeInMicros,
"events": [
{
"name": "tutorial_begin"
},
{
"name": "join_group",
"params": {
"group_id": "G_12345",
}
}
]
}
以下範例會傳送要求層級時間戳記和事件層級時間戳記。因此,Measurement Protocol 會為 tutorial_begin
事件指派 tutorialBeginUnixEpochTimeInMicros
時間戳記,為 join_group
事件指派 requestUnixEpochTimeInMicros
時間戳記。
{
"timestamp_micros": requestUnixEpochTimeInMicros,
"events": [
{
"name": "tutorial_begin",
"timestamp_micros": tutorialBeginUnixEpochTimeInMicros
},
{
"name": "join_group",
"params": {
"group_id": "G_12345",
}
}
]
}
限制
傳送 Measurement Protocol 事件至 Google Analytics 時,請注意下列限制:
- 請求最多只能包含 25 個事件。
- 事件最多只能有 25 個參數。
- 事件最多只能有 25 個使用者屬性。
- 使用者屬性的名稱不能超過 24 個半形字元。
- 使用者屬性的值不能超過 36 個半形字元。
- 事件名稱不能超過 40 個半形字元,只能使用英文字母、數字和底線,且必須以字母為開頭。
- 參數名稱 (包括項目參數) 不能超過 40 個半形字元,只能使用英文字母、數字和底線,且必須以字母為開頭。
- 參數值 (包括項目參數值) 不得超過 100 個半形字元 (標準 Google Analytics 資源) 或 500 個半形字元 (Google Analytics 360 資源)。
- 項目參數最多可包含 10 個自訂參數。
- 貼文內容不得超過 130 KB。
- 傳送至 Google Analytics 的應用程式 Measurement Protocol 事件,不會為應用程式使用者在 Google Ads 中填入搜尋目標對象。
如要瞭解各項用途的其他必要條件,請參閱「常見用途」。