SDK nouvelle génération avec API de chargement unique.
Les annonces interstitielles avec récompense sont un format qui vous permet de proposer des récompenses pour les annonces diffusées automatiquement lors des transitions naturelles 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. Pour en savoir plus, consultez les conseils concernant les interstitiels avec récompense.
Ce guide explique comment intégrer des annonces interstitielles avec récompense dans une application Android.
Prérequis
Toujours tester avec des annonces tests
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 d'annonces tests, Google peut suspendre votre compte.
Le moyen le plus simple de charger des annonces tests consiste à utiliser l'ID de bloc d'annonces test dédié aux annonces interstitielles avec récompense Android :
ca-app-pub-3940256099942544/5354046379
Cet ID de bloc d'annonces a été spécialement configuré pour renvoyer des annonces tests pour chaque requête. Vous pouvez l'utiliser librement dans vos propres applications lors du codage, des tests et du débogage. Veillez à le remplacer par votre propre ID de bloc d'annonces avant de publier votre application.
Pour en savoir plus sur les annonces tests GMA Next-Gen SDK, consultez Activer les annonces tests.
Charger une annonce
L'exemple suivant montre comment charger une seule annonce :
Kotlin
// Load ads after you initialize MobileAds. RewardedInterstitialAd.load( AdRequest.Builder(adUnitId).build(), object : AdLoadCallback<RewardedInterstitialAd> { override fun onAdLoaded(ad: RewardedInterstitialAd) { // Rewarded interstitial ad loaded. rewardedInterstitialAd = ad } override fun onAdFailedToLoad(adError: LoadAdError) { // Rewarded interstitial ad failed to load. Log.e(TAG, "Rewarded interstitial ad failed to load: ${adError.message}") rewardedInterstitialAd = null } }, )
Java
// Load ads after you initialize MobileAds. RewardedInterstitialAd.load( new AdRequest.Builder(adUnitId).build(), new AdLoadCallback<RewardedInterstitialAd>() { @Override public void onAdLoaded(@NonNull RewardedInterstitialAd ad) { // Rewarded interstitial ad loaded. rewardedInterstitialAd = ad; } @Override public void onAdFailedToLoad(@NonNull LoadAdError adError) { // Rewarded interstitial ad failed to load. Log.e(TAG, "Rewarded interstitial ad failed to load: " + adError.getMessage()); rewardedInterstitialAd = null; } });
Lors des tests, utilisez l'ID de bloc d'annonces test : ca-app-pub-3940256099942544/5354046379.
Afficher l'annonce
Pour afficher une annonce interstitielle avec récompense, utilisez la méthode show. Utilisez un objet OnUserEarnedRewardListener pour gérer les événements de récompense.
Kotlin
private fun showAd(rewardedInterstitialAd: RewardedInterstitialAd, activity: Activity) { // Show the ad. rewardedInterstitialAd.show( activity, object : OnUserEarnedRewardListener { override fun onUserEarnedReward(rewardItem: RewardItem) { // User earned the reward. val rewardAmount = rewardItem.amount val rewardType = rewardItem.type } }, ) }
Java
private void showAd(RewardedInterstitialAd rewardedInterstitialAd, Activity activity) { // Show the ad. rewardedInterstitialAd.show( activity, new OnUserEarnedRewardListener() { @Override public void onUserEarnedReward(@NonNull RewardItem rewardItem) { // User earned the reward. int rewardAmount = rewardItem.getAmount(); String rewardType = rewardItem.getType(); } }); }
Écouter les événements d'annonce
Avant d'afficher l'annonce, écoutez les événements du cycle de vie des annonces :
Kotlin
private fun listenToAdEvents() { // Listen for ad events. val ad = rewardedInterstitialAd if (ad == null) { Log.e(TAG, "Rewarded interstitial ad is not ready yet.") return } ad.adEventCallback = object : RewardedInterstitialAdEventCallback { override fun onAdShowedFullScreenContent() { // Rewarded interstitial ad did show. } override fun onAdDismissedFullScreenContent() { // Rewarded interstitial ad did dismiss. rewardedInterstitialAd = null } override fun onAdFailedToShowFullScreenContent( fullScreenContentError: FullScreenContentError ) { // Rewarded interstitial ad failed to show. Log.e(TAG, "Rewarded interstitial ad failed to show: ${fullScreenContentError.message}") } override fun onAdImpression() { // Rewarded interstitial ad did record an impression. } override fun onAdClicked() { // Rewarded interstitial ad did record a click. } } }
Java
private void listenToAdEvents() { // Listen for ad events. if (rewardedInterstitialAd == null) { Log.e(TAG, "Rewarded interstitial ad is not ready yet."); return; } rewardedInterstitialAd.setAdEventCallback( new RewardedInterstitialAdEventCallback() { @Override public void onAdShowedFullScreenContent() { // Rewarded interstitial ad did show. } @Override public void onAdDismissedFullScreenContent() { // Rewarded interstitial ad did dismiss. rewardedInterstitialAd = null; } @Override public void onAdFailedToShowFullScreenContent( @NonNull FullScreenContentError fullScreenContentError) { // Rewarded interstitial ad failed to show. Log.e( TAG, "Rewarded interstitial ad failed to show: " + fullScreenContentError.getMessage()); } @Override public void onAdImpression() { // Rewarded interstitial ad did record an impression. } @Override public void onAdClicked() { // Rewarded interstitial ad did record a click. } }); }
Facultatif : Valider les rappels de validation côté serveur
Si votre application nécessite des données supplémentaires dans les rappels de validation côté serveur, utilisez la fonctionnalité de données personnalisées des annonces interstitielles avec récompense. Toute valeur de chaîne définie sur un objet d'annonce interstitielle 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 :
Kotlin
Java
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 d'afficher l'annonce.