Intersticial

Os anúncios intersticiais são anúncios em tela cheia que cobrem a interface dos aplicativos host. Normalmente, elas são exibidas em pontos de transição natural no fluxo de um aplicativo, como entre atividades ou durante uma pausa entre os níveis de um jogo. Quando um app mostrar um anúncio intersticial, o usuário terá a opção de tocar nele e continuar até o destino ou fechar e retornar ao app.

Este guia explica como integrar anúncios intersticiais em um app Flutter.

Sempre faça testes com anúncios de teste

Ao criar e testar seus apps, use anúncios de teste em vez de anúncios de produção ativos. Sua conta poderá ser suspensa se isso não for feito.

A maneira mais fácil de carregar anúncios de teste é usar nosso ID de bloco de anúncios de teste dedicado para intersticiais:

Android

ca-app-pub-3940256099942544/1033173712

iOS

ca-app-pub-3940256099942544/4411468910

Os blocos de anúncios de teste são configurados para retornar anúncios de teste para cada solicitação, e você pode usá-las nos seus próprios apps durante a programação, o teste e a depuração. Basta substituí-los pelos seus próprios IDs de bloco de anúncios antes de publicar seu app.

Carregar um anúncio

O exemplo a seguir carrega um anúncio intersticial:

class InterstitialExampleState extends State<InterstitialExample> {
  InterstitialAd? _interstitialAd;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = Platform.isAndroid
    ? 'ca-app-pub-3940256099942544/1033173712'
    : 'ca-app-pub-3940256099942544/4411468910';

  /// Loads an interstitial ad.
  void loadAd() {
    InterstitialAd.load(
        adUnitId: adUnitId,
        request: const AdRequest(),
        adLoadCallback: InterstitialAdLoadCallback(
          // Called when an ad is successfully received.
          onAdLoaded: (ad) {
            debugPrint('$ad loaded.');
            // Keep a reference to the ad so you can show it later.
            _interstitialAd = ad;
          },
          // Called when an ad request failed.
          onAdFailedToLoad: (LoadAdError error) {
            debugPrint('InterstitialAd failed to load: $error');
          },
        ));
  }
}

Eventos de anúncio intersticial

Usando FullScreenContentCallback, é possível detectar ciclos de vida eventos, como quando o anúncio é mostrado ou dispensado. Definir InterstitialAd.fullScreenContentCallback antes de mostrar o anúncio para receber notificações desses eventos. Este exemplo implementa cada método:

class InterstitialExampleState extends State<InterstitialExample> {
  InterstitialAd? _interstitialAd;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = Platform.isAndroid
    ? 'ca-app-pub-3940256099942544/1033173712'
    : 'ca-app-pub-3940256099942544/4411468910';

  /// Loads an interstitial ad.
  void loadAd() {
    InterstitialAd.load(
        adUnitId: adUnitId,
        request: const AdRequest(),
        adLoadCallback: InterstitialAdLoadCallback(
          // Called when an ad is successfully received.
          onAdLoaded: (ad) {
             ad.fullScreenContentCallback = FullScreenContentCallback(
                // Called when the ad showed the full screen content.
                onAdShowedFullScreenContent: (ad) {},
                // Called when an impression occurs on the ad.
                onAdImpression: (ad) {},
                // Called when the ad failed to show full screen content.
                onAdFailedToShowFullScreenContent: (ad, err) {
                  // Dispose the ad here to free resources.
                  ad.dispose();
                },
                // Called when the ad dismissed full screen content.
                onAdDismissedFullScreenContent: (ad) {
                  // Dispose the ad here to free resources.
                  ad.dispose();
                },
                // Called when a click is recorded for an ad.
                onAdClicked: (ad) {});

            debugPrint('$ad loaded.');
            // Keep a reference to the ad so you can show it later.
            _interstitialAd = ad;
          },
          // Called when an ad request failed.
          onAdFailedToLoad: (LoadAdError error) {
            debugPrint('InterstitialAd failed to load: $error');
          },
        ));
  }
}

Exibir um anúncio intersticial

Um InterstitialAd é exibido como um Overlay. sobre todo o conteúdo do app e é posicionada estaticamente; Assim, ele não pode ser adicionado a árvore de widgets do Flutter. É possível escolher quando mostrar o anúncio chamando show().

_interstitiaAd.show();

Depois que show() é chamado, um Ad exibido dessa forma não pode ser dispensado de forma programática e exige entrada do usuário. Só é possível mostrar uma InterstitialAd uma vez. As chamadas seguintes acionarão onAdFailedToShowFullScreenContent.

Um anúncio deverá ser descartado quando o acesso a ele não for mais necessário. A prática recomendada para quando chamar dispose() está no FullScreenContentCallback.onAdDismissedFullScreenContent e Callbacks FullScreenContentCallback.onAdFailedToShowFullScreenContent.

Pronto! Seu app está pronto para exibir anúncios intersticiais.

Próximas etapas

Exemplo completo no GitHub

Intersticial