重要:
この連携は、Google Analytics for Firebase SDKがすでに実装されているiOSおよびAndroidアプリで動作します。 連携を成功させるには、AppsFlyer SDKがFirebase SDKから値 app_instance_id
を収集する必要があります。詳細は Firebase SDKからアプリのインスタンスIDを取得する方法を参照してください。
仕組み
-
新規インストールが発生すると、AppsFlyerはタッチポイントの詳細(メディアソース、キャンペーン名、キャンペーンID)をGA4に送信します。同時にFirebase SDKの
app_instance_id
を送信し、そのユーザーのタッチポイントがGA4に記録されるようにします。 - アプリ内イベントが発生すると、GA4はそのイベントを最も直近のタッチポイントに紐付けます。
Google Analytics(GA4)の連携設定
以下の手順に従って、Google Analytics (GA4) との連携を設定してください。
1. Partner MarketplaceでGoogle Analytics(GA4)を選択します。
前提条件: 連携を設定する前に、 パートナーへ連絡し、アカウントを開設してください。
連携を有効化または編集する方法:
- 連携を有効にする: AppsFlyer管理画面 左メニュー コラボレーション > Partner Marketplaceを選択します。 連携を編集する:AppsFlyer管理画面 左メニュー コラボレーション > 連携済みパートナーを選択します。
- Google Analytics (GA4) を検索して選択します。
- 連携設定をクリックしてください。連携の設定ページに移動します。
Google Analyticsの設定画面には連携タブのみ存在します。
連携済みパートナーの設定画面の詳細については、 こちらをクリックしてください。
2. AppsFlyerでGA4連携を設定
以下の設定を行います:
-
連携タブにて連携したいアプリを選択し、 パートナーを有効にするをオンにしてください。
注記:トグルは、パートナーと作業している間、オン(有効)のままにしておく必要があります。
パートナーの有効化についての詳細は、 こちらをご覧ください。
- Firebase App IDにFirebaseアプリの識別子を入力します。Firebase App IDを見つける方法:Firebaseのドキュメントを参照してください。
- API Secretには、Google Analyticsへのポストバックを認証するためのAPI Secretを入力します。APIシークレットはGoogleアナリティクスの管理画面から生成されます。APIシークレットの閲覧、編集、作成を行うには、Googleドキュメントの指示に従ってください。ウェブデータストリームを選択するよう指示された場合は、代わりにAndroidまたはiOSデータストリームを選択してください。
- Advertising ID(IDFA)の代わりにCustomer user ID(CUID)を送信するには、Customer User IDトグルをオンにします。
-
デフォルトのポストバックセクションの送信オプションで、オーガニックを含むすべてのメディアソースを選択します。
注記:
インストールポストバックには、タッチポイントの詳細(メディアソース、キャンペーン名、キャンペーンID)のみが含まれます。
3. アプリ内イベントのポストバック設定
連携タブで、AppsFlyerのアプリ内イベントをポストバック経由で送信されるGoogle Analytics(GA4)イベントにマッピングします。
注記:
GA4はFirebase SDKとAppsFlyerの両方から送信されるイベントを重複排除しません。そのため、アプリ内イベントのポストバックは、Firebase SDK経由でGA4に送信されていないイベントに対してのみ設定することをお勧めします。
- アプリ内イベントポストバックを有効にします。
-
イベントを追加をクリックして、SDK または サーバー間イベントをリストに追加してください。以下の表にて、設定する必要がある各項目について説明しています:
パラメーター名 説明 AppsFlyerイベント アプリに実装されているSDKまたはサーバー間(S2S)イベントからAppsFlyerが受信したイベント名。
ヒント:イベント名が表示されない場合は、以下を実行してください。
- 非オーガニックインストールとして計測された端末上で、そのアプリ内イベントが発生しているかを確認し、再度チェックしてください。
- AppsFlyerイベントを入力し、カスタムを作成をクリックしてください。
カスタムイベントのマッピングについてご参照ください。
パートナー側のイベント名 パートナー側で定義されている各イベントの固有の名前またはID。オプションは以下の通りです: - テキストフィールド: 対応するイベントIDをパートナーから取得します。
- ドロップダウンボックス: 最適な事前定義されたAppsFlyerイベントを選択します。
- そのまま送信:イベント名のマッピングなしで、イベントをそのまま送信します。
送信オプション 最適なイベントの送信オプションを選択します。 - オーガニックを含む全メディアソース:オーガニックを含む全てパートナーに紐づくイベントに対してポストバックを送信します。
送信データ - データなし (デフォルト): イベント値なしでイベント自体のみを送信します。
- イベント値も収益も送信: 収益値を含む全てのイベントパラメーターを送信します(イベント内にある場合)。
- 収益は送信せず、イベント値のみ送信: 収益値以外のすべてのパラメーターを送信します。
- [任意] イベントの条件を設定するには、条件を追加アイコン( )をクリックします。
- 連携の保存をクリックします。
- ポストバックマッピングされたイベントが送信されます。
4. 開発者にポストバックのイベントマッピングを送信します。
アプリ内イベントのマッピングを設定したら、マッピングされた各イベントが以下の列の行に対応するテーブルを開発者に送信します:
- AppsFlyerイベント:AppsFlyer SDKで計測しているイベントの名前。
-
Googleイベントにマッピング:Google Analytics側のイベントの名前。
重要:
Google Analyticsのカスタムイベントの名前として、Googleが定義済みのイベント名を使用しないでください。
-
AppsFlyerイベントパラメータ(必須): Google Analyticsに送信されるイベントポストバックに含める必要がある、定義済みのAppsFlyerイベントパラメータ。
重要:
イベントの定義には、定義済みのすべてのAppsFlyerイベントパラメータを表に記載されている通りに含める必要があります。これが行われない場合、Google Analyticsはポストバックを拒否します。
イベントマッピング表
次の表には、すべてのGoogle Analyticsイベントと、その事前定義されたAppsFlyerパラメータが含まれています。デベロッパーに、マッピングしたイベントだけを含むテーブルを送信します。
定義済みのGoogleイベント名
次のイベント名は定義済みなので、カスタムイベント名として使用することはできません。
ad_activeview
ad_click
ad_exposure
ad_query
ad_reward
adunit_exposure
app_clear_data
app_exception
app_install
app_remove
app_store_refund
app_update
app_upgrade
dynamic_link_app_open
dynamic_link_app_update
dynamic_link_first_open
error
firebase_campaign
firebase_in_app_message_action
firebase_in_app_message_dismiss
firebase_in_app_message_impression
first_open
first_visit
in_app_purchase
notification_dismiss
notification_foreground
notification_open
notification_receive
notification_send
os_update
session_start
user_engagement
5. AppsFlyer SDKでアプリインスタンスIDを取得
アプリインスタンスID は、Firebaseアプリの特定のインストールを一意に識別します。この値は、AppsFlyer SDKがFirebase SDKから取得する必要があります。
開発者によるコードの実装:
- Firebase から
app_instance_id
フィールドを収集します。 - インストール、セッション、アプリ内イベントにアプリのインスタンスIDを含めるために、アプリ初回起動の前に
setAddiotionalData
をコールします。
Kotlin
FirebaseAnalytics.getInstance(this).appInstanceId.addOnCompleteListener { task -> if (task.isSuccessful) { AppsFlyerLib.getInstance().setAdditionalData("app_instance_id", task.result) } }
Java
FirebaseAnalytics.getInstance(this).getAppInstanceId().addOnCompleteListener(task -> { if (task.isSuccessful()) { AppsFlyerLib.getInstance().setAdditionalData("app_instance_id", task.getResult()); } });
APIリファレンス: setAdditionalData
iOS ネイティブ
let appInstanceId = Analytics.appInstanceID() AppsFlyerLib.shared().customData = ["app_instance_id": appInstanceId]
Objective C
(void) fetchAnalyticsInstanceId { NSString *instanceID = [FIRAnalytics appInstanceID]; [[AppsFlyerLib shared] setAdditionalData:@{@"app_instance_id": instanceID}]; }
APIリファレンス: customData
using Firebase.Analytics; public class AnalyticsManager : MonoBehaviour { private async void Start() { AppsFlyer.initSDK(devKey, appID, this); string appInstanceId = await FirebaseAnalytics.GetAnalyticsInstanceIdAsync(); Dictionary <string, string> customData = new Dictionary<string, string>(); customData.Add("app_instance_id", appInstanceId); AppsFlyer.setAdditionalData(appInstanceId); AppsFlyer.startSDK(); } }
APIリファレンス: setAdditionalData
APIリファレンス: setAdditionalData
6. GA4連携を確認
GA4 に送信するポストバックのイベントが Googleアナリティクスに登録され、読み取られていることを確認します。広告主がデータを表示するには、次の2つの方法があります:
- GA4 Explorationsを使用すると、関連するすべてのパラメーターを使用して、未加工のイベントデータを調べることができます。前提条件:Big Queryのエクスポートは、あなたのプロパティで設定する必要があります。
-
イベントレポートは、広告主がポストバックイベントを表示できるようにします。レポートは、複数のレポートコレクションの下にあります。
例えば、イベントレポートは、ライフサイクルまたはゲームレポートコレクションのエンゲージメント > イベントにあります。
イベントレポートの詳細については、 Googleのドキュメントをご覧ください。 -
トラフィック獲得レポートは、ウェブサイトやアプリの訪問者がどこから来ているのかを理解するのに役立ちます。
ライフサイクルコレクションで獲得 > トラフィック獲得を選択します。
トラフィック獲得レポートの詳細については、Googleのドキュメントをご覧ください。