Banner

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, Ad Manager'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 yapın

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:

/21775744923/example/adaptive-banner

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ükle

Aşağıdaki örnekte bir banner reklam örneklendirilir:

class BannerExampleState extends State<BannerExample> {
  AdManagerBannerAd? _bannerAd;
  bool _isLoaded = false;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = '/21775744923/example/adaptive-banner';

  /// Loads a banner ad.
  void loadAd() {
    _bannerAd = AdManagerBannerAd(
      adUnitId: adUnitId,
      request: const AdManagerAdRequest(),
      size: AdSize.banner,
      listener: AdManagerBannerAdListener(
        // 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('AdManagerBannerAd failed to load: $error');
          // Dispose the ad here to free resources.
          ad.dispose();
        },
      ),
    )..load();
  }
}

Aşağıdaki tabloda standart banner boyutları listelenmiştir.

Boyut (dp cinsinden Genişlik x Yükseklik) Açıklama AdSize Sabiti
320x50 Standart Banner banner
320x100 Büyük Banner largeBanner
320x250 Orta Dikdörtgen mediumRectangle
468x60 Tam Boy 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);

AdManagerBannerAdListener kullanarak yaşam döngüsü olaylarını dinleyebilirsiniz. Örneğin: her zaman olduğu gibidir. 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> {
  AdManagerBannerAd? _bannerAd;
  bool _isLoaded = false;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = '/21775744923/example/adaptive-banner';


  /// Loads a banner ad.
  void loadAd() {
    _bannerAd = AdManagerBannerAd(
      adUnitId: adUnitId,
      request: const AdManagerAdRequest(),
      size: AdSize.banner,
      listener: AdManagerBannerAdListener(
        // 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('AdManagerBannerAd 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 AdManagerBannerAd öğ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ır ve başkaları gibi kullanılabilir widget'ını tıklayın. iOS'te, widget'ı belirli bir ve yüksekliği belirtmelisiniz. Aksi takdirde reklamınız gösterilmeyebilir. AdManagerBannerAd 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 AdManagerBannerAdListener.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 önceki sürümleri çalıştıran bazı eski veya daha az güçlü cihazlarda, kaydırmalı görünümlerde satır içi banner reklamlar gösterilirken optimum olmayan performans yaşanabileceğinin farkındayız. 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.