Создайте экземпляр AppsFlyerSdk и выполните инициализацию в initState() вашего виджета. Это позволит SDK начать обработку атрибуции сразу после запуска приложения.
Code
import 'package:appsflyer_sdk/appsflyer_sdk.dart';late AppsflyerSdk _appsflyerSdk;@overridevoid initState() { super.initState(); _initAppsFlyerSdk();}void _initAppsFlyerSdk() async { // Настройки SDK final AppsFlyerOptions options = AppsFlyerOptions( afDevKey: 'YOUR_AF_DEV_KEY', // Ваш AppsFlyer Dev Key appId: 'YOUR_IOS_APP_ID', // ID приложения (только iOS) showDebug: true, ); _appsflyerSdk = AppsflyerSdk(options); // Инициализация SDK await _appsflyerSdk.initSdk( registerConversionDataCallback: true, registerOnAppOpenAttributionCallback: true, registerOnDeepLinkingCallback: true, ); // Обработка данных о конверсии _appsflyerSdk.onInstallConversionData((data) { print("onInstallConversionData data:"); data.forEach((key, value) { print('$key : $value'); }); final status = data['af_status']; if (status == 'Non-organic') { final sourceID = data['media_source']; final campaign = data['campaign']; print('Неорганическая установка. Источник: $sourceID Кампания: $campaign'); } else if (status == 'Organic') { print('Органическая установка.'); } final isFirstLaunch = data['is_first_launch'] == 'true' || data['is_first_launch'] == true; if (isFirstLaunch) { print('Первый запуск приложения.'); } else { print('Не первый запуск приложения.'); } });}
3. Передача sourceID в Mindbox
Создайте операцию в Mindbox с действием и/или заполнением дополнительного поля. Инструкция представлена в документации Mindbox.
После получения sourceID из AppsFlyer отправьте его в кастомное поле операции: