createInterstitialAd method
Future<void>
createInterstitialAd(
- BuildContext context, {
- bool load = true,
- int numInterstitialLoadAttempts = 5,
Asynchronously creates and loads an interstitial
ad.
Implementation
Future<void> createInterstitialAd(
BuildContext context, {
bool load = true,
int numInterstitialLoadAttempts = 5,
}) 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) async {
log('InterstitialAd failed to load: $error.');
_numInterstitialLoadAttempts += 1;
interstitialAd = null;
// Retry loading if attempts are less than 5
if (_numInterstitialLoadAttempts < numInterstitialLoadAttempts) {
await Future.delayed(const Duration(seconds: 2), () {
if (!context.mounted) return;
createInterstitialAd(context);
});
}
},
),
);
}