Banner reklamlar, uygulama düzeninin bir kısmını kaplayan dikdörtgen reklamlardır. Kullanıcılar uygulama ile etkileşimde bulunurken 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. Banner reklamlar, belirli bir süre sonra otomatik olarak yenilenebilir. Daha fazla bilgi için Banner reklamlara genel bakış başlıklı makaleyi inceleyin.
Bu kılavuzda, belirttiğiniz reklam genişliğini kullanarak reklam boyutunu her cihaz için optimize ederek performansı en üst düzeye çıkaran sabitlenmiş uyarlanabilir banner reklamları kullanmaya nasıl başlayacağınız açıklanmaktadır.
Sabit uyarlanabilir banner reklamlar, normal sabit boyutlu reklamlar yerine sabit en boy oranına sahip reklamlardır. En boy oranı, 320x50 sektör standardına benzer. Kullanılabilir tam genişliği belirttikten sonra, bu genişlik için optimum yüksekliğe sahip bir reklam döndürülür. Optimum yükseklik, aynı cihazdan gelen isteklerde değişmez ve reklam yenilendiğinde çevredeki görünümlerin hareket etmesine gerek yoktur.
Ön koşullar
- Başlangıç kılavuzunu tamamlayın.
Her zaman test reklamlarıyla test yapın
Uygulamalarınızı oluşturup test ederken canlı üretim reklamları yerine test reklamları kullandığınızdan emin olun. Aksi takdirde hesabınız askıya alınabilir.
Test reklamlarını yüklemenin en kolay yolu, Android banner'lar için özel test reklam birimi kimliğimizi kullanmaktır:
/21775744923/example/adaptive-banner
Her istek için test reklamları döndürecek şekilde özel olarak yapılandırılmıştır. Kodlama, test etme ve hata ayıklama sırasında kendi uygulamalarınızda kullanabilirsiniz. Uygulamanızı yayınlamadan önce bu kimliği kendi reklam birimi kimliğinizle değiştirdiğinizden emin olun.
Mobile Ads SDK'sının test reklamlarının işleyiş şekli hakkında daha fazla bilgi için Test Reklamları başlıklı makaleyi inceleyin.
Düzene AdManagerAdView ekleme
Reklam boyutunu belirleyerek banner oluşturursunuz. Aşağıdaki adımları tamamlayın:
Tam genişlikte sabitlenmiş uyarlanabilir reklam boyutu oluşturun:
Java
// Get the ad size with screen width. public AdSize getAdSize() { DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int adWidthPixels = displayMetrics.widthPixels; if (VERSION.SDK_INT >= VERSION_CODES.R) { WindowMetrics windowMetrics = this.getWindowManager().getCurrentWindowMetrics(); adWidthPixels = windowMetrics.getBounds().width(); } float density = displayMetrics.density; int adWidth = (int) (adWidthPixels / density); return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth); }
Kotlin
// Get the ad size with screen width. private val adSize: AdSize get() { val displayMetrics = resources.displayMetrics val adWidthPixels = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { val windowMetrics: WindowMetrics = this.windowManager.currentWindowMetrics windowMetrics.bounds.width() } else { displayMetrics.widthPixels } val density = displayMetrics.density val adWidth = (adWidthPixels / density).toInt() return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth) }
Reklam boyutunu kullanarak bir
AdManagerAdView
oluşturun ve uygulamanızın düzenine ekleyin:Java
// Create a new ad view. adView = new AdManagerAdView(this); adView.setAdUnitId(AD_UNIT); adView.setAdSize(getAdSize()); // Replace ad container with new ad view. adContainerView.removeAllViews(); adContainerView.addView(adView);
Kotlin
// Create a new ad view. val adView = AdManagerAdView(this) adView.adUnitId = AD_UNIT_ID adView.setAdSize(adSize) this.adView = adView // Replace ad container with new ad view. binding.adViewContainer.removeAllViews() binding.adViewContainer.addView(adView)
Reklam yükleme
AdManagerAdView
yerleştirildikten sonra bir reklam yüklemeniz gerekir. Bu işlem, AdManagerAdView
sınıfındaki loadAd()
yöntemiyle yapılır. Tek bir reklam isteğiyle ilgili hedefleme bilgileri gibi çalışma zamanı bilgilerini içeren bir AdManagerAdRequest
parametresi alır.
Reklamın nasıl yükleneceğini gösteren bir örnek aşağıda verilmiştir:
Java
// Start loading the ad in the background.
AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build();
adView.loadAd(adRequest);
Kotlin
// Start loading the ad in the background.
val adRequest = AdManagerAdRequest.Builder().build()
adView.loadAd(adRequest)
İşlem başarılı olursa uygulamanız banner reklam göstermeye hazırdır.
Reklamı yenileme
Reklam biriminizi yenilenecek şekilde yapılandırdıysanız reklam yüklenmezse başka bir reklam istemeniz 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. Reklam birimi yenileme hakkında daha fazla bilgi (ör. yenileme hızı ayarlama) için Mobil uygulamalarda reklamların yenileme hızı başlıklı makaleyi inceleyin.
Reklam etkinlikleri
Reklamın yaşam döngüsünde yükleme, reklam gösterimi ve tıklama ile reklam açma ve kapama etkinlikleri gibi çeşitli etkinlikleri dinleyebilirsiniz. Geri aramayı banner'ı yüklemeden önce ayarlamanız önerilir.Java
adView.setAdListener(new AdListener() {
@Override
public void onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
@Override
public void onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
@Override
public void onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
});
Kotlin
adView.adListener = object: AdListener() {
override fun onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
override fun onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
override fun onAdFailedToLoad(adError : LoadAdError) {
// Code to be executed when an ad request fails.
}
override fun onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
override fun onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
override fun onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
}
AdListener
içindeki geçersiz kılınabilir yöntemlerin her biri, bir reklamın yaşam döngüsündeki bir etkinliğe karşılık gelir.
Geçersiz kılınabilir yöntemler | |
---|---|
onAdClicked() |
onAdClicked()
yöntemi, bir reklam için tıklama kaydedildiğinde çağrılır.
|
onAdClosed() |
onAdClosed() yöntemi, kullanıcı bir reklamın hedef URL'sini görüntüledikten sonra uygulamaya geri döndüğünde çağrılır. Uygulamanız, askıya alınmış etkinlikleri devam ettirmek veya etkileşime hazır hale gelmek için gereken diğer işlemleri yapmak için bu izni kullanabilir.
|
onAdFailedToLoad() |
onAdFailedToLoad()
yöntemi, parametre içeren tek yöntemdir. LoadAdError türündeki hata parametresi, hangi hatanın oluştuğunu açıklar. Daha fazla bilgi için Reklam Yükleme Hatalarını Hata Ayıklama dokümanlarına bakın.
|
onAdImpression() |
onAdImpression() yöntemi, bir reklam için gösterim kaydedildiğinde çağrılır.
|
onAdLoaded() |
onAdLoaded()
yöntemi, bir reklamın yüklenmesi tamamlandığında yürütülür. Bir reklamın yükleneceğinden emin olana kadar AdManagerAdView
öğesini etkinliğinize veya parçanıza eklemeyi geciktirmek isterseniz bunu buradan yapabilirsiniz.
|
onAdOpened() |
onAdOpened()
yöntemi, bir reklam ekranı kaplayan bir yer paylaşımı açtığında çağrılır.
|
Video reklamlar için donanım hızlandırma
Video reklamların banner reklam görüntülemelerinizde başarılı bir şekilde gösterilebilmesi için donanım hızlandırması etkinleştirilmiş olmalıdır.
Donanım hızlandırması varsayılan olarak etkindir ancak bazı uygulamalar bunu devre dışı bırakabilir. Bu durum uygulamanız için geçerliyse reklam kullanan Activity
sınıfları için donanım hızlandırmayı etkinleştirmenizi öneririz.
Donanım hızlandırmayı etkinleştirme
Uygulamanız, donanım hızlandırması genel olarak açıkken düzgün çalışmıyorsa bu ayarı ayrı etkinlikler için de kontrol edebilirsiniz. Donanım hızlandırmayı etkinleştirmek veya devre dışı bırakmak için AndroidManifest.xml
'inizdeki <application>
ve <activity>
öğeleri için android:hardwareAccelerated
özelliğini kullanabilirsiniz. Aşağıdaki örnekte, uygulamanın tamamı için donanım hızlandırması etkinleştirilir ancak bir etkinlik için devre dışı bırakılır:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
Donanım hızlandırmayı kontrol etme seçenekleri hakkında daha fazla bilgi için Donanım hızlandırma kılavuzuna göz atın. Etkinlik devre dışıysa ayrı reklam görüntülemelerinin donanım hızlandırma için etkinleştirilemeyeceğini unutmayın. Bu nedenle, etkinliğin kendisinde donanım hızlandırmanın etkinleştirilmesi gerekir.
Manuel gösterim sayımı
Manuel gösterim sayma yalnızca doğrudan Ad Manager'da trafiğe eklenen reklam öğelerinin bulunduğu doğrudan satılan ve kurumsal kampanyalarla uyumludur. Dolgu veya üçüncü taraf ağ reklamları için kullanılmamalıdır. Daha fazla bilgi için Gösterimleri ve tıklamaları sayma başlıklı makaleyi inceleyin.
Bir gösterimin ne zaman kaydedileceğine dair özel koşullarınız varsa gösterim ping'lerini Ad Manager'a manuel olarak gönderebilirsiniz. Bunu yapmak için reklam yüklemeden önce manuel gösterimler için bir AdManagerAdRequest
etkinleştirin:
Java
AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder()
.setManualImpressionsEnabled(true)
.build();
Kotlin
val adRequest = AdManagerAdRequest.Builder()
.setManualImpressionsEnabled(true)
.build()
Bir reklamın başarıyla döndürüldüğünü ve ekranda olduğunu belirlediğinizde gösterimi manuel olarak kaydedebilirsiniz:
Java
{ ad_view }.recordManualImpression();
Kotlin
AdManagerAdView.recordManualImpression()
Uygulama etkinlikleri
Uygulama etkinlikleri, uygulama kodlarına mesaj gönderebilen reklamlar oluşturmanıza olanak tanır. Uygulama, bu mesajlara göre işlem yapabilir.
AppEventListener
kullanarak Ad Manager'a özgü uygulama etkinliklerini dinleyebilirsiniz.
Bu etkinlikler, onAdLoaded()
çağrılmadan önce bile reklamın yaşam döngüsü sırasında herhangi bir zamanda gerçekleşebilir.
Java
public interface AppEventListener {
void onAppEvent(String name, String info);
}
Kotlin
interface AppEventListener {
fun onAppEvent(name: String, info: String)
}
void onAppEvent(String name, String info)
, bir reklamda uygulama etkinliği gerçekleştiğinde çağrılır. Bu arayüz, etkinliğiniz veya başka bir nesne tarafından uygulanabilir:
Java
import com.google.android.gms.ads.admanager.*;
public class BannerExample extends Activity implements AppEventListener {
}
Kotlin
import com.google.android.gms.ads.admanager.*
class BannerExample : Activity(), AppEventListener {
}
ve ardından AdManagerAdView
'ye iletilir:
Java
AdManagerAdView.setAppEventListener(this);
Kotlin
AdManagerAdView.appEventListener = this
Aşağıda, adı color olan bir uygulama etkinliğine bağlı olarak uygulamanızın arka plan renginin nasıl değiştirileceğini gösteren bir örnek verilmiştir:
Java
@Override
public void onAppEvent(String name, String info) {
if ("color".equals(name)) {
if ("green".equals(info)) {
// Set background color to green.
} else if ("blue".equals(info)) {
// Set background color to blue.
} else {
// Set background color to black.
}
}
}
Kotlin
override fun onAppEvent(name: String?, info: String?) {
if (name == "color") {
when (info) {
"green" -> {
// Set background color to green.
}
"blue" -> {
// Set background color to blue.
}
else -> {
// Set background color to black.
}
}
}
}
İşleyiciye renk uygulama etkinliği mesajları gönderen ilgili reklam öğesi aşağıda verilmiştir:
<html>
<head>
<script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
// Send a color=green event when ad loads.
admob.events.dispatchAppEvent("color", "green");
document.getElementById("ad").addEventListener("click", function() {
// Send a color=blue event when ad is clicked.
admob.events.dispatchAppEvent("color", "blue");
});
});
</script>
<style>
#ad {
width: 320px;
height: 50px;
top: 0px;
left: 0px;
font-size: 24pt;
font-weight: bold;
position: absolute;
background: black;
color: white;
text-align: center;
}
</style>
</head>
<body>
<div id="ad">Carpe diem!</div>
</body>
</html>
API Demo uygulamasında uygulama etkinliklerinin uygulanmasıyla ilgili Ad Manager uygulama etkinlikleri örneğine bakın.
Ek kaynaklar
GitHub'daki örnekler
Sonraki adımlar
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 daraltmaya yarayan bir düğme içeren banner reklamlardır. Performansınızı daha da optimize etmek için bu özelliği kullanabilirsiniz. Daha fazla bilgi için daraltılabilir banner reklamlar bölümüne bakın.
Satır içi uyarlanabilir banner'lar
Satır içi uyarlanabilir banner'lar, sabit uyarlanabilir banner'lara kıyasla daha geniş ve daha uzun banner'lardır. Değişken yükseklikte olan bu banner'lar cihaz ekranı kadar uzun olabilir. 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'lara bakın.