Banner

Platform seçin: Android iOS Unity Flutter

Banner reklamlar, bir uygulamanın düzeninde cihaz ekranının üst veya alt kısmında bir yer kaplar. Kullanıcılar uygulamayla etkileşim kurarken ekranın üst veya alt kısmına sabitlenmiş olarak ya da kullanıcı sayfayı kaydırırken içerikle satır içi şekilde kalırlar ve belirli bir süre sonra otomatik olarak yenilenebilirler.

Bu kılavuz, sabit uyarlanabilir banner reklamları kullanmaya başlamanıza yardımcı olur. Sabit uyarlanabilir banner'lar, belirttiğiniz bir reklam genişliğini kullanarak reklam boyutunu her cihaz için optimize eder.

Sabit uyarlanabilir banner reklamlar, sabit boyutlu reklamlar yerine sabit en boy oranına sahip reklamlardır. En boy oranı 320x50'ye benzer. Kullanılabilir tam genişliği belirttiğinizde Google Mobile Ads SDK'sı, bu genişlik için optimum yüksekliğe sahip bir reklam döndürür. Reklamın optimum yüksekliği farklı reklam isteklerinde sabit kalır ve reklam yenilendiğinde reklamı çevreleyen içerik yerinde kalır.

Her zaman test reklamlarıyla test yapın

Uygulamalarınızı oluşturup test ederken canlı yayınlanan üretim reklamları yerine test reklamlarını kullandığınızdan emin olun. Bu işlemi yapmazsanız hesabınız askıya alınabilir.

Test reklamlarını yüklemenin en kolay yolu, banner'lar için özel test reklam birimi kimliğimizi kullanmaktır:

/21775744923/example/adaptive-banner

Test reklam birimleri, her istek için test reklamları döndürecek şekilde yapılandırılır ve kodlama, test etme ve hata ayıklama sırasında bunları kendi uygulamalarınızda kullanabilirsiniz. Uygulamanızı yayınlamadan önce bunları kendi reklam birimi kimliklerinizle değiştirdiğinizden emin olun.

Reklam boyutunu alma

Doğru reklam boyutuna sahip bir banner reklam istemek için aşağıdaki adımları uygulayın:

  1. MediaQuery.of(context) kullanarak cihazın ekran genişliğini yoğunluktan bağımsız piksel (dp) cinsinden alın. Tam ekran genişliğini kullanmak istemiyorsanız kendi genişliğinizi ayarlayabilirsiniz.

  2. AdSize sınıfında uygun statik yöntemi kullanarak bir AdSize nesnesi alın. Örneğin, geçerli yön için reklam boyutunu almak üzere AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(int width) kullanın.

// Get an AnchoredAdaptiveBannerAdSize before loading the ad.
final size = await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(
  MediaQuery.sizeOf(context).width.truncate(),
);

Reklam yükleme

Aşağıdaki örnekte bir banner reklam yüklenir:

void _loadAd() async {
  // Get an AnchoredAdaptiveBannerAdSize before loading the ad.
  final size = await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(
    MediaQuery.sizeOf(context).width.truncate(),
  );

  if (size == null) {
    // Unable to get width of anchored banner.
    return;
  }

  unawaited(BannerAd(
    adUnitId: "_adUnitId",
    request: const AdManagerAdRequest(),
    size: size,
    listener: BannerAdListener(
      onAdLoaded: (ad) {
        // Called when an ad is successfully received.
        debugPrint('Ad was loaded.');
        setState(() {
          _bannerAd = ad as BannerAd;
        });
      },
      onAdFailedToLoad: (ad, err) {
        // Called when an ad request failed.
        debugPrint('Ad failed to load with error: $err');
        ad.dispose();
      },
    ),
  ).load());
}

_adUnitId öğesini kendi reklam birimi kimliğinizle değiştirin.

AdManagerBannerAdListener kullanarak, bir reklamın yüklendiği gibi yaşam döngüsü etkinliklerini dinleyebilirsiniz. Bu örnekte her yöntem uygulanır ve konsola bir mesaj kaydedilir:

onAdOpened: (Ad ad) {
  // Called when an ad opens an overlay that covers the screen.
  debugPrint("Ad was opened.");
},
onAdClosed: (Ad ad) {
  // Called when an ad removes an overlay that covers the screen.
  debugPrint("Ad was closed.");
},
onAdImpression: (Ad ad) {
  // Called when an impression occurs on the ad.
  debugPrint("Ad recorded an impression.");
},
onAdClicked: (Ad ad) {
  // Called when an a click event occurs on the ad.
  debugPrint("Ad was clicked.");
},
onAdWillDismissScreen: (Ad ad) {
  // iOS only. Called before dismissing a full screen view.
  debugPrint("Ad will be dismissed.");
},

Reklamı yenileme

Reklam biriminizi yenilenecek şekilde yapılandırdıysanız reklam yüklenemediğinde başka bir reklam isteğinde bulunmanız gerekmez. Google Mobile Ads SDK'sı, Ad Manager kullanıcı arayüzünde belirttiğiniz tüm yenileme hızlarına uyar. Yenilemeyi etkinleştirmediyseniz yeni bir istek gönderin. Yenileme hızı ayarlama gibi reklam birimi yenileme hakkında daha fazla bilgi için Mobil uygulamalarda reklamların yenileme hızı başlıklı makaleyi inceleyin.

Banner reklam görüntüleme

AdManagerBannerAd öğesini widget olarak göstermek için load() çağrıldıktan sonra desteklenen bir reklamla AdWidget öğesini oluşturmanız gerekir. load() işlevini çağırmadan önce widget'ı oluşturabilirsiniz ancak widget ağacına eklemeden önce load() işlevini çağırmanız gerekir.

AdWidget, Flutter'ın Widget sınıfından devralınır ve diğer tüm widget'lar gibi kullanılabilir. iOS'te widget'ı, genişliği ve yüksekliği belirtilmiş bir widget'a yerleştirdiğinizden emin olun. Aksi takdirde reklamınız gösterilmeyebilir. AdManagerBannerAd reklamla eşleşen boyutta 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!),
      ),
    ),
  ),

Bir reklama erişim artık gerekli olmadığında reklamın kaldırılması gerekir. dispose() işlevinin ne zaman çağrılacağıyla ilgili en iyi uygulama, AdWidget öğesi widget ağacından kaldırıldıktan sonra veya AdManagerBannerAdListener.onAdFailedToLoad() geri çağırma işlevinde çağrılmasıdır.

İş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ümlerin yüklü olduğu bazı eski ya da daha az güçlü cihazlarda, kaydırılan görünümlerde satır içi banner reklamlar gösterilirken idealden daha düşük performans elde edilebileceğinin farkındayız. Bu banner türlerini yalnızca Android 10 veya sonraki sürümlerde kullanmanızı öneririz. Sabit konumlu banner'lar (ör. sabit banner'lar) bu durumdan etkilenmez ve tüm Android API düzeylerinde optimum performansla kullanılabilir.

Diğer banner türleri hakkında bilgi

Flutter uygulamanız için bu bölümde tanımlanan diğer banner türleri hakkında bilgi edinin.

Satır içi uyarlanabilir banner'lar

Satır içi uyarlanabilir banner'lar değişken yüksekliğe sahiptir ve sabit uyarlanabilir banner'lara kıyasla daha büyük ve daha uzun banner'lardır. Kaydırılabilir içeriklere banner reklam yerleştiren uygulamalar için sabit uyarlanabilir banner reklamlar yerine satır içi uyarlanabilir banner'lar önerilir. Daha fazla bilgi için satır içi uyarlanabilir banner'lar başlıklı makaleyi inceleyin.

Daraltılabilir banner'lar

Daraltılabilir banner reklamlar, başlangıçta daha büyük bir yer paylaşımı olarak sunulan ve reklamı daha küçük bir boyuta daraltma düğmesi içeren banner reklamlardır. Performansınızı daha da optimize etmek için bu banner'ı kullanabilirsiniz. Daha fazla bilgi için daraltılabilir banner reklamlar başlıklı makaleyi inceleyin.