import 'package:flutter/cupertino.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:google_mobile_ads/google_mobile_ads.dart'; import 'package:news/cubits/appSystemSettingCubit.dart'; const AdRequest request = AdRequest( //static keywords: ['foo', 'bar'], contentUrl: 'http://foo.com/bar.html', nonPersonalizedAds: true, ); int maxFailedLoadAttempts = 3; InterstitialAd? _interstitialAd; int _numInterstitialLoadAttempts = 0; void createGoogleInterstitialAd(BuildContext context) { if (context.read().interstitialId() != "") { InterstitialAd.load( adUnitId: context.read().interstitialId()!, request: request, adLoadCallback: InterstitialAdLoadCallback( onAdLoaded: (InterstitialAd ad) { _interstitialAd = ad; _numInterstitialLoadAttempts = 0; _interstitialAd!.setImmersiveMode(true); }, onAdFailedToLoad: (LoadAdError error) { _numInterstitialLoadAttempts += 1; _interstitialAd = null; if (_numInterstitialLoadAttempts <= maxFailedLoadAttempts) { createGoogleInterstitialAd(context); } }, )); } } void showGoogleInterstitialAd(BuildContext context) { if (_interstitialAd == null) { return; } _interstitialAd!.fullScreenContentCallback = FullScreenContentCallback( onAdShowedFullScreenContent: (InterstitialAd ad) => debugPrint('ad onAdShowedFullScreenContent.'), onAdDismissedFullScreenContent: (InterstitialAd ad) { ad.dispose(); createGoogleInterstitialAd(context); }, onAdFailedToShowFullScreenContent: (InterstitialAd ad, AdError error) { ad.dispose(); createGoogleInterstitialAd(context); }, ); _interstitialAd!.show(); _interstitialAd = null; }