どのようにお手伝いできますか?

mParticleとAppsFlyerの連携

  • 更新

AppsFlyerの連携済みパートナーであるmParticleは、顧客データを収集し、各種の分析、マーケティング、データウェアハウスのプラットフォームに送信します。

重要

一部のメディアソースは、第三者へのデータ共有を制限しています。そのため、制限対象のイベントのポストバックは、送信設定にかかわらず、このパートナーには送信されません。

イベント連携

このドキュメントでは、mParticleのイベントデータをAppsFlyerで活用するための設定について説明します。

1. mParticleをご利用の場合は、アプリにAppsFlyerキットを組み込む必要があります。 mParticle SDKはAppsFlyer SDKを初期化し、必要なアプリのライフサイクルイベントをすべてAppsFlyer SDKに転送します。

2. mParticle SDKとともにAppsFlyerキットをアプリに設定する方法は、iOSおよびAndroid SDKのGitHubリポジトリを参照してください。

AppsFlyerのイベント連携の設定

1. mParticle管理画面(https://app.mparticle.com)で、対象のアプリ(Workspace)を選択します。

2. 左側のナビゲーションでDirectoryをクリックします。

3. AppsFlyerのタイルをクリックすると、カテゴリ、対応プラットフォーム、必要なmParticle SDKの最小バージョン(該当する場合)、データ型、ユーザーID、デバイスID、利用可能なイベントや設定など、連携の詳細が表示されます。

mParticleのDirectoryにあるAppsFlyerのタイル

4. [Add AppsFlyer to Setup]をクリックします。

Add to Setupウィンドウが開きます。

mParticleのAdd to Setupウィンドウ

5. Output Event Integration Typeを選択し、Add to Setupをクリックします。Event Configuration Setup画面が開き、設定を続けられます。

mParticleのEvent Configuration Setup画面

6. AppsFlyerの設定情報を入力し、Saveをクリックします。

  • 設定名
  • 開発環境と本番環境に同じ設定を使用
  • Devキー
  • 作成した設定が、AppsFlyer Default Groupの下に表示されます。
AppsFlyer Default Groupの下に表示されたAppsFlyerの設定

次に、入力元のプラットフォームとAppsFlyerの出力イベント設定を接続します。

7. Connectionsをクリックします。

8. 入力元(この例ではiOS)を選択し、Connect Outputをクリックします。

9. AppsFlyerのタイルを選択し、先ほど作成したAppsFlyerの設定を選択します。

10. AppsFlyerの接続設定を入力します。
Apple App ID(IDの接頭辞を付けず、数字のみを入力します。たとえば、App IDがid123456789の場合は、123456789と入力します。)

AppsFlyerの接続設定画面

11. Add Connectionをクリックします。

AppsFlyerがConnected Outputとして表示されます。Custom Mappingsなどの追加オプションを利用できる場合もあります。詳細は、mParticleのドキュメントを参照してください。

Connected Outputとして表示されたAppsFlyer

フィード連携

このセクションでは、AppsFlyerからmParticleへのデータフィードの接続方法を説明します。

AppsFlyerとの連携の概要は、https://docs.mparticle.com/integrations/appsflyer/feed/を参照してください。

1. mParticle管理画面(https://app.mparticle.com)で、対象のアプリ(Workspace)を選択します。

2. 左側のナビゲーションでDirectoryをクリックします。

3. AppsFlyerのタイルをクリックすると、連携の詳細が表示されます。

mParticleのDirectoryにあるAppsFlyerのタイル
mParticleに表示されたAppsFlyer連携の詳細

4. [Add AppsFlyer to Setup]をクリックします。

5. Input Feed Integration Typeを選択し、Add to Setupをクリックします。

Setup画面に移動し、設定を続けられます。

6. AppsFlyerの設定情報を入力し、Createをクリックします。

  • 設定名
  • アプリケーションとして動作
AppsFlyerのフィード設定

7. 表示された認証情報を使って、AppsFlyer管理画面で設定を完了します。

AppsFlyer管理画面の認証設定

ディファードディープリンク

AppsFlyerでは、SDKからユーザーのアトリビューションデータにリアルタイムで直接アクセスできます。これにより、ユーザーがアプリを新規インストールした後、初めて開いたときに表示するページをカスタマイズできます。これは一般に「ディファードディープリンク」と呼ばれます。

ディファードディープリンクの詳細は、こちらを参照してください。

AppsFlyerのコンバージョンデータには、is_First_Launchというパラメータがあります。 is_First_Launchは、初回起動時のみtrueになり、2回目以降の起動ではfalseになります。このパラメータを使って、起動のたびに、ディファードディープリンクでユーザーを誘導する必要があるかどうかを判断できます。

af_dp → $deeplink_path

例

$deeplink_path=product/Banana-Pet-Costume/dd67268672b345e491656c871af8aa29

af_dpには、エンコードされたURIスキームとパスが含まれます。

af_dp →

%20jet%3A%2F%2Fproduct%2FBanana-Pet-Costume%2Fdd67268672b345e491656c871af8aa29

Android

Androidの場合:Shared Preferencesを使用します。こちらを参照してください。

AttributionListener myListener = new AttributionListener() {
  @Override
  public void onResult(@NonNull AttributionResult attributionResult) {
   if (attributionResult.getServiceProviderId() == MParticle.ServiceProviders.APPSFLYER) {
    JSONObject attributionParams = attributionResult.getParameters();
    if (attributionParams != null && attributionParams.has(AppsFlyerKit.INSTALL_CONVERSION_RESULT)) {
     Log.d("Conversion result", attributionParams.toString());
    } else if (attributionParams != null && attributionParams.has(AppsFlyerKit.APP_OPEN_ATTRIBUTION_RESULT)) {
     Log.d("App open result", attributionParams.toString());
    }
   }
  }

  @Override
  public void onError(@NonNull AttributionError attributionError) {
   Log.d("Attribution Data Error", attributionError.toString());
  }
 };

 MParticleOptions options = MParticleOptions.builder(this)
  .credentials("replaceWithAPIKey", "replace-withAPISecret")
  .attributionListener(myListener)
  .build();

 MParticle.start(options);
iOS

iOSの場合:UserDefaultsを使用します。こちらを参照してください。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 MParticleOptions *options = [MParticleOptions optionsWithKey:@"<>" secret:@"<>"];
 options.onAttributionComplete = ^void (MPAttributionResult *_Nullable attributionResult, NSError * _Nullable error) {
  if (error) {
   NSLog(@"Attribution fetching for kitCode=%@ failed with error=%@", error.userInfo[mParticleKitInstanceKey], error);
   return;
  }
  NSLog(@"Attribution fetching for kitCode=%@ completed with linkInfo: %@", attributionResult.kitCode, attributionResult.linkInfo);
 }
 [[MParticle sharedInstance] startWithOptions:options];
 return YES;
}

AppsFlyer/mParticleのユースケース

ユースケース プラットフォーム AppsFlyer SDKのメソッド mParticle-AFキットのメソッド
ディファードディープリンク iOS onConversionDataSuccess checkForDeferredDeepLinkWithCompletionHandler
ユニバーサルリンク iOS continueUserActivity continueUserActivity
アプリの起動 iOS onAppOpenAttribution checkForDeferredDeepLinkWithCompletionHandler
ディファードディープリンク Android onConversionDataSuccess checkForDeepLink
Android App Links Android <intent-filter android:autoVerify="true"> continueUserActivity
アプリの起動 Android onAppOpenAttribution checkForDeepLink

ユーザーフラグの処理

AppsFlyerでは、初回起動後も、パーソナライズしたコンテンツを表示したり、既存ユーザーをアプリ内の特定の場所に誘導したりできます。既存ユーザーがディープリンクでアプリを開くと、onOpenAttributionメソッドから、参照元URLのデータが返されます。

 if let conversionData = params?[MPKitAppsFlyerConversionResultKey] as? [AnyHashable: Any], !alreadyLoggedAppsflyerConversionData {
   logAppsflyerConversionData(conversionData: conversionData)
   alreadyLoggedAppsflyerConversionData = true
   if let onelinkURL = (conversionData["af_dp"] as? String).flatMap(URL.init) {
    UIApplication.appDelegate._linkController.handle(onelinkURL, source: .appsflyer)
   }
  } else if let appOpenData = params?[MPKitAppsFlyerAppOpenResultKey] as? [AnyHashable: Any] {
   logAppsflyerAppOpenData(appOpenData: appOpenData as? [String: Any])
  }

AppsFlyerは、iOSのUserDefaultsとAndroidのShared Preferencesを使って、ユーザーの初回起動で適切なページへの誘導が必要なのか、それともすでに起動済みで誘導も完了しているのかを判別します。この処理では、UserDefaults/SharedPreferencesにalreadyLoggedAppsflyerConversionDataの値を読み書きし、初回起動時にaf_dpの値を参照しないようにします。

ディープリンクでパーソナライズしたコンテンツを表示する方法の詳細は、こちらを参照してください。

mParticleでAppsFlyerのアンインストール計測を有効にする

mParticle-AppsFlyer SDKキットでは、AppsFlyerのアンインストール計測は自動では有効になりません。アンインストールを計測するには、AppsFlyerのアンインストール計測のドキュメントに従って、AppsFlyerのメソッドを直接呼び出してください。

iOSまたはAndroidでアンインストール計測を実装するには、次の手順に従います。