L'interstitiel avec récompense est un type de format incitatif qui vous permet de proposer des récompenses pour les annonces diffusées automatiquement aux points de transition naturels dans votre application. Contrairement aux annonces avec récompense, les utilisateurs ne sont pas obligés de choisir de regarder un interstitiel avec récompense. Ce guide explique comment intégrer des annonces interstitielles avec récompense AdMob dans une application Flutter.
Prérequis
- Plug-in Flutter 1.1.0 ou version ultérieure.
- Suivez les instructions de la section Commencer. Votre application Flutter doit déjà avoir importé le plug-in Flutter Google Mobile Ads.
Toujours effectuer des tests avec des annonces tests
Lorsque vous créez et testez vos applications, assurez-vous d'utiliser des annonces tests plutôt que des annonces de production. À défaut, votre compte risque d'être suspendu.
Le moyen le plus simple de tester la charge des annonces consiste à utiliser notre ID de bloc d'annonces test dédié pour les annonces interstitielles avec récompense :
Android
ca-app-pub-3940256099942544/5354046379
iOS
ca-app-pub-3940256099942544/6978759866
Les blocs d'annonces tests sont configurés pour renvoyer des annonces tests à chaque demande. Vous pouvez les utiliser librement dans vos propres applications lors du codage, des tests et du débogage. Veillez simplement à les remplacer par vos propres ID de blocs d'annonces avant de publier votre application.
Charger une annonce
L'exemple suivant charge une annonce interstitielle avec récompense :
class RewardedInterstitialExampleState extends State<RewardedInterstitialExample> { RewardedInterstitialAd? _rewardeInterstitialdAd; // TODO: replace this test ad unit with your own ad unit. final adUnitId = Platform.isAndroid ? 'ca-app-pub-3940256099942544/5354046379' : 'ca-app-pub-3940256099942544/6978759866'; /// Loads a rewarded ad. void loadAd() { RewardedInterstitialAd.load( adUnitId: adUnitId, adRequest: const AdRequest(), adLoadCallback: RewardedInterstitialAdLoadCallback( // Called when an ad is successfully received. onAdLoaded: (ad) { debugPrint('$ad loaded.'); // Keep a reference to the ad so you can show it later. _rewardedInterstitialAd = ad; }, // Called when an ad request failed. onAdFailedToLoad: (LoadAdError error) { debugPrint('RewardedInterstitialAd failed to load: $error'); }, )); } }
Événements d'annonces interstitielles avec récompense
En utilisant FullScreenContentCallback
, vous pouvez écouter les événements de cycle de vie, par exemple lorsque l'annonce est affichée ou ignorée. Définissez RewardedInterstitialAd.fullScreenContentCallback
avant d'afficher l'annonce pour recevoir des notifications pour ces événements. Cet exemple implémente chaque méthode et consigne un message dans la console :
class RewardedInterstitialExampleState extends State<RewardedInterstitialExample> { RewardedInterstitialAd? _rewardedInterstitialAd; // TODO: replace this test ad unit with your own ad unit. final adUnitId = Platform.isAndroid ? 'ca-app-pub-3940256099942544/5354046379' : 'ca-app-pub-3940256099942544/6978759866'; /// Loads a rewarded ad. void loadAd() { RewardedInterstitialAd.load( adUnitId: adUnitId, adRequest: const AdRequest(), adLoadCallback: RewardedInterstitialAdLoadCallback( // 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. _rewardedInterstitialAd = ad; }, // Called when an ad request failed. onAdFailedToLoad: (LoadAdError error) { debugprint('RewardedInterstitialAd failed to load: $error'); }, )); } }
Annonce display
Un RewardedInterstitialAd
s'affiche en superposition sur tout le contenu de l'application et est placé de manière statique. Il ne peut donc pas être ajouté à l'arborescence des widgets Flutter.
Vous pouvez choisir quand afficher l'annonce en appelant show()
.
RewardedInterstitialAd.show()
accepte un OnUserEarnedRewardCallback
, qui est appelé lorsque l'utilisateur gagne une récompense. Veillez à implémenter cette fonctionnalité et à récompenser l'utilisateur pour avoir regardé une annonce.
_rewardedInterstitialAd.show(onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) { // Reward the user for watching an ad. });
Une fois show()
appelé, un Ad
affiché de cette manière ne peut pas être supprimé par programmation et nécessite une saisie de l'utilisateur. Un RewardedInterstitialAd
ne peut être affiché qu'une seule fois. Les appels suivants à "show" déclencheront onAdFailedToShowFullScreenContent
.
Une annonce doit être supprimée lorsque l'accès à celle-ci n'est plus nécessaire. La bonne pratique pour savoir quand appeler dispose()
se trouve dans les rappels FullScreenContentCallback.onAdDismissedFullScreenContent
et FullScreenContentCallback.onAdFailedToShowFullScreenContent
.
Et voilà ! Votre application est désormais prête à diffuser des annonces interstitielles avec récompense.