SDK de nueva generación con API de carga única.
Los anuncios intersticiales recompensados son un formato que te permite ofrecer recompensas por anuncios que aparecen automáticamente durante las transiciones naturales de la app. A diferencia de los anuncios recompensados, no se requiere que los usuarios acepten ver un anuncio intersticial recompensado.
En esta guía, se explica cómo integrar anuncios intersticiales recompensados en una app para Android.
Requisitos previos
Haz siempre una comprobación con anuncios de prueba
Al crear y verificar tus apps, asegúrate de usar anuncios de prueba en vez de anuncios activos en fase de producción. Si no usas anuncios de prueba, Google puede suspender tu cuenta.
La forma más sencilla de cargar anuncios de prueba es usar el ID de unidad de anuncios de prueba exclusivo para los anuncios intersticiales recompensados en Android:
/21775744923/example/rewarded-interstitial
Este ID de unidad de anuncios se configuró especialmente para devolver anuncios de prueba en cada solicitud. Puedes usarlo en tus propias apps mientras realizas tus actividades de programación, prueba y depuración. Solo asegúrate de reemplazarlo por tu propio ID de unidad de anuncios antes de publicar tu app.
Para obtener detalles sobre los anuncios de prueba GMA Next-Gen SDK, consulta Habilita los anuncios de prueba.
Carga un anuncio
En el siguiente ejemplo, se muestra cómo cargar un solo anuncio:
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; } });
Cuando realices pruebas, usa el ID de unidad de anuncios de prueba: /21775744923/example/rewarded-interstitial.
Muestra el anuncio
Para mostrar un anuncio intersticial recompensado, usa el método show. Con un objeto OnUserEarnedRewardListener, puedes procesar los eventos recompensados.
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(); } }); }
Escucha eventos de anuncios
Antes de mostrar el anuncio, escucha los eventos de ciclo de vida del anuncio:
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. } }); }
Opcional: Valida las devoluciones de llamada de verificación del servidor (SSV)
Si tu app requiere datos adicionales en las devoluciones de llamada de verificación del servidor, usa la función de datos personalizados de los anuncios intersticiales recompensados. Todos los valores de cadena establecidos en un objeto de anuncio intersticial recompensado se pasan al parámetro de consulta custom_data de la devolución de llamada de SSV. Si no se establece ningún valor de datos personalizados, el valor del parámetro de consulta custom_data no estará presente en la devolución de llamada de SSV.
En la siguiente muestra de código, se indica cómo establecer datos personalizados en un objeto de anuncio intersticial recompensado antes de solicitar un anuncio:
Kotlin
Java
Reemplaza SAMPLE_CUSTOM_DATA_STRING por tus datos personalizados.
Si deseas establecer la cadena de recompensa personalizada, debes hacerlo antes de mostrar el anuncio.