loadAd method

void loadAd({
  1. int pos = 0,
  2. Function? callback,
  3. Function? onFailedCallback,
})

Load an AppOpenAd.

Implementation

void loadAd({int pos = 0, Function? callback, Function? onFailedCallback}) {
  final _settings = getAdsSettings();

  if (_settings == null ||
      (_settings.adSetting?.appVersionCode == appVersionCode) ||
      (_settings.openAdsSequence?.isEmpty ?? true) ||
      (getAdsSettings()?.isAllAds ?? false) == false ||
      ((_settings.openAdsSequence?.length ?? 0) <= pos)) {
    if (onFailedCallback != null) {
      onFailedCallback();
    }
    return;
  }

  switch (_settings.openAdsSequence?[pos]) {
    case _GOOGLEAD:
    case _ADMANAGERAD:
      final adUnitId = _settings.googleAds?.appOpenAdId ?? "";

      if (adUnitId.isEmpty || !(_settings.googleAds?.isOpenAds ?? false)) {
        loadAd(pos: pos + 1, callback: callback);
        return;
      }

      AppOpenAd.load(
        adUnitId: adUnitId,
        orientation: AppOpenAd.orientationPortrait,
        request: AdRequest(),
        adLoadCallback: AppOpenAdLoadCallback(
          onAdLoaded: (ad) {
            _appOpenLoadTime = DateTime.now();
            _appOpenAd = ad;
            if (callback != null) {
              callback();
            }
          },
          onAdFailedToLoad: (error) {
            _appOpenAd = null;
            loadAd(pos: pos + 1, callback: callback);
          },
        ),
      );
      break;

    case _APPLOVINAD:
      final adUnitId = _settings.appLovin?.openId ?? "";

      if (adUnitId.isEmpty || !(_settings.appLovin?.isOpenAds ?? false)) {
        loadAd(pos: pos + 1, callback: callback);
        return;
      }

      AppLovinOpenAd.load(
        adUnitId: adUnitId,
        adLoadCallback: AppLovinOpenAdLoadCallback(
          onAdLoaded: (ad) {
            _appOpenLoadTime = DateTime.now();
            _appLovinOpenAd = ad;
            if (callback != null) {
              callback();
            }
          },
          onAdFailedToLoad: (error) {
            _appLovinOpenAd = null;
            loadAd(pos: pos + 1, callback: callback);
          },
        ),
      );
      break;

    default:
      loadAd(pos: pos + 1, callback: callback);
      break;
  }
}