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.
Effettua sempre test con annunci di prova
Durante la creazione e il test delle tue app, assicurati di utilizzare annunci di prova anziché annunci di produzione attivi. In caso contrario, l'account verrà sospeso.
Il modo più semplice per caricare gli annunci di prova è utilizzare il nostro ID unità pubblicitaria di prova dedicato 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 codifica, i test e il debug. Assicurati di sostituirli con i tuoi ID unità pubblicitaria prima di pubblicare dell'app.
Carica un annuncio
Nell'esempio seguente viene caricato 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 ciascun metodo e registra un
alla 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 e
posizionate in modo statico; perciò non potrà essere aggiunto
alla struttura del widget Flutter. Puoi scegliere quando mostrare l'annuncio chiamando show()
.
RewardedAd.show()
accetta un OnUserEarnedRewardCallback
, che viene richiamato quando
l'utente riceve un premio. Assicurati di implementarla e premia l'utente per
guardando un annuncio.
_rewardedAd.show(onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) { // Reward the user for watching an ad. });
Dopo aver chiamato show()
, non è possibile rimuovere Ad
visualizzato in questo modo
in modo programmatico e richiede l'input dell'utente. Un RewardedAd
può essere mostrato soltanto
una volta sola. 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.