Anúncios premiados

Com os anúncios premiados, você pode recompensar os usuários com itens no app por interagir com anúncios em vídeo, jogáveis e pesquisas.

Antes de começar

Antes de continuar, faça o seguinte:

  • Configure o Google Mobile Ads SDK (Legacy).
  • Use o ID do bloco de anúncios premiado de teste /21775744923/example/rewarded.
    • Ao criar e testar seus apps, use anúncios de teste em vez de anúncios de produção ativos. Se você não usar o ID do bloco de teste, o Google poderá suspender sua conta.
    • Antes de publicar o app, substitua esse ID pelo ID do seu bloco de anúncios.
    • Para detalhes sobre os anúncios de teste do Google Mobile Ads SDK (Legacy), consulte Ativar anúncios de teste.

Carregar um objeto de anúncio premiado

Os anúncios premiados são carregados chamando o método estático load na classe RewardedAd e transmitindo um RewardedAdLoadCallback. Isso geralmente é feito no método onCreate de um Activity. Assim como outros callbacks de carregamento de formato, RewardedAdLoadCallback usa LoadAdError para fornecer detalhes de erro com maior fidelidade.

Java

RewardedAd.load(
    this,
    "AD_UNIT_ID",
    new AdManagerAdRequest.Builder().build(),
    new RewardedAdLoadCallback() {
      @Override
      public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
        Log.d(TAG, "Ad was loaded.");
        MainActivity.this.rewardedAd = rewardedAd;
      }

      @Override
      public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        Log.d(TAG, loadAdError.getMessage());
        rewardedAd = null;
      }
    });

Kotlin

RewardedAd.load(
  this,
  "AD_UNIT_ID",
  AdManagerAdRequest.Builder().build(),
  object : RewardedAdLoadCallback() {
    override fun onAdLoaded(ad: RewardedAd) {
      Log.d(TAG, "Ad was loaded.")
      rewardedAd = ad
    }

    override fun onAdFailedToLoad(adError: LoadAdError) {
      Log.d(TAG, adError.message)
      rewardedAd = null
    }
  },
)

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

Definir o FullScreenContentCallback

O FullScreenContentCallback processa eventos relacionados à exibição do seu RewardedAd. Antes de mostrar seu RewardedAd, defina o callback assim:

Java

rewardedAd.setFullScreenContentCallback(
    new FullScreenContentCallback() {
      @Override
      public void onAdDismissedFullScreenContent() {
        // Called when fullscreen content is dismissed.
        Log.d(TAG, "Ad was dismissed.");
        // Don't forget to set the ad reference to null so you
        // don't show the ad a second time.
        rewardedAd = null;
      }

      @Override
      public void onAdFailedToShowFullScreenContent(AdError adError) {
        // Called when fullscreen content failed to show.
        Log.d(TAG, "Ad failed to show.");
        // Don't forget to set the ad reference to null so you
        // don't show the ad a second time.
        rewardedAd = null;
      }

      @Override
      public void onAdShowedFullScreenContent() {
        // Called when fullscreen content is shown.
        Log.d(TAG, "Ad showed fullscreen content.");
      }

      @Override
      public void onAdImpression() {
        // Called when an impression is recorded for an ad.
        Log.d(TAG, "Ad recorded an impression.");
      }

      @Override
      public void onAdClicked() {
        // Called when an ad is clicked.
        Log.d(TAG, "Ad was clicked.");
      }
    });

Kotlin

rewardedAd?.fullScreenContentCallback =
  object : FullScreenContentCallback() {
    override fun onAdDismissedFullScreenContent() {
      // Called when fullscreen content is dismissed.
      Log.d(TAG, "Ad was dismissed.")
      // Don't forget to set the ad reference to null so you
      // don't show the ad a second time.
      rewardedAd = null
    }

    override fun onAdFailedToShowFullScreenContent(adError: AdError) {
      // Called when fullscreen content failed to show.
      Log.d(TAG, "Ad failed to show.")
      // Don't forget to set the ad reference to null so you
      // don't show the ad a second time.
      rewardedAd = null
    }

    override fun onAdShowedFullScreenContent() {
      // Called when fullscreen content is shown.
      Log.d(TAG, "Ad showed fullscreen content.")
    }

    override fun onAdImpression() {
      // Called when an impression is recorded for an ad.
      Log.d(TAG, "Ad recorded an impression.")
    }

    override fun onAdClicked() {
      // Called when an ad is clicked.
      Log.d(TAG, "Ad was clicked.")
    }
  }

Veicular o anúncio

Ao mostrar um anúncio premiado, use um objeto OnUserEarnedRewardListener para processar eventos premiados.

Java

rewardedAd.show(
    MainActivity.this,
    new OnUserEarnedRewardListener() {
      @Override
      public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
        Log.d(TAG, "User earned the reward.");
        // Handle the reward.
      }
    });

Kotlin

rewardedAd?.show(
  this,
  OnUserEarnedRewardListener { rewardItem ->
    Log.d(TAG, "User earned the reward.")
    // Handle the reward.
    val rewardAmount = rewardItem.amount
    val rewardType = rewardItem.type
  },
)

Para anúncios veiculados pelo Google, Google Mobile Ads SDK (Legacy) chama o método onUserEarnedReward antes do método onAdDismissedFullScreenContent. Para anúncios veiculados com mediação, a origem de terceiros determina a ordem de callback. Para origens de anúncios que fornecem um único callback de fechamento com informações de recompensa, o adaptador de mediação chama o método onUserEarnedReward antes do método onAdDismissedFullScreenContent. Para mais detalhes, consulte Configurar a mediação.

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 não for definido nenhum valor de dados personalizado, 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 dados personalizados em um objeto de anúncio premiado antes de solicitar um anúncio.

Java

RewardedAd.load(
    context,
    AD_UNIT_ID,
    new AdRequest.Builder().build(),
    new RewardedAdLoadCallback() {
      @Override
      public void onAdLoaded(RewardedAd ad) {
        rewardedAd = ad;
        ServerSideVerificationOptions options =
            new ServerSideVerificationOptions.Builder()
                .setCustomData("SAMPLE_CUSTOM_DATA_STRING")
                .build();
        rewardedAd.setServerSideVerificationOptions(options);
      }
    });

Kotlin

RewardedAd.load(
  context,
  AD_UNIT_ID,
  AdRequest.Builder().build(),
  object : RewardedAdLoadCallback() {
    override fun onAdLoaded(ad: RewardedAd) {
      rewardedAd = ad
      val options =
        ServerSideVerificationOptions.Builder().setCustomData("SAMPLE_CUSTOM_DATA_STRING").build()
      rewardedAd?.setServerSideVerificationOptions(options)
    }
  },
)

Substitua SAMPLE_CUSTOM_DATA_STRING pelos seus dados personalizados.

Se quiser definir a string de recompensa personalizada, faça isso antes de mostrar o anúncio.

Exemplos no GitHub

Próximas etapas

Confira os seguintes tópicos: