init method

Future<void> init()

Implementation

Future<void> init() async {
  final devKey = PurpiRuntime.config.appsFlyerDevKey;
  if (devKey == null || devKey.isEmpty) {
    debugPrint("AppsFlyer devKey absent → SDK non initialisé");
    return;
  }

  final options = AppsFlyerOptions(
    afDevKey: devKey,
    appId: PurpiRuntime.config.appsFlyerAppId ?? "",
    showDebug: kDebugMode,
  );

  _sdk = AppsflyerSdk(options);

  await _sdk.initSdk(
    registerConversionDataCallback: true,
    registerOnAppOpenAttributionCallback: true,
    registerOnDeepLinkingCallback: true,
  );


  _sdk.onDeepLinking((DeepLinkResult result) {
    debugPrint("📦 AppsFlyer DeepLink status: ${result.status}");

    if (result.status == DeepLinkStatus.found) {
      final deepLink = result.deepLink;

      debugPrint("✅ DeepLink data: ${deepLink?.toString()}");
      debugPrint("➡️ deep_link_value: ${deepLink?.deepLinkValue}");
      debugPrint("➡️ media_source: ${deepLink?.mediaSource}");
      debugPrint("➡️ campaign: ${deepLink?.campaign}");

      /// EXEMPLE DE ROUTING
      if (deepLink?.deepLinkValue == "promo") {
        debugPrint("🚀 Naviguer vers page PROMO");

      }
    } else {
      debugPrint("❌ No DeepLink found");
    }
  });

  _isReady = true;
  debugPrint("✅ AppsFlyer READY");
}