En esta guía, se explica cómo integrar anuncios recompensados en una app para Android.
Antes de comenzar
Antes de continuar, haz lo siguiente:
- Configura GMA Next-Gen SDK.
- Usa el ID de unidad de anuncios recompensados de prueba
ca-app-pub-3940256099942544/5224354917.- Al compilar y verificar tu app, asegúrate de usar anuncios de prueba en vez de anuncios en producción activos. Si no usas el ID de unidad de anuncios de prueba, Google puede suspender tu cuenta.
- Antes de publicar tu app, reemplaza este ID por tu ID de unidad de anuncios.
- 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 carga un solo anuncio:
Kotlin
// Load ads after you initialize MobileAds. RewardedAd.load( AdRequest.Builder(adUnitId).build(), object : AdLoadCallback<RewardedAd> { override fun onAdLoaded(ad: RewardedAd) { // Rewarded ad loaded. rewardedAd = ad } override fun onAdFailedToLoad(adError: LoadAdError) { // Rewarded ad failed to load. Log.e(TAG, "Rewarded ad failed to load: ${adError.message}") rewardedAd = null } }, )
Java
// Load ads after you initialize MobileAds. RewardedAd.load( new AdRequest.Builder(adUnitId).build(), new AdLoadCallback<RewardedAd>() { @Override public void onAdLoaded(@NonNull RewardedAd ad) { // Rewarded ad loaded. rewardedAd = ad; } @Override public void onAdFailedToLoad(@NonNull LoadAdError adError) { // Rewarded ad failed to load. Log.e(TAG, "Rewarded ad failed to load: " + adError.getMessage()); rewardedAd = null; } });
Cuando realices pruebas, usa el ID de unidad de anuncios de prueba: ca-app-pub-3940256099942544/5224354917.
Muestra el anuncio
Para mostrar un anuncio recompensado, llama al métodoshow. Para controlar los eventos de recompensa, usa un objeto OnUserEarnedRewardListener.
En el siguiente ejemplo, se muestra el anuncio:
Kotlin
private fun showAd(rewardedAd: RewardedAd, activity: Activity) { // Show the ad. rewardedAd.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(RewardedAd rewardedAd, Activity activity) { // Show the ad. rewardedAd.show( activity, new OnUserEarnedRewardListener() { @Override public void onUserEarnedReward(@NonNull RewardItem rewardItem) { // User earned the reward. int rewardAmount = rewardItem.getAmount(); String rewardType = rewardItem.getType(); } }); }
Escucha los eventos de anuncios
Antes de mostrar el anuncio, escucha los eventos de ciclo de vida del anuncio. En el siguiente ejemplo, se registran devoluciones de llamada para eventos de anuncios:
Kotlin
private fun listenToAdEvents() { // Listen for ad events. val ad = rewardedAd if (ad == null) { Log.e(TAG, "Rewarded ad is not ready yet.") return } ad.adEventCallback = object : RewardedAdEventCallback { override fun onAdShowedFullScreenContent() { // Rewarded ad did show. } override fun onAdDismissedFullScreenContent() { // Rewarded ad did dismiss. rewardedAd = null } override fun onAdFailedToShowFullScreenContent( fullScreenContentError: FullScreenContentError ) { // Rewarded ad failed to show. Log.e(TAG, "Rewarded ad failed to show: ${fullScreenContentError.message}") } override fun onAdImpression() { // Rewarded ad did record an impression. } override fun onAdClicked() { // Rewarded ad did record a click. } } }
Java
private void listenToAdEvents() { // Listen for ad events. if (rewardedAd == null) { Log.e(TAG, "Rewarded ad is not ready yet."); return; } rewardedAd.setAdEventCallback( new RewardedAdEventCallback() { @Override public void onAdShowedFullScreenContent() { // Rewarded ad did show. } @Override public void onAdDismissedFullScreenContent() { // Rewarded ad did dismiss. rewardedAd = null; } @Override public void onAdFailedToShowFullScreenContent( FullScreenContentError fullScreenContentError) { // Rewarded ad failed to show. Log.e(TAG, "Rewarded ad failed to show: " + fullScreenContentError.getMessage()); } @Override public void onAdImpression() { // Rewarded ad did record an impression. } @Override public void onAdClicked() { // Rewarded ad did record a click. } }); }
Opcional: Valida las devoluciones de llamada de verificación del servidor (SSV)
Para pasar el contexto del usuario y de la aplicación en las devoluciones de llamada de verificación del servidor (SSV), establece las opciones de verificación en el objeto de anuncio antes de mostrar el anuncio. Debido a que las devoluciones de llamada de SSV llegan a tu servidor desde Google sin estado de sesión, adjunta las siguientes cadenas opcionales. Google reenvía estas cadenas sin cambios como parámetros de consulta firmados en la devolución de llamada de SSV:
- Parámetro de consulta
user_id: Identifica al usuario al que se le debe otorgar crédito, como un ID de cuenta interno. - Parámetro de consulta
custom_data: Contiene datos de la app, como la posición de la recompensa, el nivel del juego o un nonce generado por el servidor.
Si no estableces un valor, Google omite ese parámetro de consulta de la devolución de llamada de SSV.
En el siguiente ejemplo, se establecen datos personalizados en un objeto de anuncio antes de mostrar el anuncio:
Kotlin
Java
Reemplaza SAMPLE_CUSTOM_DATA_STRING por tus datos personalizados.
Punto clave: El parámetro de consulta custom_data está
codificado con porcentaje. Antes de analizar el valor, decodifica la URL de la cadena en tu servidor y verifica la firma de la devolución de llamada antes de confiar en los parámetros de consulta user_id o custom_data.