このガイドでは、Google アナリティクス Measurement Protocol のウェブとアプリのストリーム イベントを Google アナリティクス サーバーに送信し、Measurement Protocol イベントを Google アナリティクスのレポートで確認できるようにする方法を説明します。
このガイドで説明を希望するプラットフォームを選択してください。
リクエストを整形する
Google アナリティクス 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 アナリティクス管理画面で生成される API Secret。新しい Secret を作成するには、[管理] > [データの収集と修正] > [データ ストリーム] > ストリームを選択 > [Measurement Protocol API シークレット] > [作成] の順にクリックします。
measurement_id
: ストリームに関連付けられた測定 ID。この ID は、Google アナリティクス管理画面の [管理] > [データ ストリーム] > ストリームを選択 > [測定 ID] で確認できます。measurement_id
は、ストリーム ID ではありません。
Measurement Protocol では、JSON POST 本文形式でリクエスト本文を指定する必要があります。次の例をご覧ください。
{
"client_id": "CLIENT_ID",
"events": [
{
"name": "login",
"params": {
"method": "Google",
"session_id": "SESSION_ID",
"engagement_time_msec": 100
}
}
]
}
session_start
は予約済みのイベント名ですが、新しい session_id
を作成すると、session_start
を送信しなくても新たなセッションを作成できます。セッション数のカウント方法を理解しましょう。
試してみる
複数のイベントを一度に送信する例を次に示します。この例では、tutorial_begin
イベントと join_group
イベントを Google アナリティクス サーバーに送信し、user_location
フィールドを使用して地理情報を含め、device
フィールドを使用してデバイス情報を含めています。
const measurementId = "MEASUREMENT_ID";
const apiSecret = "API_SECRET";
fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurementId}&api_secret=${apiSecret}`, {
method: "POST",
body: JSON.stringify({
client_id: "CLIENT_ID",
events: [
{
name: "tutorial_begin",
params: {
"session_id": "SESSION_ID",
"engagement_time_msec": 100
}
},
{
name: "join_group",
params: {
"group_id": "G_12345",
"session_id": "SESSION_ID",
"engagement_time_msec": 150
}
}
],
user_location: {
city: "Mountain View",
region_id: "US-CA",
country_id: "US",
subcontinent_id: "021",
continent_id: "019"
},
device: {
category: "mobile",
language: "en",
screen_resolution: "1280x2856",
operating_system: "Android",
operating_system_version: "14",
model: "Pixel 9 Pro",
brand: "Google",
browser: "Chrome",
browser_version: "136.0.7103.60"
}
})
});
タイムスタンプをオーバーライド
Measurement Protocol では、リクエスト内の各イベントとユーザー プロパティについて、次のリストで最初に見つかったタイムスタンプが使用されます。
- イベントまたはユーザー プロパティの
timestamp_micros
。 - リクエストの
timestamp_micros
。 - Measurement Protocol がリクエストを受信した時刻。
次の例では、リクエスト内のすべてのイベントとユーザー プロパティに適用されるリクエストレベルのタイムスタンプを送信します。その結果、Measurement Protocol は tutorial_begin
イベントと join_group
イベント、customer_tier
ユーザー プロパティに requestUnixEpochTimeInMicros
のタイムスタンプを割り当てます。
{
"timestamp_micros": requestUnixEpochTimeInMicros,
"events": [
{
"name": "tutorial_begin"
},
{
"name": "join_group",
"params": {
"group_id": "G_12345",
}
}
],
"user_properties": {
"customer_tier": {
"value": "PREMIUM"
}
}
}
次の例では、リクエストレベルのタイムスタンプ、イベントレベルのタイムスタンプ、ユーザー プロパティ レベルのタイムスタンプを送信します。その結果、Measurement Protocol は次のタイムスタンプを割り当てます。
tutorial_begin
イベントのtutorialBeginUnixEpochTimeInMicros
customer_tier
ユーザー プロパティのcustomerTierUnixEpochTimeInMicros
join_group
イベントとnewsletter_reader
ユーザー プロパティのrequestUnixEpochTimeInMicros
。
{
"timestamp_micros": requestUnixEpochTimeInMicros,
"events": [
{
"name": "tutorial_begin",
"timestamp_micros": tutorialBeginUnixEpochTimeInMicros
},
{
"name": "join_group",
"params": {
"group_id": "G_12345",
}
}
],
"user_properties": {
"customer_tier": {
"value": "PREMIUM",
"timestamp_micros": customerTierUnixEpochTimeInMicros
},
"newsletter_reader": {
"value": "true"
}
}
}
過去のイベントとユーザー プロパティの検証動作
イベントとユーザー プロパティには、最大 72 時間前までさかのぼってタイムスタンプを適用できます。timestamp_micros
の値が 72 時間より前の場合は、Measurement Protocol は次のようにイベントまたはユーザー プロパティを受け入れるか拒否します。
validation_behavior
が設定されていない場合、またはRELAXED
に設定されている場合、Measurement Protocol はイベントまたはユーザー プロパティを受け入れますが、タイムスタンプを 72 時間前にオーバーライドします。validation_behavior
がENFORCE_RECOMMENDATIONS
に設定されている場合、Measurement Protocol はイベントまたはユーザー プロパティを拒否します。
制限事項
Measurement Protocol イベントを Google アナリティクスに送信する際には、次の制限が適用されます。
- リクエスト内で指定できるイベントは 25 個までです。
- イベント内で指定できるパラメータは 25 個までです。
- イベント内で指定できるユーザー プロパティは 25 個までです。
- ユーザー プロパティ名は半角 24 文字(全角 12 文字)以下にする必要があります。
- ユーザー プロパティ値は 36 文字以下で指定する必要があります。
- イベント名は半角 40 文字以下にして、先頭を英字にする必要があります。使用できる文字は英数字とアンダースコアのみです。
- アイテム パラメータなどのパラメータ名は半角 40 文字以下にして、先頭を英字にする必要があります。使用できる文字は英数字とアンダースコアのみです。
- アイテム パラメータなどのパラメータ値は、標準の Google アナリティクス プロパティの場合は 100 文字以下、Google アナリティクス 360 プロパティの場合は 500 文字以下にする必要があります。
- アイテム パラメータに指定できるカスタム パラメータの数は 10 個までです。
- POST 本文は 130 KB 未満にする必要があります。
- タイムスタンプは過去 72 時間以内である必要があります。詳しくは、過去のイベントの検証動作をご覧ください。
- Google アナリティクスに送信されるアプリの Measurement Protocol イベントでは、アプリユーザーについて、Google 広告で検索ユーザーは入力されません。
各ユースケースの追加要件については、一般的なユースケースをご覧ください。