showAdIfAvailable method
void
showAdIfAvailable()
Shows the ad if it is available.
Does nothing if the ad is not available or is already being shown.
Implementation
void showAdIfAvailable() async {
if (_loadAdFuture != null) {
_logger.debug('Waiting for ad to load...');
await _loadAdFuture;
}
if (!isAdAvailable) {
_logger.debug('Tried to show ad before it was available.');
return;
}
if (_isShowingAd) {
_logger.debug('Tried to show ad while already showing an ad.');
return;
}
_interstitialAd!.fullScreenContentCallback = FullScreenContentCallback(
onAdShowedFullScreenContent: (ad) => _isShowingAd = true,
onAdDismissedFullScreenContent: _disposeAd,
onAdFailedToShowFullScreenContent: (ad, error) {
_logger.debug('Failed to show Interstitial Ad: $error');
_disposeAd(ad);
},
onAdImpression: (ad) {
_logger.debug('Interstitial Ad impression');
final nowUtc = DateTime.now().toUtc();
_adImpressionController.add(nowUtc);
},
);
_interstitialAd!.show();
}