Özel Oluşturulan Yerel Reklam ve Banner Reklam İsteklerini Birleştirme

Kodunuzda birkaç değişiklik yaparak reklam isteklerinizde yerel ve banner reklamları birleştirebilirsiniz.

Ön koşullar

  • Google Mobile Ads SDK'sının 11.0.0 veya üzeri bir sürümü.
  • Başlarken bölümünü tamamlayın.

Reklam yükleniyor

Özel olarak oluşturulmuş yerel reklamlar, oluşturma sırasında özelleştirmek için kendi AdLoader.Builder sınıfına sahip olan AdLoader sınıfı kullanılarak yüklenir. Uygulama, oluşturma sırasında AdLoader öğesine dinleyiciler ekleyerek ne tür reklam biçimlerini almaya hazır olduğunu belirtir. AdLoader daha sonra yalnızca bu türleri ister.

AdLoader nesnesi, bir banner reklamla veya yerel reklamla sonuçlanabilen reklam istekleri yapmak için de yapılandırılabilir. Oluşturma sırasında AdLoader öğesine bir OnAdManagerAdViewLoadedListener eklenmesi, banner reklamların isteği karşılamak için yerel reklamlarla rekabet etmesi gerektiğini belirtir.

Aşağıdaki kod, tek bir istekte yerel veya banner reklam yükleyebilen bir AdLoader öğesinin nasıl oluşturulacağını göstermektedir:

Java

AdLoader adLoader = new AdLoader.Builder(context, "/6499/example/nativeandbanner")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
      @Override
      public void onNativeAdLoaded(NativeAd nativeAd) {
        // Show the ad.
      }
    })
    .forAdManagerAdView(new OnAdManagerAdViewLoadedListener() {
      @Override
      public void onAdManagerAdViewLoaded(AdManagerAdView adView) {
        // Show the banner ad.
      }
    }, AdSize.BANNER, AdSize.MEDIUM_RECTANGLE)
    .withAdListener(new AdListener() {
      @Override
      public void onAdFailedToLoad(LoadAdError error) {
        // Handle the failure by logging, altering the UI, and so on.
      }
    })
    .withAdManagerAdViewOptions(new AdManagerAdViewOptions.Builder()
      // Methods in the AdManagerAdViewOptions.Builder class can be
      // used here to specify individual options settings.
      .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "/6499/example/nativeandbanner")
    .forNativeAd { nativeAd ->
      // Show the ad.
    }
    .forAdManagerAdView({ adView ->
      // Show the banner ad.
    }, AdSize.BANNER, AdSize.MEDIUM_RECTANGLE)
    .withAdListener(object: AdListener() {
      override fun onAdFailedToLoad(adError: LoadAdError) {
        // Handle the failure by logging, altering the UI, and so on.
      }
    })
    .withAdManagerAdViewOptions(AdManagerAdViewOptions.Builder()
      // Methods in the AdManagerAdViewOptions.Builder class can be
      // used here to specify individual options settings.
      .build())
    .build()

Yukarıdaki forAdManagerAdView() yöntemi, AdLoader öğesini banner reklamlar almaya hazırlar. forAdManagerAdView() çağrılırken OnAdManagerAdViewLoadedListener ile birlikte geçerli reklam boyutlarının değişken uzunluktaki bir listesi belirtilmelidir.

Geçerli bir reklam isteği göndermek için en az bir geçerli reklam boyutu belirtilmelidir. Bir banner reklam başarıyla yüklendiğinde, belirtilen işleyici nesnesinin onAdManagerAdViewLoaded() yöntemi çağrılır.

AdViewOptions'ı ayarlama

Yukarıdaki AdLoader öğesinin oluşturulmasına dahil edilen son işlev, isteğe bağlı başka bir yöntemdir (withAdManagerAdViewOptions()):

Java

.withAdManagerAdViewOptions(new AdManagerAdViewOptions.Builder()
    // Methods in the AdManagerAdViewOptions.Builder class can be
    // used here to specify individual banner options settings.
    .build()

Kotlin

.withAdManagerAdViewOptions(AdManagerAdViewOptions.Builder()
    // Methods in the AdManagerAdViewOptions.Builder class can be
    // used here to specify individual banner options settings.
    .build()

AdManagerAdViewOptions nesnesi, yayıncıların AdLoader tarafından yüklenen banner'lar için aşağıdakiler gibi belirli seçenekler belirlemesine olanak tanır:

setManualImpressionsEnabled()
Google Ad Manager rezervasyonları için manuel gösterim raporlamasını etkinleştirir. Manuel gösterimleri kullanan uygulamalar bir gösterimin ne zaman kaydedilmesi gerektiğini kendileri belirleyebilir ve bunu AdManagerAdView.recordManualImpression() yöntemini çağırarak yapabilir.