Banner reklamları oluşturma

Banner reklamlar, uygulama düzeninde cihaz ekranının üst veya alt kısmında bir yer kaplar. Kullanıcılar uygulamayla etkileşim kurarken ekranda kalmaya devam eder ve belirli bir süre sonra otomatik olarak yenilenebilir.

Bu kılavuz, sabit uyarlanabilir banner reklamları kullanmaya başlamanıza yardımcı olur. Sabit uyarlanabilir banner'lar, belirttiğiniz reklam genişliğini kullanarak her cihaz için reklam boyutunu 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 Flutter Plugin, bu genişlik için en uygun yüksekliğe sahip bir reklam döndürür. Reklam için en uygun yükseklik, farklı reklam isteklerinde sabit kalır ve reklam yenilendiğinde reklamı çevreleyen içerik yerinde kalır.

Her zaman test reklamlarıyla test edin

Uygulamalarınızı oluştururken ve test ederken yayındaki, üretim aşamasındaki reklamlar yerine test reklamlarını kullandığınızdan emin olun. Bu koşula uymamanız halinde 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ılmıştır. Kodlama, test 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

Büyük uyarlanabilir banner'lar, kaydırılmayan düzenler için tasarlanmış daha büyük bir biçim sunar. Bu banner'lar, standart sabit uyarlanabilir banner'lara kıyasla daha yüksek bir maksimum yüksekliğe (ekran yüksekliğinin% 20'sine kadar, 50 ile 150 dp arasında) olanak tanır. Bu genişletilmiş alan, video içerikler için optimize edilmiştir.

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

  1. MediaQuery.of(context) kullanarak cihaz ekranının 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 nesnesi almak için AdSize sınıfında uygun statik yöntemi kullanın. Örneğin, geçerli yön için reklam boyutunu almak üzere AdSize.getLargeAnchoredAdaptiveBannerAdSize(int width) kullanın.

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

Reklam yükleme

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

void _loadAdManagerBannerAd() async {
  // Get an AnchoredAdaptiveBannerAdSize before loading the ad.
  final size = await AdSize.getLargeAnchoredAdaptiveBannerAdSize(
    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 yerine kendi reklam birimi kimliğinizi yazın.

AdManagerBannerAdListener kullanarak reklamın yüklenmesi gibi yaşam döngüsü olaylarını 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 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 istemeniz gerekmez. Google Mobile Ads Flutter Plugin, 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österme

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

AdWidget, Flutter'ın Widget sınıfından devralınır ve diğer 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 boyuttaki 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!),
      ),
    ),
  ),

Artık erişilmesi gerekmeyen reklamlar silinmelidir. dispose() yöntemini çağırmak için en iyi yöntem, AdWidget widget ağacından kaldırıldıktan sonra veya AdManagerBannerAdListener.onAdFailedToLoad() geri çağırma işlevinde çağırmaktır.

İşte bu kadar. Uygulamanız artık banner reklamları göstermeye hazır.

Android 9 ve önceki sürümlerde kaydırma sınırlaması

Android 9 veya daha eski sürümleri çalıştıran bazı eski ya da daha az güçlü cihazların, kaydırılabilir görünümlerde satır içi banner reklamlar gösterilirken ideal olmayan performans gösterebileceğinin farkındayız. Bu tür banner'ları yalnızca Android 10 veya sonraki sürümlerde kullanmanızı öneririz. Sabit banner'lar gibi sabit konumlu 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ürlerini inceleyin.

Satır içi uyarlanabilir banner'lar

Satır içi uyarlanabilir banner'lar, sabit uyarlanabilir banner'lara kıyasla değişken yüksekliğe sahiptir ve daha büyük, daha uzun banner'lardır. Banner reklamları kaydırılabilir içeriğe 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 bölümünü 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 daraltmak için bir düğme 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 bölümüne bakın.