プラットフォームを選択します。
Google アナリティクス Measurement Protocol は、イベントの形式が正しくない場合や必要なパラメータがない場合でも、HTTP エラーコードを返しません。イベントが有効であることを確認するには、Measurement Protocol 検証サーバーでテストしてから、本番環境にデプロイする必要があります。イベントが正しく構成されていることが確認できたら、実装を検証して、正しいキーを使用していることを確認してください。
これを行うには、検証サーバーを直接呼び出すか、Google アナリティクス イベント ビルダーを使用します。Google アナリティクス イベント ビルダーを使用すると、インタラクティブにイベントを作成し、Measurement Protocol 検証サーバーを使って検証することができます。
このガイドでは、Google アナリティクス 4 検証サーバー向けの Measurement Protocol にイベントを送信して、レスポンスを解釈する方法について説明します。
検証用にイベントを送信する
Measurement Protocol に送信するイベント用リクエストと Measurement Protocol 検証サーバーに送信するイベント用リクエストの唯一の違いは、URL です。
| サーバー | URL | 
|---|---|
| Measurement Protocol | /mp/collect | 
| Measurement Protocol 検証サーバー | /debug/mp/collect | 
他のすべてのリクエスト フィールドは同じです。
検証には次のアプローチをおすすめします。
- 開発時に、次のいずれかのオプションを使用して厳密な検証チェックを行います。
- イベント ビルダーでリクエストを検証します。
 validation_behaviorをENFORCE_RECOMMENDATIONSに設定して、検証サーバーにリクエストを送信します。
 - 本番環境では、Measurement Protocol で拒否されるデータを最小限に抑えるため、
validation_behaviorを設定せずにリクエストを送信します。 
以下のコードは、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",
  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: {},
    }]
  })
});
検証レスポンス
前のイベントに対する検証サーバーのレスポンスは次のとおりです。
{
  "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 | 
    リクエストで同じ名前が複数回指定されていました。 |