AppsFlyerとデータ連携が可能です。

セットアップ

以下の手順に従って、それぞれセットアップを行ってください。

AppsFlyer のセットアップ

AppsFlyerのダッシュボード上で設定が必要です。以下の手順に沿ってセットアップを行ってください。

  1. 設定>連携済みパートナー>「KARTE」で検索
  2. インテグレーション設定で、KARTEのプロジェクトの「api_key」を入力
  3. Default Postbacks>オプション送信を「Events attributed to any partner or organic」を選択
  4. In-App Events Settingで、KARTEのプロジェクトの「api_key」を入力
  5. In-App Events PostbackをONにする
  6. KARTEに連携するイベントを指定する

KARTE のセットアップ

  1. AppsFlyer プラグインの有効化
  2. In-Appイベントの連携が必要な場合は、プラグイン設定からIn-App Eventをカンマ区切りで指定してください

AppsFlyerのイベントをKARTEに送信

🚧

AppsFlyer iOS SDK V6 を利用する場合

以降の実装方法は AppsFlyer iOS SDK V6 以前を対象に書かれています。
AppsFlyer iOS SDK V6 で連携を行う場合、AppsFlyerの公式ドキュメントを確認して適宜APIを読み替えて実装を行ってください。

AppsFlyerで発生したイベントをKARTEに連携するには、AppsFlyer SDKで取得可能な情報をKARTE SDKを使って送信する必要があります。

インストールイベント

extension AppDelegate: AppsFlyerTrackerDelegate {
    func onConversionDataReceived(_ installData: [AnyHashable : Any]!) {
        if (installData["is_first_launch"] as! Bool) {
            KarteTracker.shared.track("_appsflyer_install", values: installData)
        }
    }
}
@interface AppDelegate : UIResponder<UIApplicationDelegate, AppsFlyerTrackerDelegate> {
    - (void)onConversionDataReceived:(NSDictionary*) installData {
      BOOL isFirstLaunch = [installData objectForKey:@"is_first_launch"];
            if (isFirstLaunch) {
          [[KarteTracker sharedTracker] track:@"_appsflyer_install"  values: installData];
      }
        }
}
AppsFlyerConversionListener conversionDataListener =
            new AppsFlyerConversionListener() {

              @Override
              public void onInstallConversionDataLoaded(Map<String, String> map) {
                if (map.get("is_first_launch").equals("true")) {
                  Tracker.getInstance(context, APP_KEY).track("_appsflyer_install", new JSONObject(map));
                }
              }
              @Override
              public void onInstallConversionFailure(String s) {
              }
              @Override
              public void onAppOpenAttribution(Map<String, String> map) {
              }
              @Override
              public void onAttributionFailure(String s) {
              }
            };
    AppsFlyerLib.getInstance().init("APPSFLYER_DEV_KEY", conversionDataListener, getApplicationContext());
    AppsFlyerLib.getInstance().startTracking(this);

In-App イベント

AppsFlyerTracker.shared().trackEvent("EVENT_NAME", withValues: ["visitor_id": KarteTracker.shared.visitorId])
NSString *visitorId = [[KarteTracker sharedTracker] visitorId];

[[AppsFlyerTracker sharedTracker] trackEvent: @"EVENT_NAME" withValues: @{@"visitor_id": visitorId}];
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("visitor_id",Tracker.getInstance(context, APP_KEY).visitorId);
AppsFlyerLib.getInstance().trackEvent(context,"EVENT_NAME",eventValue);

イベント名とパラメータの対応表

KARTEに連携される AppsFlyer イベントと、KARTEで発生するイベント名およびパラメータの対応表を以下に記載します。

AppsFlyerイベントKARTEで発生するイベント名KARTEイベントに設定されるパラメータ備考
Install_appsflyer_installこちらを参考に-
In-app eventappsflyer{event_name}こちらを参考に +
AppsFlyer SDK でイベント送信時に設定した Event Value
・{event_name} には AppsFlyer ダッシュボードで設定したKARTEに送信するイベント名が入ります。
・In-app Event の種類に応じて異なる {event_name} が入ります。

パラメータについての補足

AppsFlyer イベントで定義されている一部のパラメータは、 KARTE イベントでは異なる名前で連携されます。(KARTE 上で日付型のパラメータとして利用できるようにするため)

AppsFlyer イベントでのパラメータ名KARTEイベントでのパラメータ名
click_tsclick_date
install_unix_tsinstall_unix_date
timestamptimestamp_date

🚧

広告IDについて

AppsFlyer連携で、広告ID(IDFA/AAID)はKARTEに連携されません。広告IDをKARTEに連携したい場合には、広告ID(IDFA/AAID)の送信についてをご確認ください。