Annunci con premio

Gli annunci con premio ti consentono di premiare con articoli in-app gli utenti che hanno interagito con gli annunci video, gli annunci demo e i sondaggi.

Prima di iniziare

Prima di continuare, completa queste operazioni:

  • Configura Google Mobile Ads SDK (Legacy).
  • Utilizza l'ID unità pubblicitaria con premio di prova /21775744923/example/rewarded.
    • Quando crei e testi le tue app, assicurati di utilizzare annunci di prova anziché annunci di produzione live. Se non utilizzi l'ID unità pubblicitaria di test, Google può sospendere il tuo account.
    • Prima di pubblicare l'app, sostituisci questo ID con l'ID unità pubblicitaria.
    • Per maggiori dettagli sugli annunci di prova Google Mobile Ads SDK (Legacy), consulta Attivare gli annunci di prova.

Caricare un oggetto dell'annuncio con premio

Gli annunci con premio vengono caricati chiamando il metodo statico load nella classe RewardedAd e passando un RewardedAdLoadCallback. In genere, questa operazione viene eseguita nel metodo onCreate di un'attività Activity. Tieni presente che, come gli altri callback di caricamento del formato, RewardedAdLoadCallback utilizza LoadAdError per fornire dettagli sugli errori di fedeltà superiore.

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
    }
  },
)

Sostituisci AD_UNIT_ID con l'ID unità pubblicitaria.

Impostare FullScreenContentCallback

FullScreenContentCallback gestisce gli eventi relativi alla visualizzazione di RewardedAd. Prima di mostrare RewardedAd, assicurati di impostare il callback come segue:

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.")
    }
  }

Mostrare l'annuncio

Quando mostri un annuncio con premio, utilizza un oggetto OnUserEarnedRewardListener per gestire gli eventi premio.

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
  },
)

Per gli annunci pubblicati da Google, Google Mobile Ads SDK (Legacy) chiama il onUserEarnedReward metodo prima del onAdDismissedFullScreenContent metodo. Per gli annunci pubblicati con la mediazione, l'origine annuncio di terze parti determina l'ordine dei callback. Per le origini annuncio che forniscono un singolo callback di chiusura con informazioni sul premio, l'adattatore di mediazione chiama il metodo onUserEarnedReward prima del metodo onAdDismissedFullScreenContent. Per maggiori dettagli, consulta Configurare la mediazione.

(Facoltativo) Convalidare i callback di verifica lato server (SSV)

Le app che richiedono dati aggiuntivi nei callback di verifica lato server devono utilizzare la funzionalità dei dati personalizzati degli annunci con premio. Qualsiasi valore stringa impostato su un oggetto annuncio con premio viene passato al parametro di query custom_data del callback SSV. Se non è impostato alcun valore di dati personalizzati, il valore del parametro di query custom_data non sarà presente nel callback SSV.

L'esempio di codice seguente mostra come impostare dati personalizzati su un oggetto annuncio con premio prima di richiedere un annuncio.

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)
    }
  },
)

Sostituisci SAMPLE_CUSTOM_DATA_STRING con i tuoi dati personalizzati.

Se vuoi impostare la stringa del premio personalizzata, devi farlo prima di mostrare l'annuncio.

Esempi su GitHub

Passaggi successivi

Approfondisci i seguenti argomenti: