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.
Nesne an
AdView
oluşturun ve reklam birimi kimliğinizi ayarlayın.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:
- 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.
- 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 üzereAdSize
nesne kullanın. - 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.
Tıpkı normal bir banner isteğinde olduğu gibi, hazır reklam reklamınızdaki
loadAd()
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 |