createInterstitialAd method
Asynchronously creates and loads an interstitial
ad.
Implementation
Future<void> createInterstitialAd(BuildContext context,
{bool load = true}) async {
if (!AdmobEasy.instance.isConnected.value ||
!load ||
AdmobEasy.instance.initAdID.isEmpty) {
log('Interstitial ad cannot load');
return;
}
// Dispose existing ad if present
if (interstitialAd != null) {
interstitialAd!.dispose();
}
// Load new interstitial ad
await InterstitialAd.load(
adUnitId: AdmobEasy.instance.initAdID,
request: const AdRequest(),
adLoadCallback: InterstitialAdLoadCallback(
onAdLoaded: (InterstitialAd ad) {
log('$ad loaded');
interstitialAd = ad;
_numInterstitialLoadAttempts = 0;
interstitialAd!.setImmersiveMode(true);
},
onAdFailedToLoad: (LoadAdError error) {
log('InterstitialAd failed to load: $error.');
_numInterstitialLoadAttempts += 1;
interstitialAd = null;
// Retry loading if attempts are less than 5
if (_numInterstitialLoadAttempts < 5) {
createInterstitialAd(context);
}
},
),
);
}