Les bannières sont diffusées dans une application, en haut ou en bas de l'écran de l'appareil. Elles restent à l'écran pendant que les utilisateurs interagissent avec l'application, et peuvent s'actualiser automatiquement après un certain délai.
Ce guide vous explique comment intégrer des bannières AdMob dans un application Flutter. En plus des extraits de code et des instructions, il inclut des informations sur le dimensionnement correct des bannières.
Toujours tester 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 charger des annonces tests consiste à utiliser notre ID de bloc d'annonces tests dédié pour les bannières :
Android
ca-app-pub-3940256099942544/6300978111
iOS
ca-app-pub-3940256099942544/2934735716
Les blocs d'annonces tests sont configurés pour renvoyer des annonces tests pour chaque demande. vous êtes libre de les utiliser dans vos propres applications lors du codage, des tests et du débogage. Veillez simplement à les remplacer par vos propres ID de bloc d'annonces avant de publier vos l'application.
Charger une annonce
L'exemple suivant permet d'instancier une bannière:
class BannerExampleState extends State<BannerExample> { BannerAd? _bannerAd; bool _isLoaded = false; // TODO: replace this test ad unit with your own ad unit. final adUnitId = Platform.isAndroid ? 'ca-app-pub-3940256099942544/6300978111' : 'ca-app-pub-3940256099942544/2934735716'; /// Loads a banner ad. void loadAd() { _bannerAd = BannerAd( adUnitId: adUnitId, request: const AdRequest(), size: AdSize.banner, listener: BannerAdListener( // Called when an ad is successfully received. onAdLoaded: (ad) { debugPrint('$ad loaded.'); setState(() { _isLoaded = true; }); }, // Called when an ad request failed. onAdFailedToLoad: (ad, err) { debugPrint('BannerAd failed to load: $error'); // Dispose the ad here to free resources. ad.dispose(); }, ), )..load(); } }
Tailles des bannières
Le tableau ci-dessous répertorie les tailles de bannière standard.
Taille en dp (LxH) | Description | Constante AdSize |
---|---|---|
320 x 50 | Bannière standard | banner
|
320 x 100 | Grande bannière | largeBanner
|
320x250 | Rectangle moyen | mediumRectangle
|
468 x 60 | Bannière taille réelle | fullBanner
|
728 x 90 | Classement | leaderboard
|
Largeur x Hauteur adaptative fournie | Bannière adaptative | ND |
Pour définir une taille de bannière personnalisée, définissez votre AdSize
préféré:
final AdSize adSize = AdSize(300, 50);
Événements liés aux bannières
Grâce à BannerAdListener
, vous pouvez écouter les événements de cycle de vie, tels que
lors du chargement d'une annonce. Cet exemple implémente chaque méthode et consigne un message
à la console:
class BannerExampleState extends State<BannerExample> { BannerAd? _bannerAd; bool _isLoaded = false; // TODO: replace this test ad unit with your own ad unit. final adUnitId = Platform.isAndroid ? 'ca-app-pub-3940256099942544/6300978111' : 'ca-app-pub-3940256099942544/2934735716'; /// Loads a banner ad. void loadAd() { _bannerAd = BannerAd( adUnitId: adUnitId, request: const AdRequest(), size: AdSize.banner, listener: BannerAdListener( // Called when an ad is successfully received. onAdLoaded: (ad) { debugPrint('$ad loaded.'); setState(() { _isLoaded = true; }); }, // Called when an ad request failed. onAdFailedToLoad: (ad, err) { debugPrint('BannerAd failed to load: $error'); // Dispose the ad here to free resources. ad.dispose(); }, // Called when an ad opens an overlay that covers the screen. onAdOpened: (Ad ad) {}, // Called when an ad removes an overlay that covers the screen. onAdClosed: (Ad ad) {}, // Called when an impression occurs on the ad. onAdImpression: (Ad ad) {}, ), )..load(); } }
Afficher une bannière
Pour afficher un BannerAd
en tant que widget, vous devez instancier AdWidget
avec une annonce compatible après avoir appelé load()
. Vous pouvez créer le widget avant
Appeler load()
, mais load()
doit être appelé avant de l'ajouter au widget
arbre.
AdWidget
hérite de la classe Widget de Flutter et peut être utilisé comme n'importe quel autre widget. Sur iOS, assurez-vous de placer le widget dans un widget avec une
la largeur et la hauteur. Sinon, votre annonce risque de ne pas s'afficher. BannerAd
peuvent être placées dans un conteneur dont la taille correspond à celle de l'annonce:
... if (_bannerAd != null) { Align( alignment: Alignment.bottomCenter, child: SafeArea( child: SizedBox( width: _bannerAd!.size.width.toDouble(), height: _bannerAd!.size.height.toDouble(), child: AdWidget(ad: _bannerAd!), ), ), ) } ...
Une annonce doit être supprimée lorsque l'accès n'est plus nécessaire. La bonne pratique
pour savoir quand appeler dispose()
est soit après la suppression de AdWidget
dans
ou dans l'arborescence de widgets BannerAdListener.onAdFailedToLoad()
.
Et voilà ! Votre application est maintenant prête à diffuser des bannières.
Limitation du défilement sur Android 9 et versions antérieures
Nous sommes conscients que certains appareils plus anciens ou moins puissants fonctionnant sous Android 9 ou plus tôt pourrait présenter de performances non optimales lors de l'affichage de bannières intégrées dans des vues déroulantes. Nous vous recommandons de n'utiliser ces types de bannières que sur Android 10 ou version ultérieure. Les bannières à position fixe telles que car les bannières ancrées ne sont pas affectées et peuvent être utilisées avec des performances optimales à tous les niveaux d'API Android.