Intersticial premiado (Beta)

O intersticial premiado é um tipo de formato de anúncio incentivado que permite oferecer recompensas por anúncios exibidos automaticamente durante as transições naturais do app. Ao contrário dos anúncios premiados, os usuários não para visualizar um intersticial premiado. Este guia mostra como integrar anúncios intersticiais premiados da AdMob a um app do Flutter.

Pré-requisitos

  • Plug-in do Flutter 1.1.0 ou mais recente.
  • Conclua a etapa Começar. O app Flutter já precisa ter o plug-in dos anúncios para dispositivos móveis do Google importado.

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 anúncios intersticiais premiados:

Android

ca-app-pub-3940256099942544/5354046379

iOS

ca-app-pub-3940256099942544/6978759866

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 o app.

Carregar um anúncio

O exemplo a seguir carrega um anúncio intersticial premiado:

class RewardedInterstitialExampleState extends State<RewardedInterstitialExample> {
  RewardedInterstitialAd? _rewardeInterstitialdAd;

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

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

Eventos de anúncios intersticiais premiados

Com o uso de FullScreenContentCallback, é possível detectar eventos de ciclo de vida, como quando o anúncio é mostrado ou dispensado. Defina RewardedInterstitialAd.fullScreenContentCallback antes de mostrar o anúncio para receber notificações desses eventos. Este exemplo implementa cada método e registra uma mensagem no console:

class RewardedInterstitialExampleState extends State<RewardedInterstitialExample> {
  RewardedInterstitialAd? _rewardedInterstitialAd;

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

  /// Loads a rewarded ad.
  void loadAd() {
    RewardedInterstitialAd.load(
        adUnitId: adUnitId,
        adRequest: const AdRequest(),
        adLoadCallback: RewardedInterstitialAdLoadCallback(
          // 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.
            _rewardedInterstitialAd = ad;
          },
          // Called when an ad request failed.
          onAdFailedToLoad: (LoadAdError error) {
            debugprint('RewardedInterstitialAd failed to load: $error');
          },
        ));
  }
}

Anúncio de display

Um RewardedInterstitialAd é exibido como uma sobreposição sobre todo o conteúdo do app. e é colocada estaticamente, portanto, ele não pode ser adicionado à árvore de widgets do Flutter. Você pode escolher quando mostrar o anúncio chamando show(). RewardedInterstitialAd.show() usa um OnUserEarnedRewardCallback, que é invocado quando o usuário ganha uma recompensa. Lembre-se de implementar isso e recompense por assistir a um anúncio.

_rewardedInterstitialAd.show(onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) {
  // Reward the user for watching an ad.
});

Depois que o método show() é chamado, não é possível remover um Ad mostrado dessa forma. de forma programática e exige entrada do usuário. Um RewardedInterstitialAd só pode ser exibido uma vez. As chamadas subsequentes para mostrar vão acionar onAdFailedToShowFullScreenContent.

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

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

Exemplo completo no GitHub

Intersticial premiado