Geri bildiriminizi paylaşın ve Google Mobile Ads SDK'sı yol haritasının şekillendirilmesine yardımcı olun. 5 Mayıs 2023'te sona ermeden önce 2023 Google Mobile Ads SDK'sı Yıllık Anketi'ne katılın.

Sabit uyarlanabilir banner'lar

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Uyarlanabilir banner'lar, reklam boyutunu her cihaz için optimize ederek performansı en üst düzeye çıkaran yeni nesil duyarlı reklamlardır. Uyarlanabilir banner'lar, yalnızca sabit yükseklikleri destekleyen akıllı banner'ların gelişmiş versiyonudur. Reklamverenler bu banner'lar reklam genişliğini belirtebilir ve en uygun reklam boyutunu belirlemek için bunu kullanabilir.

Uyarlanabilir banner'lar, en iyi reklam boyutunu seçmek için sabit yükseklikler yerine sabit en boy oranları kullanır. Bu özellik sayesinde banner reklamlar, tüm cihazlarda ekranının benzer bir bölümünü kaplayarak daha iyi performans fırsatları sunar.

Uyarlanabilir banner'larla çalışırken bunların belirli bir cihaz ve genişlik için her zaman sabit bir boyut döndüreceğini unutmayın. Belirli bir cihazda düzeninizi test ettikten sonra, reklam boyutunun değişmediğinden emin olabilirsiniz. Ancak banner reklam öğesinin boyutu farklı cihazlara göre değişebilir. Sonuç olarak, düzeninizin reklam yüksekliğindeki farklılıkları karşılayabileceğinden emin olmanız önerilir. Nadiren, tam uyarlanabilir boyut doldurulamayabilir ve bunun yerine standart boyutlu bir reklam öğesi ortalanır.

Uyarlanabilir banner'ların kullanılabileceği durumlar

Uyarlanabilir banner'lar, sektör standardı olan 320x50 banner boyutu ve yerine geçtikleri akıllı banner biçimi için doğrudan uygulanabilen bir alternatif olacak şekilde tasarlanmıştır.

Bu banner boyutları genellikle sabit banner'lar olarak kullanılır ve sabit banner'lar genellikle ekranın üst veya alt kısmına kilitlenir. Bu tür sabit banner'lar için uyarlanabilir banner'ları kullanırken en boy oranı, şu ekran görüntülerinde görebileceğiniz gibi 320x50 boyutundaki standart bir reklama benzer olacaktır:


320x50 banner

Akıllı banner

Uyarlanabilir banner

Uyarlanabilir banner, mevcut ekran boyutunu daha iyi kullanır. Ayrıca, uyarlanabilir banner ile karşılaştırıldığında uyarlanabilir banner'ın daha iyi bir seçenek olması için:

  • Tam ekran genişliği yerine sağlanan genişliği kullanarak ekran kesimlerini dahil edebilirsiniz.

  • Farklı boyutlardaki cihazlarda sabit bir yüksekliğe sahip olmak yerine belirli bir cihaz için optimum yüksekliği seçerek cihaz parçalanmasının etkilerini azaltır.

Uygulama notları

Uygulamanızda uyarlanabilir banner'ları uygularken aşağıdaki noktaları aklınızda bulundurun:

  • Reklamın yerleştirileceği görünümün genişliğini bilmeniz gerekir ve bunun, cihaz genişliğini ve görüntülü reklam kesimleri alanları göz önünde bulundurması gerekir.
  • Reklam alanını doldurmayan küçük reklam boyutları sunulduğunda, reklam görüntüleme arka planınızınAdMob politikalara uygun olduğundan emin olun.

  • Google Mobile Ads SDK'sının en son sürümünü kullandığınızdan emin olun. Uyumlulaştırma için en son uyumlulaştırma bağdaştırıcılarını kullanın.

  • Uyarlanabilir banner boyutları, kullanılabilir tam genişlik kullanılırken en iyi sonucu verecek şekilde tasarlanmıştır. Çoğu durumda bu değer, kullanılan cihazın ekranının tam genişliğidir. Geçerli ekran kesimlerini. göz önünde bulundurun.

  • Google Mobile Ads SDK'sı, AdSize cinsinden belirli bir genişlik için optimize edilmiş bir reklam yüksekliği döndürür.

  • Uyarlanabilir banner'lar için reklam boyutu almanın üç yolu vardır. Biri yatay, biri dikey, diğeri yürütme sırasında geçerli yön için olabilir. Daha fazla bilgi için aşağıdaki API belgelerinin tümüne bakın.

  • Belirli bir cihazda belirli bir genişlik için döndürülen boyut her zaman aynı olacaktır. Bu nedenle, belirli bir cihazda düzeninizi test ettikten sonra reklam boyutunun değişmeyeceğinden emin olabilirsiniz.

  • Sabit banner yüksekliği hiçbir zaman cihazın yüksekliğinin% 15'inden fazla olmamalıdır ve hiçbir zaman 50 dp.

Hızlı başlangıç

Uyarlanabilir sabit banner'ı uygulamak için aşağıdaki adımları uygulayın.

  1. Nesne an AdView oluşturun ve reklam birimi kimliğinizi ayarlayın.

  2. Uyarlanabilir banner reklam boyutu alın. Aldığınız boyut, uyarlanabilir banner'ınızı istemek için kullanılır. Uyarlanabilir reklam boyutunu almak için şunları yaptığınızdan emin olun:

    1. Kullanılan cihazın genişliğini alın veya ekranın tam genişliğini kullanmak istemiyorsanız kendi genişliğinizi ayarlayın.
    2. Reklam boyutu sınıfında uygun statik yöntemleri kullanın. Örneğin, seçilen yön için AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, width) uyarlanabilir bir nesne bulmak üzere AdSize nesne kullanın.
    3. Banner reklam görünümünde reklam boyutunu ayarlayın. Bunu AdView.setAdSize() kullanarak yapın.

    Aşağıda bununla ilgili bir örnek verilmiştir.

  3. Tıpkı normal bir banner isteğinde olduğu gibi, hazır reklam reklamınızdakiloadAd() yöntemini kullanarak bir reklam isteği nesnesi oluşturun ve banner'ınızı yükleyin.

Örnek kod

Ekranın genişliğine uyacak şekilde uyarlanabilir banner'ı yükleyecek bir etkinlik örneği aşağıda verilmiştir:

Java

import android.graphics.Rect;
import android.os.Bundle;
import android.widget.FrameLayout;
import androidx.appcompat.app.AppCompatActivity
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

/** Main Activity. Inflates main activity xml and child fragments. */
public class MyActivity extends AppCompatActivity {

  private static final String AD_UNIT_ID = "ca-app-pub-3940256099942544/6300978111";
  private AdView adView;
  private FrameLayout adContainerView;
  private boolean initialLayoutComplete = false;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);

    // Initialize the Mobile Ads SDK.
    MobileAds.initialize(this, new OnInitializationCompleteListener() {
        @Override
        public void onInitializationComplete(InitializationStatus initializationStatus) { }
    });

    adContainerView = findViewById(R.id.ad_view_container);
    adView = new AdView(this);
    adContainerView.addView(adView);
    // Since we're loading the banner based on the adContainerView size, we need
    // to wait until this view is laid out before we can get the width.
    adContainerView.getViewTreeObserver().addOnGlobalLayoutListener(
        new ViewTreeObserver.OnGlobalLayoutListener() {
          @Override
          public void onGlobalLayout() {
            if (!initialLayoutComplete) {
              initialLayoutComplete = true;
              loadBanner();
            }
          }
        });
  }

  private void loadBanner() {
    adView.setAdUnitId(AD_UNIT_ID);
    
    AdSize adSize = getAdSize();
    adView.setAdSize(adSize);
    
    // Create an ad request. Check your logcat output for the hashed device ID
    // to get test ads on a physical device, e.g.,
    // "Use AdRequest.Builder.addTestDevice("ABCDE0123") to get test ads on this
    // device."
    AdRequest adRequest =
        new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .build();

    // Start loading the ad in the background.
    adView.loadAd(adRequest);
  }

  // Determine the screen width (less decorations) to use for the ad width.
  private AdSize getAdSize() {
    WindowMetrics windowMetrics = getWindowManager().getCurrentWindowMetrics();
    Rect bounds = windowMetrics.getBounds();

    float adWidthPixels = adContainerView.getWidth();

    // If the ad hasn't been laid out, default to the full screen width.
    if (adWidthPixels == 0f) {
      adWidthPixels = bounds.width();
    }

    float density = getResources().getDisplayMetrics().density;
    int adWidth = (int) (adWidthPixels / density);

    return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
  }
}

Kotlin

import android.os.Bundle
import android.widget.FrameLayout
import androidx.appcompat.app.AppCompatActivity
import com.google.android.gms.ads.*

/** Main Activity. Inflates main activity xml and child fragments. */
class MyActivity : AppCompatActivity() {

  private lateinit var adView: AdView
  private lateinit var adContainerView: FrameLayout
  private var initialLayoutComplete = false

  // Determine the screen width (less decorations) to use for the ad width.
  private val adSize: AdSize
    get() {
      val windowMetrics = windowManager.currentWindowMetrics
      val bounds = windowMetrics.bounds

      var adWidthPixels = adContainerView.width.toFloat()

      // If the ad hasn't been laid out, default to the full screen width.
      if (adWidthPixels == 0f) {
        adWidthPixels = bounds.width().toFloat()
      }

      val density = resources.displayMetrics.density
      val adWidth = (adWidthPixels / density).toInt()

      return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
    }

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_my)

    // Initialize the Mobile Ads SDK.
    MobileAds.initialize(this) {}

    adContainerView = findViewById(R.id.ad_view_container)
    adView = AdView(this)
    adContainerView.addView(adView)
    // Since we're loading the banner based on the adContainerView size, we need
    // to wait until this view is laid out before we can get the width.
    adContainerView.viewTreeObserver.addOnGlobalLayoutListener {
      if (!initialLayoutComplete) {
        initialLayoutComplete = true
        loadBanner()
      }
    }
  }

  private fun loadBanner() {
    adView.adUnitId = AD_UNIT_ID

    adView.adSize(adSize)
    
    // Create an ad request. Check your logcat output for the hashed device ID to
    // get test ads on a physical device, e.g.,
    // "Use AdRequest.Builder.addTestDevice("ABCDE0123") to get test ads on this device."
    val adRequest = AdRequest
        .Builder()
        .addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build()

    // Start loading the ad in the background.
    adView.loadAd(adRequest)
  }

  companion object {
    // This is an ad unit ID for a test ad. Replace with your own banner ad unit ID.
    private val AD_UNIT_ID = "ca-app-pub-3940256099942544/6300978111"
  }
}

Burada AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize işlevi, mevcut arayüz yönü için sabit bir konumda banner'ın boyutunu almak üzere kullanılır. Belirli bir yöndeki sabit banner'ı önceden yüklemek için AdSize.getPortraitAnchoredAdaptiveBannerAdSize ve AdSize.getLandscapeAnchoredAdaptiveBannerAdSize ile alakalı işlevi kullanın.

GitHub'da örneği tamamlayın

Java'yı indirin Kotlin'i indirin