Measurement Protocol を使用してアプリ イベントを GA4 に送信する

1. はじめに

最終更新日: 2021-06-08

何を構築するか

このコードラボでは、 Measurement Protocolを使用して外部イベントを GA4 に送信する方法を学習します。

このコードラボは、Firebase 向け Google アナリティクスが実装されたアプリがすでにあることを前提としています。 Firebase 向け Google アナリティクスと統合する方法を学びたい場合は、まずこのコードラボを参照してください。 Firebase を使用してアプリを構築する方法を学びたい場合は、 「Firebase Android Codelab - Build Friendly Chat」を参照してください。

学べること

  • 初めて MP ​​通話を行う手順
  • 通話に必要なパラメータを理解する
  • テスト通話を送信して検証する
  • Python でサンプル スクリプトを構築して呼び出しを行う

必要なもの

  • Android または iOS アプリ
  • 変更を加えるための任意の IDE
  • GA4アカウント
  • オプション - Python 開発環境 (またはColab )

2. 必須フィールドを収集します

GA4 で API シークレットを作成する

GA4 に移動し、 [管理] > [データ ストリーム] >ストリームの選択> [測定プロトコル] > [作成]に移動して新しい API シークレットを作成します。

6e4afca63054d291.png

c9e9ccd2ffba98eb.png

e714cd969fca4a4d.png

任意のニックネームを入力すると、通話で使用できるシークレット値が表示されます。

GA4 へのアクセス方法がわからない場合は、Firebase プロジェクトにアクセスし、[プロジェクト設定] > [統合] > [Google Analytics] を確認して、[管理] をクリックします。 Google Analytics 接続が表示され、そこから直接移動することもできます。

73b4d77a57eddfba.png

app_instance_id を収集する

以下のいずれかの方法を使用して、app_instance_id を収集できます。

  1. BigQuery エクスポートの使用
  2. アプリのソースコードでネイティブにフェッチする

これらの両方については、以下で詳しく説明します

  1. BigQuery エクスポートの使用

BigQuery エクスポートが有効になっている場合は、以下の手順に従うことができます。

  • Firebase にサインインする
  • [プロジェクト設定] > [統合] > [BigQuery] に移動します。
  • データセットの近くにある [BigQuery で表示] をクリックします

注: データセットは、切り替えが約 24 ~ 48 時間有効になった後にのみ使用可能になります。

63d061088b622961.png

  • BigQuery では、テーブル内の user_pseudo_id を確認できます。これは、呼び出しで使用できる app_instance_id です。

4b1b80bdc2884581.png

  1. アプリのソースコードでネイティブにフェッチする

アプリが Java を使用して構築されている場合は、次のようなものを使用して app_instance_id を取得できます。

 FirebaseAnalytics.getInstance(this).getAppInstanceId().addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
            if (task.isSuccessful()) {
                String user_pseudo_id = task.getResult();
            }
        }
    });

Kotlin の場合は、以下を試すことができます

Thread {
   Firebase.analytics.appInstanceId.addOnSuccessListener { user_pseudo_id ->
       Log.d("Firebase", "user_pseudo_id using appInstanceId is $user_pseudo_id")
       /*
       Store the value to your server or do something with the retrieved id
        */
   }
}.start()

iOS アプリをお持ちの場合は、Swift で以下を使用できます

let user_pseudo_id = Analytics.appInstanceID()
print("user_pseudo_id = \(user_pseudo_id)")
/*
Store the value to your server or do something with the retrieved id
*/

インフラストラクチャに応じて、以下のリンクがさらに表示されます

3. 呼び出しの構築

GA4 のイベント ビルダーを使用してサンプル呼び出しを構築できます。 (これには、ログインして Cookie を有効にする必要があります)。トグルが「firebase」に設定されていることを確認してください

fd78d961f3e48238.png

次のフィールドに記入する必要があります

  • api_secret - GA4 ですでに作成されています
  • firebase_app_id - これを取得するには、 [管理] > [データ ストリーム] > [ストリームを選択]に移動します。以下のように表示されるはずです

19801c8e5cb29222.png

  • app_instance_id - この値はすでに取得されています
  • user_id は必須ではありません。今のところ空白のままでも大丈夫です
  • カテゴリ - ドロップダウンからこれを「カスタム」に変更し、任意のイベント名を入力します (自動収集イベントは使用しないでください)。ここでは「test_from_codelab」を使用しています

54cce53df64d697.png

オプションで、以下のボタンをクリックして、イベント パラメータやユーザー プロパティを指定することもできます。

16a8f531a3894021.png

すべて入力すると、次のような画面が表示され、「イベントを検証」ボタンが表示されます。

475801f25c3caf26.png

ここに到達したら、オレンジ色で強調表示されているボタン「VALIDATE EVENT」をクリックします。イベントが有効であることを示す以下のメッセージが表示され、「GA に送信」ボタンが表示されます。この時点で、イベントが無効であると判断された場合、ツールは問題がある正確なフィールドを通知するので、それを修正して再試行できます。

23e4e6800705b4aa.png

これでボタンをクリックできるようになり、テスト イベントが GA4 に送信されるはずです。

4. GA4 でのイベントの検証

イベントを送信したら、GA4 アカウントに移動してリアルタイムを確認できます。イベントが完了するのが見えるはずです

994b51ca46bb1973.png

イベントがリアルタイム ビューから実際のイベント レポート タブに反映されるまでに約 24 時間かかる場合があるため、通常のイベント レポートにこれがすぐに表示されなくても心配する必要はありません。

問題や不一致に直面している場合は、ここで測定プロトコルの既知の制限を確認すると役立つ場合があります。

5. Python スクリプトの構築

これでテストが完了したので、API 呼び出しとイベント ペイロードを調べて、この呼び出しを実行できる同様のアーキテクチャを Python (または任意の言語) で構築できます。その後、これを希望の頻度でスケジュールし、運用することができます。この部分では、Python をサポートする任意の IDE を使用することも、デバイスにインストールする必要のないGoogle Colab ノートブックを使用することもできます。

GA4 Event Builder に戻って参照すると、エンドポイントが次のとおりであることがわかります。

POST /mp/collect?firebase_app_id=XXXX&api_secret=XXXX 
HTTP/1.1
Host: www.google-analytics.com

イベントペイロードは以下のとおりでした

{
  "app_instance_id": XXXX,
  "non_personalized_ads": false,
  "events": [
    {
      "name": "test_from_codelab",
      "params": {
        "test_param": "test_123"
      }
    }
  ]
}

次のようなものを使用して、これを Python に変換できます

import requests
import json
url = "https://www.google-analytics.com/mp/collect?firebase_app_id=XXXX&api_secret=XXXX"
payload = {
  "app_instance_id": XXXX,
  "non_personalized_ads": False,
  "events": [
    {
      "name": "test_from_codelab",
      "params": {
        "test_param": "test_123"
      }
    }
  ]
}
r = requests.post(url,data=json.dumps(payload),verify=True)
print(r.status_code)

正しい値を指定してこれを実行すると、同様にイベントが GA4 にリアルタイムで反映されるのが確認できるはずです。

6.おめでとうございます

おめでとうございます。GA4 で測定プロトコルが正常に使用されました。強力なソリューション アーキテクチャを構築して、より意味のあるデータを Google Analytics に送信し、マーケティング分析とビジネス分析を改善できるようになりました。これを最大限に活用するには、Google 広告に接続し、これらのイベントをコンバージョンとしてインポートすることをお勧めします。詳細な手順については、このコードラボのステップ 6 を参照してください。コンバージョン トラッキングの目的で、Google 広告では、過去 60 日以内に Firebase SDK から収集された IDFA またはデバイス ID に関連付けられたデータのみが表示されます。これはまだアルファ API であることに留意し、完全なリリース前に対処する必要があるここにリストされている制限事項を必ず確認してください。

学びましたね

  • MP 呼び出しを行うために適切な変数を収集する方法
  • テストイベントを送信して検証する方法
  • MP コールを送信するスクリプトを構築する方法