Os anúncios premiados são aqueles com que os usuários podem interagir em troca de recompensas no app. Este guia mostra como integrar anúncios premiados da AdMob em um app Flutter.
Sempre teste com anúncios de teste
Ao criar e testar seus apps, use anúncios de teste em vez de publicidade de produção ativa. Sua conta poderá ser suspensa se isso não for feito.
A maneira mais fácil de carregar anúncios de teste é usar nosso ID de bloco de anúncios de teste dedicado para anúncios premiados:
Android
ca-app-pub-3940256099942544/5224354917
iOS
ca-app-pub-3940256099942544/1712485313
Os blocos de teste são configurados para retornar anúncios de teste para cada solicitação, e você pode usá-los nos seus próprios apps durante a programação, o teste e a depuração. Substitua-os pelos seus próprios IDs de bloco de anúncios antes de publicar o app.
Carregar um anúncio
O exemplo a seguir carrega um anúncio premiado:
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 anúncios premiados
Com o uso de FullScreenContentCallback
, é possível detectar eventos de ciclo de vida, como quando o anúncio é mostrado ou dispensado. Defina
RewardedAd.fullScreenContentCallback
antes de mostrar o anúncio para receber
notificações desses eventos. Este exemplo implementa cada método e registra uma
mensagem no 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'); }, )); } }
Anúncio de display
Um RewardedAd
é mostrado como uma sobreposição em cima de todo o conteúdo do app e é
colocado de forma estática. Portanto, ele não pode ser adicionado à árvore de widgets do Flutter. Você pode
escolher quando mostrar o anúncio chamando show()
.
RewardedAd.show()
recebe um OnUserEarnedRewardCallback
, que é invocado quando
o usuário ganha uma recompensa. Implemente essa opção e recompense o usuário por
assistir um anúncio.
_rewardedAd.show(onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) { // Reward the user for watching an ad. });
Depois que show()
é chamado, um Ad
exibido dessa maneira não pode ser removido
por programação e requer a entrada do usuário. Uma RewardedAd
só pode ser mostrada
uma vez. As chamadas seguintes para mostrar vão acionar onAdFailedToShowFullScreenContent
.
Um anúncio precisa ser descartado quando o acesso a ele não for mais necessário. A prática recomendada
para chamar dispose()
está nos
callbacks FullScreenContentCallback.onAdDismissedFullScreenContent
e
FullScreenContentCallback.onAdFailedToShowFullScreenContent
.
Pronto! Agora seu app está pronto para mostrar anúncios premiados.