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

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

1.はじめに

最終更新日: 2021-06-08

構築するもの

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

このコードラボは、Firebase用のGoogleアナリティクスが実装されたアプリがすでにあることを前提としています。 Google Analytics for Firebaseと統合する方法を知りたい場合は、最初にこのコードラボを参照してください。 Firebaseを使用してアプリを作成する方法を知りたい場合は、 Firebase Android Codelab-BuildFriendlyChatを参照してください。

あなたが学ぶこと

  • 最初のMP呼び出しを行う手順
  • 通話に必要なパラメータを理解する
  • テストコールを送信して検証する
  • Pythonでサンプルスクリプトを作成して、電話をかけます

必要なもの

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

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

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

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

8dee89e850ae90bb.png

d0be19d8112435a2.png

de5a80a1445d3a14.png

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

GA4にアクセスする方法がわからない場合は、Firebaseプロジェクトにアクセスし、[プロジェクト設定]>[統合]>[Google Analytics]をオンにして、[管理]をクリックします。 Google Analyticsの接続が表示されている必要があり、そこから直接ナビゲートすることもできます

f0feed0557420678.png

app_instance_idを収集します

以下のメソッドのいずれかを使用して、app_instance_idを収集できます。

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

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

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

BigQueryエクスポートを有効にしている場合は、次の手順に従うことができます

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

注:データセットは、トグルが約24〜48時間有効にされた後にのみ使用可能になります

1dc4e93dee33316f.png

  • BigQueryでは、テーブルでuser_pseudo_idを確認できます。これは、通話で使用できるapp_instance_idです。

aa6d384e380a11e8.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」に設定されていることを確認してください

15440faa9ca6a1f1.png

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

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

71174b16f86ff03e.png

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

cf580a708bb0a8a2.png

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

da59bb982f6f906a.png

すべてを入力すると、[イベントを検証する]ボタンが付いた次のようなものが表示されます。

39676ab485d17dc0.png

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

1d63d1e067c46294.png

これでボタンをクリックでき、GA4にテストイベントが送信されます。

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

イベントを送信したら、GA4アカウントに移動して、リアルタイムを確認できます。イベントが通過するのを見る必要があります

7b9e9a0f74b64757.png

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

5.Pythonスクリプトの作成

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

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アナリティクスに送信し、マーケティングとビジネスアナリティクスを改善できます。これを最大限に活用するために、Google広告に接続し、これらのイベントをコンバージョンとしてインポートすることもお勧めします。詳細な手順については、このコードラボのステップ6を参照してください。コンバージョントラッキングの目的で、Google広告には、過去60日以内にFirebaseSDKから収集されたIDFAまたはデバイスIDに関連付けられたデータのみが表示されます。これはまだアルファAPIであることを忘れないでください。また、完全に起動する前に対処する必要がある、ここにリストされている制限を必ず確認してください。

あなたは学んだ

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