Чем мы можем помочь?

Интеграция mParticle с AppsFlyer

  • Обновлено

mParticle — интегрированный партнер AppsFlyer — собирает данные клиентов и отправляет их на различные платформы для аналитики, маркетинга и хранения данных.

Важно!

Некоторые медиа-источники ограничивают передачу данных третьим лицам. Поэтому постбэки для ограниченных событий не будут отправляться этому партнеру, независимо от настроенной отправки постбэков.

Интеграции событий

Этот документ содержит сведения о том, как активировать данные событий из mParticle в AppsFlyer.

1. Клиенты mParticle должны интегрировать набор AppsFlyer Kit в своё приложение. SDK mParticle инициализирует SDK AppsFlyer, а также перенаправляет все необходимые события жизненного цикла в SDK AppsFlyer.

2. Подробнее о том, как настроить AppsFlyer kit с SDK mParticle в вашем приложении, см. в репозиториях GitHub SDK для iOS и Android.

Настройка интеграции событий AppsFlyer

1. На дэшборде mParticle (https://app.mparticle.com) выберите свое Приложение (также называется Workspace)

2. Нажмите Каталог в левом меню навигации.

3. Нажмите плитку AppsFlyer, чтобы открыть сведения об интеграции, включая такие данные, как категории, доступные платформы, минимальные версии SDK mParticle (если есть), типы данных, идентификаторы пользователей, идентификаторы устройств, доступные события и доступные конфигурации.

Плитка AppsFlyer в каталоге mParticle

4. Кликните Добавить AppsFlyer к настройке.

Откроется окно Add to Setup:

mParticle Окно Add to Setup

5. Выберите тип интеграции Output Event и нажмите <0>Добавить в настройки0>, чтобы открыть экран настройки конфигурации событий и продолжить процесс настройки.

mParticle Экран настройки конфигурации событий

6. Введите параметры конфигурации AppsFlyer и нажмите Сохранить:

  • Название конфигурации
  • Используйте одинаковые настройки для сред разработки и продакшена.
  • Ключ разработчика
  • Созданная вами конфигурация отображается в группе AppsFlyer Default Group
Конфигурация AppsFlyer, показанная в группе AppsFlyer Default Group

Следующий шаг – установить связь между входными платформами и конфигурацией выходных событий AppsFlyer.

7. Нажмите Соединения.

8. Выберите входную платформу (в данном примере – iOS), затем нажмите Подключить выход.

9. Выберите карточку AppsFlyer, а затем выберите конфигурацию AppsFlyer, созданную ранее.

10. Введите настройки подключения AppsFlyer:
Apple App ID (введите только номер, без префикса ID). Например, если ваш App ID — id123456789, введите 123456789.)

Экран настроек подключения AppsFlyer

11. Нажмите Добавить подключение.

AppsFlyer теперь отображается как подключенный выходной источник. Могут быть доступны дополнительные параметры, например пользовательские сопоставления. Подробнее см. в документации mParticle.

AppsFlyer отображается как подключенный вывод

Интеграции фидов

В этом разделе описано, как подключить поток данных из AppsFlyer к mParticle.

Общая информация об интеграции AppsFlyer доступна по адресу https://docs.mparticle.com/integrations/appsflyer/feed/.

1. На дэшборде mParticle (https://app.mparticle.com) выберите свое Приложение (также называется Workspace)

2. Выберите Directory в левом навигационном меню

3. Кликните плитку AppsFlyer, чтобы просмотреть сведения об интеграции, содержащие информацию об интеграции.

Плитка AppsFlyer в mParticle Directory
Сведения об интеграции AppsFlyer в mParticle

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. The value of is_First_Launch равно 'true' только при первом запуске и '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 выполните это с помощью SharedPreferences: здесь.

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);
https://support.appsflyer.com/hc/article_attachments/360016192917

Для 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

Кейс использования Окно повторного вовлечения Метод SDK AppsFlyer Метод mParticle-AF Kit
Отложенный диплинкинг https://support.appsflyer.com/hc/article_attachments/360016192917 onConversionDataSuccess checkForDeferredDeepLinkWithCompletionHandler
Universal Links (универсальные ссылки) https://support.appsflyer.com/hc/article_attachments/360016192917 continueUserActivity continueUserActivity
Открытие приложения https://support.appsflyer.com/hc/article_attachments/360016192917 onAppOpenAttribution checkForDeferredDeepLinkWithCompletionHandler
Отложенный диплинкинг Android; onConversionDataSuccess checkForDeepLink
Ссылки Android-приложения 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 использует UserDefaults в iOS и Shared Preferences в Android, чтобы указать, открывает ли пользователь приложение впервые и его нужно перенаправить на соответствующую страницу, или приложение уже открывалось и пользователь уже был направлен на эту страницу. Для этого значение alreadyLoggedAppsflyerConversionData считывается из UserDefaults/ SharedPreferences и записывается туда, чтобы значение af_dp не проверялось при первом запуске.

Подробнее о показе персонализированного контента при диплинкинге читайте здесь.

Включение измерения удалений AppsFlyer в mParticle

Измерение удалений AppsFlyer не включается автоматически в наборе SDK mParticle-AppsFlyer. Чтобы измерять удаления приложения, вызывайте методы AppsFlyer напрямую, следуя документации AppsFlyer по измерению удалений.

Чтобы настроить измерение удалений для iOS или Android: