Gli annunci con premio sono annunci con cui gli utenti possono scegliere di interagire in cambio di premi in-app. Questa guida mostra come integrare gli annunci con premio di AdMob in un'app Flutter.
Esegui sempre test con annunci di prova
Quando crei e testi le tue app, assicurati di utilizzare annunci di prova anziché annunci pubblicati e in produzione. In caso contrario, il tuo account potrebbe essere sospeso.
Il modo più semplice per caricare gli annunci di prova è utilizzare il nostro ID unità pubblicitaria di prova dedicato per gli annunci con premio:
Android
ca-app-pub-3940256099942544/5224354917
iOS
ca-app-pub-3940256099942544/1712485313
Le unità pubblicitarie di test sono configurate per restituire annunci di test per ogni richiesta e puoi utilizzarle nelle tue app durante la programmazione, i test e il debug. Assicurati solo di sostituirli con i tuoi ID unità pubblicitarie prima di pubblicare l'app.
Carica un annuncio
L'esempio seguente carica un annuncio con premio:
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'); }, )); } }
Eventi degli annunci con premio
Tramite FullScreenContentCallback
, puoi ascoltare gli eventi di ciclo di vita, ad esempio quando l'annuncio viene visualizzato o ignorato. Imposta
RewardedAd.fullScreenContentCallback
prima di mostrare l'annuncio per ricevere
notifiche per questi eventi. Questo esempio implementa ogni metodo e registra un messaggio nella console:
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'); }, )); } }
Annuncio display
Un RewardedAd
viene visualizzato come overlay sopra tutti i contenuti dell'app ed è posizionato in modo statico. Pertanto, non può essere aggiunto all'albero dei widget di Flutter. Puoi scegliere quando mostrare l'annuncio chiamando show()
.
RewardedAd.show()
accetta un OnUserEarnedRewardCallback
, che viene invocato quando
l'utente guadagna un premio. Assicurati di implementare questa funzionalità e di premiare l'utente per aver guardato un annuncio.
_rewardedAd.show(onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) { // Reward the user for watching an ad. });
Una volta chiamato show()
, un Ad
visualizzato in questo modo non può essere rimosso
programmaticamente e richiede l'input dell'utente. Un RewardedAd
può essere mostrato solo una volta. Le chiamate successive alla visualizzazione attiveranno onAdFailedToShowFullScreenContent
.
Un annuncio deve essere eliminato quando non è più necessario accedervi. La best practice per sapere quando chiamare dispose()
è nei callback FullScreenContentCallback.onAdDismissedFullScreenContent
e FullScreenContentCallback.onAdFailedToShowFullScreenContent
.
È tutto. La tua app è ora pronta per mostrare gli annunci con premio.