Annonces avec récompense

Sélectionnez une plate-forme : Android iOS Unity Flutter Android (Legacy)

Les annonces avec récompense permettent de récompenser les utilisateurs qui interagissent avec des annonces vidéo, des annonces jouables et des enquêtes en leur offrant différents éléments au sein de votre application.

Avant de commencer

Avant de continuer, procédez comme suit :

  • Configurez Google Mobile Ads SDK (Legacy).
  • Utilisez l'ID de bloc d'annonces avec récompense test /21775744923/example/rewarded.
    • Lorsque vous créez et testez vos applications, assurez-vous d'utiliser des annonces tests plutôt que des annonces de production. Si vous n'utilisez pas l'ID de bloc d'annonces de test, Google peut suspendre votre compte.
    • Avant de publier votre application, remplacez cet ID par l'ID de votre bloc d'annonces.
    • Pour en savoir plus sur les annonces tests Google Mobile Ads SDK (Legacy), consultez Activer les annonces tests.

Charger un objet d'annonce avec récompense

Les annonces avec récompense sont chargées en appelant la méthode statique load sur la RewardedAd classe et en transmettant un RewardedAdLoadCallback. Cela se fait généralement dans la méthode onCreate d'une Activity. Notez que, comme les autres rappels de chargement de format, RewardedAdLoadCallback utilise LoadAdError pour fournir des informations plus précises sur les erreurs.

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

Remplacez AD_UNIT_ID par l'ID de votre bloc d'annonces.

Définir le FullScreenContentCallback

Le FullScreenContentCallback gère les événements liés à l'affichage de votre RewardedAd. Avant d'afficher votre RewardedAd, assurez-vous de définir le rappel comme suit :

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

Diffuser l'annonce

Lorsque vous diffusez une annonce avec récompense, utilisez un objet OnUserEarnedRewardListener pour gérer les événements de récompense.

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

Pour les annonces diffusées par Google, Google Mobile Ads SDK (Legacy) appelle la onUserEarnedReward méthode avant la onAdDismissedFullScreenContent méthode. Pour les annonces diffusées avec la médiation, la source d'annonces tierce détermine l'ordre des rappels. Pour les sources d'annonces qui fournissent un seul rappel de fermeture avec des informations sur la récompense, l'adaptateur de médiation appelle la méthode onUserEarnedReward avant la méthode onAdDismissedFullScreenContent. Pour en savoir plus, consultez Configurer la médiation.

Facultatif : Valider les rappels de validation côté serveur

Les applications qui nécessitent des données supplémentaires dans les rappels de validation côté serveur doivent utiliser la fonctionnalité de données personnalisées des annonces avec récompense. Toute valeur de chaîne définie sur un objet d'annonce avec récompense est transmise au paramètre de requête custom_data du rappel de validation côté serveur. Si aucune valeur de données personnalisées n'est définie, la valeur du paramètre de requête custom_data n'est pas présente dans le rappel de validation côté serveur.

L'exemple de code suivant montre comment définir des données personnalisées sur un objet d'annonce avec récompense avant de demander une annonce.

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

Remplacez SAMPLE_CUSTOM_DATA_STRING par vos données personnalisées.

Si vous souhaitez définir la chaîne de récompense personnalisée, vous devez le faire avant de diffuser l'annonce.

Exemples sur GitHub

  • Exemple d'annonces avec récompense : Java | Kotlin

Étapes suivantes

Explorez les sujets suivants :