Premiado

Selecione a plataforma: Android iOS Unity Flutter

Anúncios premiados são aqueles que dão aos usuários a opção de interagir com eles em troca de recompensas no app. Este guia mostra como integrar anúncios premiados da AdMob em um app Flutter.

Sempre usar anúncios de teste

Ao criar e testar seus apps, use anúncios de teste em vez de anúncios de produção ativos. Caso contrário, sua conta poderá ser suspensa.

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 premiados:

Android

ca-app-pub-3940256099942544/5224354917

iOS

ca-app-pub-3940256099942544/1712485313

Os blocos de anúncios de teste são configurados para retornar anúncios de teste em todas as solicitações, e você pode usá-los nos seus próprios apps durante a programação, o teste e a depuração. Não se esqueça de substituí-los pelos seus IDs do bloco de anúncios antes de publicar o app.

Carregar um anúncio

O exemplo a seguir carrega um anúncio premiado:

RewardedAd.load(
  adUnitId: "_adUnitId",
  request: const AdRequest(),
  rewardedAdLoadCallback: RewardedAdLoadCallback(
    onAdLoaded: (RewardedAd ad) {
      // Called when an ad is successfully received.
      debugPrint('Ad was loaded.');
      // Keep a reference to the ad so you can show it later.
      _rewardedAd = ad;
    },
    onAdFailedToLoad: (LoadAdError error) {
      // Called when an ad request failed.
      debugPrint('Ad failed to load with error: $error');
    },
  ),
);

Substitua _adUnitId pelo ID do seu bloco de anúncios.

Eventos de anúncios premiados

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

ad.fullScreenContentCallback = FullScreenContentCallback(
  onAdShowedFullScreenContent: (ad) {
    // Called when the ad showed the full screen content.
    debugPrint('Ad showed full screen content.');
  },
  onAdFailedToShowFullScreenContent: (ad, err) {
    // Called when the ad failed to show full screen content.
    debugPrint('Ad failed to show full screen content with error: $err');
    // Dispose the ad here to free resources.
    ad.dispose();
  },
  onAdDismissedFullScreenContent: (ad) {
    // Called when the ad dismissed full screen content.
    debugPrint('Ad was dismissed.');
    // Dispose the ad here to free resources.
    ad.dispose();
  },
  onAdImpression: (ad) {
    // Called when an impression occurs on the ad.
    debugPrint('Ad recorded an impression.');
  },
  onAdClicked: (ad) {
    // Called when a click is recorded for an ad.
    debugPrint('Ad was clicked.');
  },
);

Anúncio de display

Um RewardedAd é mostrado como uma sobreposição em cima de todo o conteúdo do app e é posicionado de forma estática. Portanto, não é possível adicioná-lo à árvore de widgets do Flutter. Você pode escolher quando mostrar o anúncio chamando show(). RewardedAd.show() usa um OnUserEarnedRewardCallback, que é invocado quando o usuário ganha uma recompensa. Implemente esse recurso e recompense o usuário por assistir um anúncio.

_rewardedAd?.show(
  onUserEarnedReward:
      (AdWithoutView ad, RewardItem rewardItem) {
        debugPrint(
          'Reward amount: ${rewardItem.amount}',
        );
      },
);

Depois que show() é chamado, um Ad exibido dessa forma não pode ser removido programaticamente e exige a entrada do usuário. Um RewardedAd só pode ser mostrado uma vez. As chamadas subsequentes vão acionar onAdFailedToShowFullScreenContent.

Um anúncio precisa ser descartado quando o acesso a ele não é mais necessário. As práticas recomendadas de quando chamar dispose() estão disponíveis nos callbacks FullScreenContentCallback.onAdDismissedFullScreenContent e FullScreenContentCallback.onAdFailedToShowFullScreenContent.

[Opcional] Validar callbacks de verificação do lado do servidor (SSV)

Os apps que exigem dados extras em callbacks de verificação do lado do servidor precisam usar o recurso de dados personalizados dos anúncios premiados. Qualquer valor de string definido em um objeto de anúncio premiado é transmitido ao parâmetro de consulta custom_data do callback de SSV. Se nenhum valor de dados personalizado for definido, o valor do parâmetro de consulta custom_data não estará presente no callback de SSV.

O exemplo de código a seguir demonstra como definir as opções de SSV depois que o anúncio premiado é carregado:

RewardedAd.load(
  adUnitId: "_adUnitId",
  request: AdRequest(),
  rewardedAdLoadCallback: RewardedAdLoadCallback(
    onAdLoaded: (ad) {
      ServerSideVerificationOptions _options =
          ServerSideVerificationOptions(
              customData: 'SAMPLE_CUSTOM_DATA_STRING');
      ad.setServerSideOptions(_options);
      _rewardedAd = ad;
    },
    onAdFailedToLoad: (error) {},
  ),
);

Substitua SAMPLE_CUSTOM_DATA_STRING pelos seus dados personalizados.

Exemplo completo no GitHub

Premiado