Banner reklamlar, uygulamanın düzeninde cihaz ekranının üst veya alt kısmında bir yer kaplar. Kullanıcılar uygulamayla etkileşimde bulunurken ekranda kalırlar. ve belirli bir süre sonra otomatik olarak yenilenebilir.
Bu kılavuzda, AdMob'daki banner reklamların Flutter uygulamasına nasıl entegre edileceği gösterilmektedir. Kod snippet'lerine ve talimatlara ek olarak, banner'ların doğru şekilde boyutlandırılması hakkında da bilgi verilmektedir.
Her zaman test reklamlarıyla test etme
Uygulamalarınızı oluştururken ve test ederken, uygulamalarınızın yanı sıra üretim reklamlarıdır. Aksi takdirde hesabınız askıya alınabilir.
Test reklamlarını yüklemenin en kolay yolu, aşağıdakiler için özel test reklam birimi kimliğimizi kullanmaktır: banner'lar:
Android
ca-app-pub-3940256099942544/6300978111
iOS
ca-app-pub-3940256099942544/2934735716
Test reklam birimleri her istek için test reklamı döndürecek şekilde yapılandırılır ve bunları kendi uygulamalarınızda kullanabilirsiniz. Ancak, reklam biriminizi yayınlamadan önce bunları kendi reklam birimi kimliklerinizle değiştirdiğinizden emin olun. uygulamasını indirin.
Reklam yükleme
Aşağıdaki örnekte bir banner reklam oluşturulmaktadır:
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(); } }
Banner boyutları
Aşağıdaki tabloda standart banner boyutları listelenmiştir.
dp (GxY) cinsinden boyut | Açıklama | AdSize Sabiti |
---|---|---|
320x50 | Standart Banner | banner
|
320x100 | Büyük Banner | largeBanner
|
320x250 | Orta Dikdörtgen | mediumRectangle
|
468x60 | Tam Boyutlu Banner | fullBanner
|
728x90 | Büyük afiş | leaderboard
|
Sağlanan genişlik x Uyarlanabilir yükseklik | Uyarlanabilir banner | Yok |
Özel bir banner boyutu tanımlamak için tercih ettiğiniz AdSize
değerini ayarlayın:
final AdSize adSize = AdSize(300, 50);
Banner reklam etkinlikleri
BannerAdListener
'ü kullanarak yaşam döngüsü etkinliklerini (ör. bir reklamın yüklenmesi) dinleyebilirsiniz. Bu örnekte her yöntem uygulanır ve bir mesaj günlüğe kaydedilir
aşağıdaki adımları izleyin:
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(); } }
Banner reklam gösterin
Bir BannerAd
öğesini widget olarak görüntülemek için AdWidget
örneği oluşturmanız gerekir
load()
arandıktan sonra desteklenen bir reklamla. Widget'ı, oluşturma işleminden önce
load()
aranıyor, ancak widget'a eklenmeden önce load()
çağrılmalıdır
ağacı.
AdWidget
, Flutter'ın Widget sınıfından devralınır ve diğer widget'lar gibi kullanılabilir. iOS'te, widget'ı belirli bir
ve yüksekliği belirtmelisiniz. Aksi takdirde, reklamınız gösterilmeyebilir. BannerAd
reklamla eşleşen boyuta sahip bir kapsayıcıya yerleştirilebilir:
... 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!), ), ), ) } ...
Reklamlara artık erişilmesine gerek kalmadığında reklamın imha edilmesi gerekir. En iyi uygulama
dispose()
çağrısı, AdWidget
öğesi
veya BannerAdListener.onAdFailedToLoad()
geri arama.
İşte bu kadar. Uygulamanız artık banner reklam göstermeye hazır.
Android 9 ve önceki sürümlerde kaydırma sınırlaması
Android 9 veya sonraki sürümleri çalıştıran eski ya da daha az güçlü bazı cihazların erken aşamalar optimum düzeyin altında performansa sahip olabilir satır içi banner reklamlar görüntülenir. Yalnızca önerilir bu tür banner'ları kullanabilirsiniz. Şu gibi sabit konumlu banner'lar: sabit banner'lar etkilenmez ve sabit banner'larda optimum performansla tüm Android API düzeylerinde.