1. はじめに
最終更新日: 2021 年 6 月 8 日
作成するアプリの概要
この Codelab では、Measurement Protocol を使用して外部イベントを GA4 に送信する方法を学びます。
この Codelab は、アプリに Firebase 向け Google アナリティクスが実装されていることを前提としています。Firebase 向け Google アナリティクスと統合する方法については、まずこちらの Codelab をご覧ください。Firebase でアプリを作成する方法については、Firebase Android Codelab - 構築に適したチャットをご覧ください。
ラボの内容
- MP 通話を初めて行う手順
- 呼び出しに必要なパラメータを理解する
- テスト呼び出しを送信して検証する
- Python で呼び出しを行うサンプル スクリプトを作成します。
必要なもの
- Android アプリまたは iOS アプリ
- 変更が可能な任意の IDE
- GA4 アカウント
- 省略可 - Python 開発環境(または Colab)
2. 必須項目を収集する
GA4 で API Secret を作成する
GA4 に移動し、[管理] > [データ ストリーム >配信を選択 >Measurement Protocol >作成
任意のニックネームを付けると、通話で使用できるシークレットの値が表示されます
GA4 にアクセスする方法がわからない場合は、Firebase プロジェクトにアクセスし、[プロジェクトの設定] を確認してください >統合 >[管理]をクリックしますGoogle アナリティクスの接続が表示されているはずです。そこから直接移動することもできます。
app_instance_id を収集する
app_instance_id を収集するには、次のいずれかの方法を使用できます。
- BigQuery Export の使用
- アプリのソースコード内でネイティブに取得
この 2 つの詳細については、以下で説明します。
- BigQuery Export の使用
BigQuery Export を有効にしている場合は、以下の手順を実施します。
- Firebase にログインする
- [プロジェクトの設定] に移動 >統合 >BigQuery
- [BigQuery で表示] をクリックします。データセット付近
注 : データセットは、切り替えボタンを約 24 ~ 48 時間有効にした後でのみ利用可能になります。
- BigQuery では、テーブル内の user_pseudo_id を確認できます。呼び出しで使用できる app_instance_id です
- アプリのソースコード内でネイティブに取得
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] に設定されていることを確認します。
次のフィールドに入力する必要があります。
- api_secret - GA4 ですでに作成済み
- firebase_app_id - これを取得するには、[管理] >データ ストリーム >ストリームを選択します。次のように表示されます。
- app_instance_id - この値はすでに取得済みです
- user_id は必須ではありません。今は空欄のままで構いません
- [Category] - [Custom] に変更します。プルダウンから選択して、任意のイベント名を入力します(自動収集イベントは使用しないでください)。ここでは「test_from_codelab」を使用して、
必要に応じて、下のボタンをクリックして、イベント パラメータやユーザー プロパティを指定することもできます。
すべて入力すると、次のような [イベントを検証] ボタンが表示されます。
このページが表示されたら、[イベントを検証] をクリックします。] を選択し、このボタンはオレンジ色でハイライト表示されています。イベントが有効であることを示す以下のメッセージが表示されます。また、[SEND TO GA] というボタンが表示されます。この時点でそのイベントが無効の場合は、問題があるフィールドが正確に示されるので、問題を修正して再試行できます。
ボタンをクリックすると、テストイベントが GA4 に送信されます。
4. GA4 でイベントを検証する
イベントを送信したら、GA4 アカウントに移動して [リアルタイム] を確認できます。イベントが終了したことが
イベントがリアルタイム ビューから [実際のイベント レポート] タブに反映されるまでに 24 時間ほどかかる場合があります。そのため、通常のイベント レポートにすぐに反映されていなくても心配はいりません。
問題や不一致がある場合は、Measurement Protocol の既知の制限事項をご確認いただくことをおすすめします。
5. Python スクリプトのビルド
テストが完了したので、API 呼び出しとイベント ペイロードを調べて、この呼び出しを行うことができる同様のアーキテクチャを Python(または任意の言語)で構築できます。その後、任意の頻度でこの処理をスケジュールし、運用化できます。ここでは、Python をサポートする任意の IDE を使用することも、デバイスへのインストールを必要としない Google Colab ノートブックを使用することもできます。
GA4 イベント ビルダーに戻ると、エンドポイントが次のようになっていることがわかります。
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 で Measurement Protocol を正常に使用できました。強力なソリューション アーキテクチャを構築して、より有意義なデータを Google アナリティクスに送信し、マーケティング分析やビジネス分析を改善できるようになりました。これを最大限に活用するには、Google 広告に接続し、これらのイベントをコンバージョンとしてインポートすることもおすすめします。詳しい手順については、こちらの Codelab のステップ 6 をご覧ください。コンバージョン トラッキングの目的で、Google 広告では過去 60 日間に Firebase SDK から収集された IDFA またはデバイス ID に関連付けられているデータのみが表示されます。この API はまだアルファ版です。こちら に記載されている制限については、完全リリース前に対処する必要があります。
学習した内容
- MP 呼び出しを行うための適切な変数を収集する方法
- テストイベントの送信と検証の方法
- MP 呼び出しを送信するスクリプトの作成方法