概要:AppsFlyer Adobe Launch SDK 拡張機能の単一実装で、Adobe Launch SDK と AppsFlyer SDK にデータを送信します。
概要
Adobe Launch SDK は、Adobe Experience プラットフォームに不可欠な要素です。Adobe Experience Platform は、企業が複数のアプリケーションやプラットフォームからデータを収集、統合、分析できるようにします。これにより、ビジネス・オーナーやデベロッパーは、顧客の行動をよりよく理解し、エクスペリエンスやコンテンツ配信を最適化することができます。アプリが Adobe Launch SDK と AppsFlyer SDK の両方を実装している場合、AppsFlyer Adobe Launch SDK 拡張機能を1つ実装するだけで、両方にデータを送信できます。開発プロセスの全体的な複雑さを軽減し、よりクリーンで保守性の高いコードベースを実現します。
注意
Adobe Launch 拡張機能を使用している場合、標準のAdobe Analytics との統合は必要ありません。
前提条件:
AppsFlyer Adobe SDK 拡張機能を統合する前に、いくつかのことが必要です。
AppsFlyer 開発キー の取得
- アプリの管理画面上で、左メニュー内の設定の下にあるアプリ設定をクリックしてください。
- SDK のインストールの下にある、開発キーをコピーしてください。
アプリ ID の取得
- Android の場合 - アプリ ID はパッケージ名。例:example.com.app.
- iOS の場合 - アプリ ID はアプリの iTunes ID からidプレフィックスを除いたものです(例:123456748)。
ステップ 1:Adobe Launch の設定
Adobe Launch を設定するには、こちらの手順に従ってください。
1.1 Adobe Launch で新しいプロパティを作成する
1.2 必要な Adobe Launch 拡張機能のインストール
Adobe Launch に以下の拡張機能をインストールします:
- Adobe Analytics - SDK から記録されたデータを Adobe Analytics モジュールに接続します。
- AppsFlyer SDK E拡張機能 - Adobe Launch SDK を使用して、Adobe と AppsFlyer の両方にデータとイベントを送信します。
- Adobe プロファイル - SDK がクライアント側のプロファイルにデータを保存できるようにします。
- Adobe Mobile Core - モバイル SDK の設定を可能にし、デフォルトのライフサイクルイベントと条件へのアクセスを提供します。
Adobe Analytics 拡張機能のインストール
- Adobe Analytics にログインします。
- レポート・スイートを作成する。
- Adobe Launch にログインします。
- プロパティのリストから、先ほど作成したプロパティをクリックします。
- 拡張機能をクリックします。
- Adobe Analyticsを検索してインストールします。
- レポート・スイートで、ステップ2で作成したレポート・を指定します。
- [保存]をクリックします。
AppsFlyer SDK 拡張機能のインストール
- 拡張機能をもう一度選択します。
- AppsFlyer SDK 拡張機能を検索してインストールします。
- AppsFlyer iOS アプリ IDで、前提条件のステップで取得した iOS アプリ ID を指定します。
- AppsFlyer 開発キーで、前提条件のステップで取得した開発キーを指定します。
- アトリビューションデータを Adobe Analytics に送信するを有効にします。ユーザーレベルのデータをサードパーティのアナリティクスプラットフォームと共有するには、いくつかの制限があることに注意してください。
- 保存をクリックします。
プロファイルとモバイルコア拡張機能のインストール
- 拡張機能をもう一度選択します。
- プロフィールを検索してインストールします。
- モバイルコアを検索してインストールします。
- モバイルコアをインストールする際は、拡張機能をそのまま保存してください。エクスペリエンス・クラウド・サーバーを指定する必要はありません。
ステップ 2:AppsFlyer Adobe SDK 拡張機能の実装
このセクションの指示に従って、アプリに Adobe SDK 拡張機能を実装します。
2.1 SDK をアプリに追加する
2.2 環境の公開
SDK の実装を完了するには、環境をライブラリに公開する必要があります。
- Adobe のプロパティで、 公開を選択します。
- 新しいライブラリの追加をクリックします。
- 名前を付け、「環境」で 開発を選択します。
- 保存して開発用にビルドするをクリックします。
- ビルドが完了したら 開発で、ライブラリの横にある三点リーダーをクリックして 承認のために提出を選択します。
- 送信で、ライブラリの横にある三点リーダーをクリックして ステージング用にビルドを選択します。
- ビルドが完了したら、ライブラリの横にある三点リーダーをクリックし、 公開を承認するを選択します。
- 承認で、ライブラリの横にある三点リーダーをクリックし、ビルドして製品に公開するを選択します。
2.3 アプリに Android インストールリファラを追加する
Android インストールリファラはアトリビューションの精度を改善し、不正インストールなどから守ります。APIはAppsFlyerのAndroid SDKバージョン4.8.6以降よりサポートされています。
注意
Google は2020年3月に BroadcastReceiverを廃止しました。
- この変更はアプリには影響しません。
- 店外アトリビューションのために BroadcastReceiver が必要な場合もあります。アプリが掲載されているストアで確認してください。
- インストールリファラに実装が必須になりました。
アプリにインストールリファラを追加するには、2つの方法があります。
- Gradleを使用する(推奨)
- インストールリファラを手動で追加する
dependency としてAndroid インストールリファラを追加します。最新バージョンはこちらを参照してください。
-
dependencies { //make sure to use the latest SDK version: https://mvnrepository.com/artifact/com.appsflyer/af-android-sdk implementation 'com.appsflyer:af-android-sdk:5.+' implementation 'com.android.installreferrer:installreferrer:1.1' }
- 次のスクリーンショットを参考に dependencies を取得して、プロジェクトを同期してください。
ProGuard を使用中で、Google の新しいリファラ API を使用したい場合は、以下の ProGuard ルールを設定する必要があります。-dontwarn com.android.installreferrer
- インストールリファラ aar のダウンロード
- プロジェクトに追加する
- マニフェストに以下の権限を追加します:
com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE
2.4 必須権限の設定
権限を追加することで、確率論的モデリングのアトリビューション率を高めることができます。SDKがWifiやキャリアネットワークデータなどのデータを送信できるようにします。このデータはローデータレポートにも反映され、キャンペーンの分析や最適化に使用できます。
必須パーミッションの追加
- 次の権限を AndroidManifest.xml に追加します。
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- Optional : --> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
Adobe SDK 拡張機能の使用
これで、Adobe SDK 拡張機能を使って Adobe と AppsFlyer にデータを送信できるようになります。
注意
現在、Adobe Launch SDK 拡張機能は、コンバージョンデータの取得とイベントの送信のみをサポートしています。ただし、アプリに Adobe Launch SDK 拡張機能を追加すると、AppsFlyer SDK も追加されます。そのため、現在 Adobe SDK 拡張機能に欠けている機能はすべて、AppsFlyer SDK を使用して実装することができます。
イベントの送信
アプリ内イベントにより、アプリ内でのユーザーの動きに関するインサイトを得ることができます。時間をかけて、記録したいイベントを定義することをお勧めします。例えば、アプリ内イベントを計測することで、ROI(投資収益率)やLTV(顧客生涯価値)などのKPIを計測できるようになります。
Adobe Launch SDK 拡張機能を使用すると、アプリ内イベントデータを Adobe と AppsFlyer の両方に送信できます。その後、Adobe Analytics を使用してユーザーの行動を分析し、AppsFlyer を使用して ROI と LTV を分析することができます。
final Map<String,String> eventMap = new HashMap<>();
eventMap.put("currency", "USD");
eventMap.put("revenue", "200");
eventMap.put("freehand", "param");
MobileCore.trackAction("af_purchase", eventMap);
[ACPCore trackAction:@"af_purchase data:@{@"revenue":@"200",@"currency":@"USD"];
上記のコードで指定されたとおりにイベントを送信すると、AppsFlyer 管理画面に af_purchase という収益200米ドルのイベントが作成されます。このイベントは Adobe Analytics にも送信され、表示されます。
イベントとともに送信されるすべてのコンバージョンデータの先頭には appsflyerという接頭辞が付けられます。例については、次の表を参照してください。
接頭辞付きコンバージョンデータ変数 |
---|
appsflyer.af_click_lookback |
appsflyer.install_time |
appsflyer.cost_cents_USD |
appsflyer.media_source |
appsflyer.af_adset |
appsflyer.click_time |
appsflyer.orig_cost |
appsflyer.campaign |
コンバージョンデータは、Adobe モバイルサービスで作成したアプリで使用されます。コンバージョンデータに現れるパラメーターは他にもあります。詳細はこちらをクリックしてください。
ディープリンクとディファードディープリンク用のデータの取得
ディープリンクとディファードディープリンクによって、ユーザーエクスペリエンスを向上させることができます。特定のアクティビティでアプリを開き、キャンペーンデータに応じてコンテンツをカスタマイズすることができる用になります。
ディープリンクからデータを取得するには、拡張コールバックを実装します。
グローバル・アプリケーション・クラスで、以下のコードを実装します:
AppsFlyerAdobeExtension.registerAppsFlyerExtensionCallbacks(new AppsFlyerExtensionCallbacksListener() {
@Override
public void onCallbackReceived(Map<String, String> callback) {
Log.d(AppsFlyerLibCore.LOG_TAG, callback.toString());
if(callback.get("callback_type").equals("onConversionDataReceived")){
// conversion data returned
if(callback.get("is_first_launch").equals("true")){
String af_status = callback.get("af_status");
if(af_status.equals("Non-organic")){
Log.d(AppsFlyerLibCore.LOG_TAG, "this is first launch and a non organic install!");
}
}
} else if(callback.get("callback_type").equals("onAppOpenAttribution")){
// direct deeplink - redirect user
Log.d(AppsFlyerLibCore.LOG_TAG, callback.toString());
}
}
@Override
public void onCallbackError(String errorMessage) {
Log.d("TAG", errorMessage);
}
});
AppDelegate.m で、以下のコードを実装します:
[AppsFlyerAdobeExtension registerCallbacks:^(NSDictionary *dictionary) {
NSLog(@"[AppsFlyerAdobeExtension] Received callback: %@", dictionary);
if([[dictionary objectForKey:@"callback_type"] isEqualToString:@"onConversionDataReceived"]){
if([[dictionary objectForKey:@"is_first_launch"] boolValue] == YES){
NSString* af_status = [dictionary objectForKey:@"af_status"];
if([af_status isEqualToString:@"Non-organic"]){
NSLog(@"this is first launch and a non organic install!");
}
}
} else if([[dictionary objectForKey:@"callback_type"] isEqualToString:@"onAppOpenAttribution"]) {
NSLog(@"onAppOpenAttribution Received");
}
}];
[AppsFlyerAdobeExtension callbacksErrorHandler:^(NSError *error) {
NSLog(@"[AppsFlyerAdobeExtension] Error recieving callback: %@" , error);
}];
AppsFlyer のコンバージョンデータの取得
コンバージョンデータは、イベントとともに Adobe プラットフォームに送信されます。これらの変数を使用すると、レポートのディメンション、メトリクス、またはフィルタにロジックやルールを適用できます。
- Adobe モバイルサービスにログインします。
- 該当するアプリを選択し 変数とメトリクスの管理ページに入ります。
- カスタム変数タブを選択し、AppsFlyer SDK データを Adobe システムにマッピングするための変数を設定します。
- 各カスタム変数に、意味のある名前を入力します。
- マッピングされた AppsFlyer コンバージョンデータを選択または入力し、ご希望の パーシステンススコープを選択します。
AppsFlyer Context 変数のマッピングについては、以下の表を参照してください:
マッピングの推奨名称 |
コンバージョンデータ |
---|---|
AppsFlyer ルックバック期間 |
appsflyer.af_click_lookback |
AppsFlyer インストール時間 |
appsflyer.install_time |
AppsFlyer コストセント米国 |
appsflyer.cost_cents_USD |
AppsFlyer メディアソース |
appsflyer.media_source |
AppsFlyer 広告 |
appsflyer.af_adset |
AppsFlyer クリック時間 |
appsflyer.click_time |
AppsFlyer オリジナル・コスト |
appsflyer.orig_cost |
AppsFlyer キャンペーン |
appsflyer.campaign |
AppsFlyer のマッピングされたコンバージョンデータを分析および解析に使用する
SDK から送られてくるすべてのデータは、アプリに接続されている Adobe Analytics のレポート・スイートで利用できます。
生成された Adobe Analytics レポートや管理画面で、データと関連するディメンションおよびメトリクスを使用できます。このデータは、アトリビューションやアプリ内イベント分析のために、AppsFlyer の管理画面でも利用できます。