プラットフォームを選択してください:
Google アナリティクス Measurement Protocol は、イベントの形式が正しくない場合や必要なパラメータがない場合でも、HTTP
エラーコードを返しません。イベントが有効であることを確認するには、Measurement Protocol
検証サーバーでテストしてから、本番環境にデプロイする必要があります。
イベントが正しく構成されていることが確認できたら、
実装を検証して、正しいキーを使用していることを確認してください。
これを行うには、検証サーバーを直接呼び出すか、Google アナリティクス イベント ビルダーを使用します。Google アナリティクス イベント ビルダーを使用すると、インタラクティブにイベントを作成し、Measurement Protocol 検証サーバーを使って検証することができます。
このガイドでは、Google アナリティクス検証サーバー向けの Measurement Protocol にイベントを送信して、レスポンスを解釈する方法について説明します。
検証用のイベントを送信する
Measurement Protocol に送信するイベント用リクエストと Measurement Protocol 検証サーバーに送信するイベント用リクエストの唯一の違いは、URL です。
| サーバー | URL |
|---|---|
| Measurement Protocol | /mp/collect |
| Measurement Protocol 検証サーバー | /debug/mp/collect |
その他のリクエスト フィールドはすべて同じです。
検証には次のアプローチをおすすめします。
- 次のいずれかのオプションを使用して、開発中に厳格な検証チェックを行います。
- イベント ビルダーでリクエストを検証します。
validation_behaviorをENFORCE_RECOMMENDATIONSに設定して、検証サーバーにリクエストを送信します。
- 本番環境では、
validation_behaviorを設定せずにリクエストを送信して、Measurement Protocol で拒否されるデータを最小限に抑えます。
無効なイベントの例
以下のコードは、Measurement Protocol 検証サーバーに送信されている無効なイベントを示しています。
const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";
fetch(`https://www.google-analytics.com/debug/mp/collect?firebase_app_id=${firebaseAppId}&api_secret=${apiSecret}`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
app_instance_id: "APP_INSTANCE_ID",
validation_behavior: "ENFORCE_RECOMMENDATIONS",
events: [{
// Event names must start with an alphabetic character.
name: "_badEventName",
params: {},
}]
})
});
有効なイベントの例
以下のコードは、Measurement Protocol
検証サーバーに送信されている有効なイベントを示しています。このリクエストでは、検証レスポンス セクションに示すように、レスポンスで空のvalidationMessages配列
が生成されます。
const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";
fetch(`https://www.google-analytics.com/debug/mp/collect?firebase_app_id=${firebaseAppId}&api_secret=${apiSecret}`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
app_instance_id: "APP_INSTANCE_ID",
validation_behavior: "ENFORCE_RECOMMENDATIONS",
events: [{
name: "level_up",
params: {
level: 2,
character: "MyHero"
},
}]
})
});
https://region1.google-analytics.com検証レスポンス
無効なイベントの例に対する検証サーバーのレスポンスを次に示します。
{
"validationMessages": [
{
"fieldPath": "events",
"description": "Event at index: [0] has invalid name [_badEventName]. Names must start with an alphabetic character.",
"validationCode": "NAME_INVALID"
}
]
}
検証の問題がないリクエストに対する検証サーバーのレスポンスを次に示します。
{
"validationMessages": []
}
レスポンス
| キー | 型 | 説明 |
|---|---|---|
validationMessages |
Array<ValidationMessage> | 検証メッセージの配列。 |
ValidationMessage
| キー | 型 | 説明 |
|---|---|---|
fieldPath |
string | 無効だったフィールドへのパス。 |
description |
string | エラーの説明。 |
validationCode |
ValidationCode | エラーに対応する検証コード。 |
ValidationCode
| 値 | 説明 |
|---|---|
VALUE_INVALID |
fieldPath に指定した値が無効でした。制限事項をご覧ください。
|
VALUE_REQUIRED |
fieldPath に必須の値が指定されていませんでした。 |
NAME_INVALID |
指定した名前が無効でした。制限事項をご覧ください。 |
NAME_RESERVED |
指定した名前は予約済みの名前の 1 つでした。予約済みの名前をご覧ください。 |
VALUE_OUT_OF_BOUNDS |
指定した値が大きすぎました。制限事項をご覧ください。 |
EXCEEDED_MAX_ENTITIES |
リクエストに含まれるパラメータが多すぎました。制限事項をご覧ください。 |
NAME_DUPLICATED |
リクエストで同じ名前が複数回指定されていました。 |