イベントを検証する

プラットフォームを選択してください:

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_behaviorENFORCE_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 リクエストで同じ名前が複数回指定されていました。