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 do Ad Manager em um app do 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. Se não, sua conta pode 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:

  • /21775744923/example/rewarded

Ele é configurado para retornar anúncios de teste em todas as solicitações, e você pode usar esse bloco nos seus próprios apps durante a programação, o teste e a depuração. Só não se esqueça de substituir os IDs dos blocos de anúncios pelos seus antes de publicar o app.

Carregar um anúncio

O exemplo a seguir carrega um anúncio premiado:

class RewardedExampleState extends State<RewardedExample> {
  RewardedAd? _rewardedAd;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = '/21775744923/example/rewarded';

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

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.

class RewardedExampleState extends State<RewardedExample> {
  RewardedAd? _rewardedAd;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = '/21775744923/example/rewarded';

  /// Loads a rewarded ad.
  void loadAd() {
    RewardedAd.loadWithAdManagerAdRequest(
        adUnitId: adUnitId,
        adManagerAdRequest: const AdManagerAdRequest(),
        adLoadCallback: RewardedAdLoadCallback(
          // 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.
            _rewardedAd = ad;
          },
          // Called when an ad request failed.
          onAdFailedToLoad: (LoadAdError error) {
            debugPrint('RewardedAd failed to load: $error');
          },
        ));
  }
}

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. Por isso, ele não pode ser adicionado à á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) {
  // Reward the user for watching an ad.
});

Depois que show() é chamado, um Ad exibido dessa forma não pode ser removido de maneira programática 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 é mais necessário. As práticas recomendadas de quando chamar dispose() estão disponíveis nos callbacks FullScreenContentCallback.onAdDismissedFullScreenContent e FullScreenContentCallback.onAdFailedToShowFullScreenContent.

Pronto! Seu app está preparado para exibir anúncios premiados.