initAdNetworks method

Future<void> initAdNetworks({
  1. required BuildContext context,
  2. required dynamic onInitComplete(),
})

Implementation

Future<void> initAdNetworks({
  required BuildContext context,
  required Function() onInitComplete,
}) async {
  MainJson mainJson = context.read<MainJson>();

  // ATT must run before UMP consent and MobileAds init on iOS.
  if (Platform.isIOS) {
    final status = await AppTrackingTransparency.trackingAuthorizationStatus;
    if (status == TrackingStatus.notDetermined) {
      await Future.delayed(const Duration(milliseconds: 500));
      await AppTrackingTransparency.requestTrackingAuthorization();
    }
  }

  if (mainJson.data!['version_config'][mainJson.version]['adNetwork']['google'] ?? false) {
    // Non-blocking — UMP consent + MobileAds.initialize run in background.
    GoogleInit().onInit();
  }
  if (mainJson.data!['version_config'][mainJson.version]['adNetwork']['appLovin'] ?? false) {
    // Run AppLovin init in background — do NOT await to avoid blocking startup
    AppLovinMAX.initialize(
      (mainJson.data!['ad_config']['applovin_sdk_key'] != null && mainJson.data!['ad_config']['applovin_sdk_key'] != "")
          ? mainJson.data!['ad_config']['applovin_sdk_key']
          : "xiAs_Fs3BiExPelVuawzyDTU2Sy4GL2d6KB1c7C1loiv64T5oquTwRRIJbHC3qO0qRI_65NChIkGy3U2i6rWXn",
    );
  }

  Future.delayed(const Duration(milliseconds: 100), () {
    onInitComplete();
  });
}