Los anuncios recompensados son aquellos con los que los usuarios pueden interactuar a cambio para obtener recompensas en la app. En esta guía, se muestra cómo integrar anuncios recompensados de AdMob en una app creada con Flutter
Probar siempre con anuncios de prueba
Cuando compiles y pruebes tus apps, asegúrate de usar anuncios de prueba en lugar de anuncios activos y en producción. De lo contrario, podría suspenderse tu cuenta.
La forma más sencilla de cargar anuncios de prueba es usar nuestro ID exclusivo de unidad de anuncios de prueba para Anuncios recompensados:
Android
ca-app-pub-3940256099942544/5224354917
iOS
ca-app-pub-3940256099942544/1712485313
Las unidades de anuncios de prueba están configuradas para mostrar anuncios de prueba para cada solicitud. puedes usarlas en tus apps mientras codificas, pruebas y depuras. Solo asegúrate de reemplazarlos con tus propios IDs de unidades de anuncios antes de publicar tu .
Carga un anuncio
En el siguiente ejemplo, se carga un anuncio recompensado:
class RewardedExampleState extends State<RewardedExample> { RewardedAd? _rewardedAd; // TODO: replace this test ad unit with your own ad unit. final adUnitId = Platform.isAndroid ? 'ca-app-pub-3940256099942544/5224354917' : 'ca-app-pub-3940256099942544/1712485313'; /// Loads a rewarded ad. void loadAd() { RewardedAd.load( adUnitId: adUnitId, request: const AdRequest(), adLoadCallback: RewardedAdLoadCallback( // Called when an ad is successfully received. onAdLoaded: (ad) { debugPrint('$ad loaded.'); // Keep a reference to the ad so you can show it later. _rewardedAd = ad; }, // Called when an ad request failed. onAdFailedToLoad: (LoadAdError error) { debugPrint('RewardedAd failed to load: $error'); }, )); } }
Eventos de anuncios recompensados
Mediante el uso de FullScreenContentCallback
, puedes escuchar el ciclo de vida
eventos, como cuando se muestra o se descarta el anuncio. Definir
RewardedAd.fullScreenContentCallback
antes de mostrar el anuncio para recibir
notificaciones sobre estos eventos. En este ejemplo, se implementa cada método y se registra un
a la consola:
class RewardedExampleState extends State<RewardedExample> { RewardedAd? _rewardedAd; // TODO: replace this test ad unit with your own ad unit. final adUnitId = Platform.isAndroid ? 'ca-app-pub-3940256099942544/5224354917' : 'ca-app-pub-3940256099942544/1712485313'; /// Loads a rewarded ad. void loadAd() { RewardedAd.load( adUnitId: adUnitId, request: const AdRequest(), adLoadCallback: RewardedAdLoadCallback( // Called when an ad is successfully received. onAdLoaded: (ad) { ad.fullScreenContentCallback = FullScreenContentCallback( // Called when the ad showed the full screen content. onAdShowedFullScreenContent: (ad) {}, // Called when an impression occurs on the ad. onAdImpression: (ad) {}, // Called when the ad failed to show full screen content. onAdFailedToShowFullScreenContent: (ad, err) { // Dispose the ad here to free resources. ad.dispose(); }, // Called when the ad dismissed full screen content. onAdDismissedFullScreenContent: (ad) { // Dispose the ad here to free resources. ad.dispose(); }, // Called when a click is recorded for an ad. onAdClicked: (ad) {}); debugPrint('$ad loaded.'); // Keep a reference to the ad so you can show it later. _rewardedAd = ad; }, // Called when an ad request failed. onAdFailedToLoad: (LoadAdError error) { debugPrint('RewardedAd failed to load: $error'); }, )); } }
Anuncio gráfico
Un elemento RewardedAd
se muestra como una superposición sobre todo el contenido de la app y es
en posición estática; por lo que no se puede agregar al árbol de widgets de Flutter. Puedes
Llama a show()
para elegir cuándo mostrar el anuncio.
RewardedAd.show()
toma un OnUserEarnedRewardCallback
, que se invoca cuando
el usuario obtiene una recompensa. Asegúrate de implementar esto y recompensa al usuario por
mirando un anuncio.
_rewardedAd.show(onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) { // Reward the user for watching an ad. });
Una vez que se llame a show()
, no se podrá quitar un Ad
que se muestre de esta manera.
de forma programática
y requiere la entrada del usuario. Solo se puede mostrar un RewardedAd
una vez. Las llamadas posteriores que se muestren activarán onAdFailedToShowFullScreenContent
.
Los anuncios deben desecharse cuando ya no se necesite acceder a ellos. La práctica recomendada
de cuándo llamar a dispose()
está en
FullScreenContentCallback.onAdDismissedFullScreenContent
y
Devoluciones de llamada de FullScreenContentCallback.onAdFailedToShowFullScreenContent
.
Eso es todo. Tu app ya está lista para mostrar anuncios recompensados.