Annonces interstitielles avec récompense (bêta)

Sélectionnez la plate-forme : Android Nouveau Android iOS Unity Flutter

L'interstitiel avec récompense est un type de format incitatif qui vous permet de proposer des récompenses pour les annonces diffusées automatiquement aux points de transition naturels dans votre application. Contrairement aux annonces avec récompense, les utilisateurs ne sont pas obligés de choisir de regarder un interstitiel avec récompense.

Prérequis

  • Google Mobile Ads SDK 19.2.0 ou version ultérieure.

Avant de continuer, configurez Google Mobile Ads SDK.

Implémentation

Voici les principales étapes à suivre pour intégrer des annonces interstitielles avec récompense :

  • Charger une annonce
  • S'inscrire pour recevoir des rappels d'événements en plein écran
  • Gérer le rappel de récompense
  • Afficher l'annonce
  • [Facultatif] Valider les rappels de validation côté serveur

Charger une annonce

Le chargement d'une annonce s'effectue à l'aide de la méthode statique load() sur la classe RewardedInterstitialAd. La méthode de chargement nécessite un contexte, l'ID de votre bloc d'annonces, un objet AdRequest et un RewardedInterstitialAdLoadCallback pour être averti lorsque le chargement de l'annonce réussit ou échoue. L'objet RewardedInterstitialAd chargé est fourni en tant que paramètre dans le onRewardedInterstitialAdLoaded() rappel.

L'exemple suivant montre comment charger un RewardedInterstitialAd dans votre MainActivity.

Java

RewardedInterstitialAd.load(
    MainActivity.this,
    "AD_UNIT_ID",
    new AdRequest.Builder().build(),
    new RewardedInterstitialAdLoadCallback() {
      @Override
      public void onAdLoaded(RewardedInterstitialAd ad) {
        Log.d(TAG, "Ad was loaded.");
        rewardedInterstitialAd = ad;
      }

      @Override
      public void onAdFailedToLoad(LoadAdError loadAdError) {
        Log.d(TAG, "onAdFailedToLoad: " + loadAdError.getMessage());
        rewardedInterstitialAd = null;
      }
    });

Kotlin

RewardedInterstitialAd.load(
  this,
  "AD_UNIT_ID",
  AdRequest.Builder().build(),
  object : RewardedInterstitialAdLoadCallback() {
    override fun onAdLoaded(rewardedAd: RewardedInterstitialAd) {
      Log.d(TAG, "Ad was loaded.")
      rewardedInterstitialAd = rewardedAd
    }

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

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

S'inscrire pour recevoir des rappels

Pour recevoir des notifications concernant les événements de présentation, vous devez transmettre un objet FullScreenContentCallback au setter de votre annonce. L'objet FullScreenContentCallback gère les rappels lorsque l'annonce est présentée avec succès ou non, et lorsqu'elle est ignorée. Le code suivant montre comment définir un objet FullScreenContentCallback anonyme dans votre RewardedInterstitialAdLoadCallback :

Java

rewardedInterstitialAd.setFullScreenContentCallback(
    new FullScreenContentCallback() {
      @Override
      public void onAdDismissedFullScreenContent() {
        // Called when fullscreen content is dismissed.
        Log.d(TAG, "The ad was dismissed.");
        // Make sure to set your reference to null so you don't
        // show it a second time.
        rewardedInterstitialAd = null;
        if (googleMobileAdsConsentManager.canRequestAds()) {
          loadRewardedInterstitialAd();
        }
      }

      @Override
      public void onAdFailedToShowFullScreenContent(AdError adError) {
        // Called when fullscreen content failed to show.
        Log.d(TAG, "The ad failed to show.");
        // Make sure to set your reference to null so you don't
        // show it a second time.
        rewardedInterstitialAd = null;
      }

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

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

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

Kotlin

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

Afficher l'annonce

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

Java

rewardedInterstitialAd.show(
    MainActivity.this,
    new OnUserEarnedRewardListener() {
      @Override
      public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
        Log.d(TAG, "The user earned the reward.");
        // Handle the reward.
        int rewardAmount = rewardItem.getAmount();
        String rewardType = rewardItem.getType();
      }
    });

Kotlin

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

[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é serveurdoivent 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 interstitielle avec récompense avant de demander une annonce.

Java

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

Kotlin

RewardedInterstitialAd.load(
  context,
  AD_UNIT_ID,
  AdRequest.Builder().build(),
  object : RewardedInterstitialAdLoadCallback() {
    override fun onAdLoaded(ad: RewardedInterstitialAd) {
      rewardedInterstitialAd = ad
      val options =
        ServerSideVerificationOptions.Builder().setCustomData("SAMPLE_CUSTOM_DATA_STRING").build()
      rewardedInterstitialAd?.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 interstitielles avec récompense : Java | Kotlin

Étapes suivantes

Consultez les rubriques suivantes :