3

I'm trying to show ads every few button presses, the first two times it works fine but it never gets to show a third. Is my code wrong? I'm using Vscode and Android Studio.

This is the code I am using:

InterstitialAd _interstitialAd;
  static bool _isInterstitialAdReady = false;

  InterstitialAd _createInterstitialAd = new InterstitialAd(
    adUnitId: Ads.interstitial,
    listener: (MobileAdEvent event) {},
  );


  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback(_afterLayout);
    FirebaseAdMob.instance.initialize(appId: Ads.appId);

    _interstitialAd = InterstitialAd(
        adUnitId: Ads.interstitial,
        listener: (MobileAdEvent event) {
          switch (event) {
            case MobileAdEvent.loaded:
              _isInterstitialAdReady = true;
              break;

            case MobileAdEvent.failedToLoad:
              _isInterstitialAdReady = false;
              break;
            case MobileAdEvent.closed:
              _interstitialAd.dispose();
              _interstitialAd = _createInterstitialAd..load();
              break;
            default:
          }
        });
    _interstitialAd.load();
  }

  @override
  void dispose() {
    // Add these to dispose to cancel timer when user leaves the app
    _interstitialAd?.dispose();
    super.dispose();
  }

Call method:

if (ButtonCounter.rouletteCounter >= 10 && _isInterstitialAdReady) {
  _interstitialAd
    ..load()
    ..show();

    ButtonCounter.rouletteCounter = 0;
} else {
  ButtonCounter.rouletteCounter++;
  print('_isInterstitialReady: $_isInterstitialAdReady');
}
Dsema
  • 31
  • 3

0 Answers0