概要:Firebase SDKで記録したイベントをAppsFlyerに送信するための、アプリ側の設定手順を説明します。
アプリでのイベントの設定
このセクションでは、Googleタグマネージャー(GTM)を使用する場合に、アプリでイベントを設定・作成する方法を説明します。
イベントが送信されると、GTMはイベントトリガーを使って、そのイベントを処理するタグが設定されているか確認します。イベントトリガーは、特定のイベントが送信されるたびにタグを発火させるよう設定します。送信されたイベントに対応するトリガーがあると、タグが発火します。タグが発火すると、Googleタグマネージャーがイベント内のすべてのデータを収集します。このデータには、AppsFlyer ID、イベント名、イベントパラメータなどが含まれます。データをすべて収集すると、GoogleタグマネージャーがAppsFlyerにイベントを送信します。
収益と価格のイベント変数の作成
Android
- MainActivityクラスに、AppsFlyer Device IDを保持する変数を作成します。
public static String appsFlyerID; - MainActivityクラスの
onCreateメソッドで、super.onCreateの後にAppsFlyer IDを変数に渡します。appsFlyerID = AppsFlyerLib.getInstance().getAppsFlyerUID(this);
- MainActivityクラスに、AppsFlyer Device IDを保持する変数を作成します。
var appsFlyerID: String? = null - MainActivityクラスの
onCreateメソッドで、super.onCreateの後にAppsFlyer IDの値を変数に渡します。override fun onCreate(savedInstanceState: Bundle?) { ... appsFlyerID = AppsFlyerLib.getInstance().getAppsFlyerUID(this) }
iOS
iOSでは、アプリ全体からパラメータを利用できます。 AppsFlyerTrackerのインスタンスから取得できます。
- AppsFlyerデバイスID:
[AppsFlyerTracker sharedTracker].getAppsFlyerUID - Apple App ID:
[AppsFlyerTracker sharedTracker].appleAppID
- AppsFlyerデバイスID:
AppsFlyerTracker.shared().getAppsFlyerUID() - Apple App ID:
AppsFlyerTracker.shared().appleAppID
アプリへのイベントの追加
まず、アプリでイベントを設定します。イベントはFirebaseのイベントロギング機能を使って送信します。イベントにはAppsFlyer ID、イベント名、イベントパラメータを指定します。 AppsFlyer IDは、設定手順で作成した変数から取得します。
GoogleタグマネージャーはFirebase Analyticsのイベントをきっかけにタグを発火させます。 Firebaseにイベントが送信されるたびに、タグマネージャーがイベントを認識し、AppsFlyerにも送信します。
Android
- 対象のアクティビティに、Firebaseのimport文を追加します。
import com.google.firebase.analytics.FirebaseAnalytics; - 購入イベントが発生するたびに実行されるよう、以下のコードを追加します。
Bundle bundle = new Bundle(); // notice "af_id", this is the name of the event parameter // for AppsFlyer ID that we created in the previous step bundle.putString("af_id", appsFlyerID); bundle.putString("af_revenue", "200"); bundle.putString("af_price", "250"); mFirebaseAnalytics.logEvent("af_purchase", bundle);
- 対象のアクティビティに、Firebaseのimport文を追加します。
import com.google.firebase.analytics.FirebaseAnalytics - 購入イベントが発生するたびに実行されるよう、以下のコードを追加します。
val bundle = Bundle() // notice "af_id", this is the name of the event parameter // for AppsFlyer ID that we created in the previous step bundle.putString("af_id", appsFlyerID) bundle.putString("af_revenue", "200") bundle.putString("af_price", "250") FirebaseAnalytics.getInstance(this).logEvent("af_purchase", bundle)
iOS
- イベントを送信するビューに
@import Firebaseを追加します。 - 購入イベントが発生するたびに実行されるよう、以下のコードを追加します。
NSString *id_prefix = @"id";
NSString *apple_app_id = [id_prefix stringByAppendingString:[AppsFlyerTracker sharedTracker].appleAppID];
[FIRAnalytics logEventWithName:@"af_purchase" parameters:@{ @"apple_app_id": apple_app_id, @"af_id": [AppsFlyerTracker sharedTracker].getAppsFlyerUID, @"af_revenue": @250, @"af_price": @375 }];
- イベントを送信するビューに
import Firebaseを追加します。 - 購入イベントが発生するたびに実行されるよう、以下のコードを追加します。
Analytics.logEvent("af_purchase", parameters: [ "apple_app_id": "id" + AppsFlyerTracker.shared().appleAppID, "af_id": AppsFlyerTracker.shared().getAppsFlyerUID(), "af_revenue": 250, "af_price": 375 ]);
Firebaseへのインストールイベントの送信
インストールに関するすべてのデータを含むインストールイベントを、Firebaseに送信することもできます。
Android
AndroidでインストールイベントをFirebaseに送信するには、conversionDataオブジェクトを使用できます。
イベント送信用メソッドの作成
AFApplicationクラスのonCreateメソッドのすぐ下に、以下のメソッドを追加します。
public void sendInstallToFirebase(Map<String, String> conversionData){
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
Bundle bundle = new Bundle();
bundle.putString("install_time", conversionData.get("install_time") == null ? String.valueOf(new Date().getTime()) : conversionData.get("install_time"));
bundle.putString("click_time", conversionData.get("click_time"));
bundle.putString("media_source", conversionData.get("media_source") == null ? "organic": conversionData.get("media_source"));
bundle.putString("campaign", conversionData.get("campaign") == null ? "organic": conversionData.get("campaign"));
bundle.putString("install_type", conversionData.get("af_status"));
mFirebaseAnalytics.logEvent("install", bundle);
}
このメソッドは、conversionDataオブジェクトを受け取ります。このメソッドは、インストール時刻、メディアソース、キャンペーンがnullかどうかを確認します。nullの場合、インストール時刻を現在時刻に、メディアソースとキャンペーンをorganicに設定します。それ以外の場合は、conversionDataオブジェクトからデータを取得し、Firebaseに送信します。
インストールイベントの送信
onConversionDataSuccessメソッドに、以下のコードを追加します。
if(conversionData.get("is_first_launch").equals("true")){
sendInstallToFirebase(conversionData);
}
このコードは、アプリの初回起動かどうかを確認します。条件に該当する場合は、sendInstallToFirebaseメソッドを呼び出します。
AndroidでインストールイベントをFirebaseに送信するには、conversionDataオブジェクトを使用できます。
イベント送信用メソッドの作成
AFApplicationクラスのonCreateメソッドのすぐ下に、以下のメソッドを追加します。
fun sendInstallToFirebase(conversionData: Map<String, Any>) {
val bundle = Bundle()
bundle.putString("install_time", conversionData["install_time"]?.toString() ?: Date().time.toString())
bundle.putString("click_time", conversionData["click_time"]?.toString())
bundle.putString("media_source", conversionData["media_source"]?.toString() ?: "organic")
bundle.putString("campaign", conversionData["campaign"]?.toString() ?: "organic")
bundle.putString("install_type", conversionData["af_status"]?.toString())
FirebaseAnalytics.getInstance(this).logEvent("install", bundle)
}
このメソッドは、conversionDataオブジェクトを受け取ります。このメソッドは、インストール時刻、メディアソース、キャンペーンがnullかどうかを確認します。nullの場合、インストール時刻を現在時刻に、メディアソースとキャンペーンをorganicに設定します。それ以外の場合は、conversionDataオブジェクトからデータを取得し、Firebaseに送信します。
インストールイベントの送信
onConversionDataSuccessメソッドに、以下のコードを追加します。
if(conversionData?.get("is_first_launch") == true){
sendInstallToFirebase(conversionData);
}
このコードは、アプリの初回起動かどうかを確認します。条件に該当する場合は、sendInstallToFirebaseメソッドを呼び出します。
注意:SDK V5以降では、コンバージョンデータを取得するメソッド名はonConversionDataSuccessです。 SDKバージョン5.0.0より前を使用している場合、メソッド名はonInstallConversionDataLoadedです。 SDK 5.0.0へのアップグレードを推奨します。詳しくは、こちらを参照してください。
iOS
イベント送信用メソッドの作成
AppDelegate.mファイルの末尾に、次のメソッドを追加します。
- (void)sendInstallToFirebase:(NSDictionary *)installData{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd/MM/yyyy HH:mm:ss"];
NSDate *date = [NSDate date];
NSString *newDate = [dateFormatter stringFromDate:date];
if([[installData objectForKey: @"af_status"] isEqual: @"Organic"]){
[FIRAnalytics logEventWithName:@"install"
parameters:@{
@"install_time": newDate,
@"media_source": @"organic",
@"campaign": @"organic"
}];
}
else {
[FIRAnalytics logEventWithName:@"install"
parameters:@{
@"install_time": [installData objectForKey: @"install_time"],
@"click_time": [installData objectForKey: @"click_time"],
@"install_type": [installData objectForKey: @"af_status"],
@"media_source": [installData objectForKey: @"media_source"],
@"campaign": [installData objectForKey: @"campaign"]
}];
}
}
このメソッドはinstallDataオブジェクトを受け取り、インストールがオーガニックかどうかを確認します。オーガニックの場合は、インストール時刻を現在の時刻に設定し、メディアソース、キャンペーン、インストールタイプをorganicに設定します。
非オーガニックインストールの場合、対応する非オーガニックインストールのデータを取得します。
パラメータを設定すると、このメソッドがFirebaseにインストールイベントを送信します。
インストールイベントの送信
AppDelegate.mのdidFinishLaunchingWithOptionsメソッドに、[FIRApp configure]を追加します。
AppDelegate.mのonConversionDataSuccessメソッドの末尾に、次のコードを追加します。
if([installData objectForKey:@"is_first_launch"]){
[self sendInstallToFirebase: installData];
}
上記のコードは、アプリの初回起動かどうかを確認します。条件に該当する場合は、sendInstallToFirebaseメソッドを呼び出します。
AppDelegate.swiftファイルの末尾に、次のメソッドを追加します。
func sendInstallToFirebase(_ installData: [AnyHashable : Any]!){
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy hh:mm:ss"
let _newDate: String = dateFormatter.string(from: date)
if(installData["af_status"] as? String == "Organic"){
Analytics.logEvent("install", parameters: [
"install_time": _newDate,
"media_source": "organic",
"campaign": "organic"
]);
} else {
Analytics.logEvent("install", parameters: [
"install_time": installData["install_time"],
"click_time": installData["click_time"],
"media_source": installData["media_source"],
"campaign": installData["campaign"],
"install_type": installData["af_status"]
]);
}
}
注意:SDK V5以降では、コンバージョンデータを取得するメソッド名はonConversionDataSuccessです。 SDK V5.0.0未満では、メソッド名はonConversionDataReceivedです。 SDK 5.0.0へのアップグレードを推奨します。詳しくは、こちらを参照してください。
このメソッドはinstallDataオブジェクトを受け取り、インストールがオーガニックかどうかを確認します。オーガニックの場合は、インストール時刻を現在の時刻に設定し、メディアソース、キャンペーン、インストールタイプをorganicに設定します。
非オーガニックインストールの場合、対応する非オーガニックインストールのデータを取得します。
パラメータを設定すると、このメソッドがFirebaseにインストールイベントを送信します。
インストールイベントの送信
AppDelegate.swiftのdidFinishLaunchingWithOptionsメソッドに、FirebaseApp.configure();を追加します。
AppDelegate.swiftのonConversionDataSuccessメソッドの末尾に、次のコードを追加します。
if let is_first_launch = data["is_first_launch"] , let launch_code = is_first_launch as? Int {
if(launch_code == 1){
print("First Launch")
sendInstallToFirebase(installData)
} else {
print("Not First Launch")
}
}
注意:SDK V5以降では、コンバージョンデータを取得するメソッド名はonConversionDataSuccessです。 SDK V5.0.0未満では、メソッド名はonConversionDataReceivedです。 SDK 5.0.0へのアップグレードを推奨します。詳しくは、こちらを参照してください。
上記のコードは、アプリの初回起動かどうかを確認します。条件に該当する場合は、sendInstallToFirebaseメソッドを呼び出します。
警告
一部のメディアソースは、サードパーティのプラットフォームやサービスとのデータ共有を許可していません。 Meta広告、Twitter、Snap、Pinterestなど、サードパーティのプラットフォームやサービスへのデータ共有を制限しているパートナーを利用する場合は、必ず各社のガイドラインに従い、制限対象のデータを除外してください。