Bu kılavuzda, sabit uyarlanabilir banner reklamın Android uygulamasına yüklenmesi ele alınmaktadır.
Ön koşullar
- Başlangıç kılavuzunu tamamlayın.
- İsteğe bağlı: Banner reklam uygulaması örneği için aşağıdaki örnek uygulamalardan birini seçin:
- Java, Kotlin, veya Jetpack Compose sabit uyarlanabilir banner reklam örneği.
- Java veya Kotlin gelişmiş özellikler demosu.
Her zaman test reklamlarıyla test yapın
Uygulamalarınızı oluşturup test ederken canlı yayınlanan üretim reklamları yerine test reklamlarını kullandığınızdan emin olun. Bu işlemi yapmazsanız 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:
ca-app-pub-3940256099942544/9214589741
Bu kimlik, 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 bu kimliği kullanabilirsiniz. Uygulamanızı yayınlamadan önce bu kimliği kendi reklam birimi kimliğinizle değiştirdiğinizden emin olun.
Google Mobile Ads SDK'sının test reklamlarının nasıl çalıştığı hakkında daha fazla bilgi için Test reklamlarını etkinleştirme başlıklı makaleyi inceleyin.
Reklam görünümünü tanımlama
XML Düzeni
Sabitlenmiş uyarlanabilir banner reklamınız için kapsayıcı görevi görecek bir görünümü düzen XML dosyanıza ekleyin:
<!-- Ad view container that fills the width of the screen and adjusts its
height to the content of the ad. -->
<FrameLayout
android:id="@+id/ad_view_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_alignParentBottom="true" />
Jetpack Compose
İlk adım olarak JetpackComposeDemo/compose-util modülünü ekleyin. Bu modülde,
AdView
nesnesini ve öğelerini oluşturmaya yardımcı olacak araçlar yer alır.İkinci adımda,
compose-util
modülünü kullanarak birBannerAd
sınıfı oluşturun:
// Place the ad view at the bottom of the screen.
Column(modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Bottom) {
Box(modifier = modifier.fillMaxWidth()) { BannerAd(adView, modifier) }
}
Reklam boyutunu ayarlama
AdSize
değerini, belirtilen genişliğe sahip sabit uyarlanabilir banner türü olarak ayarlayın:
Java
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360));
Kotlin
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360))
Jetpack Compose
// Set the adaptive banner ad size with a given width.
val adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(LocalContext.current, 360)
adView.setAdSize(adSize)
Düzene AdView
ekleme
Uygulamanızın düzenine eklemek için reklam boyutunu kullanarak bir AdView
oluşturun:
Java
// Create a new ad view.
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT_ID);
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360));
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
Kotlin
// Create a new ad view.
val adView = AdView(this)
adView.adUnitId = AD_UNIT_ID
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360))
this.adView = adView
// Replace ad container with new ad view.
binding.adViewContainer.removeAllViews()
binding.adViewContainer.addView(adView)
Jetpack Compose
val adView = remember { AdView(context) }
// Setup and load the adview.
// Set the unique ID for this specific ad unit.
adView.adUnitId = BANNER_AD_UNIT_ID
// Set the adaptive banner ad size with a given width.
val adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(LocalContext.current, 360)
adView.setAdSize(adSize)
// Place the ad view at the bottom of the screen.
Column(modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Bottom) {
Box(modifier = modifier.fillMaxWidth()) { BannerAd(adView, modifier) }
}
Reklam yükleme
AdView
yerleştirildikten sonraki adım, reklam yüklemektir. Bu işlem, AdView
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 AdRequest
parametresi alır.
Aşağıda, reklamın nasıl yükleneceğini gösteren bir örnek verilmiştir:
Java
AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build();
adView.loadAd(adRequest);
Kotlin
val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)
Başarılı olursa uygulamanız banner reklam göstermeye hazır demektir.
Reklamı yenileme
Reklam biriminizi yenilenecek şekilde yapılandırdıysanız reklam yüklenemediğinde başka bir reklam isteğinde bulunmanız gerekmez. Google Mobile Ads SDK'sı, AdMob 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 Banner reklamlarda otomatik yenileme özelliğini kullanma başlıklı makaleyi inceleyin.
Reklam kaynağını serbest bırakma
Banner reklamı kullanmayı bitirdiğinizde banner reklamın kaynaklarını serbest bırakabilirsiniz.
Reklamın kaynağını serbest bırakmak için reklamı görünüm hiyerarşisinden kaldırıp tüm referanslarını bırakırsınız:
Kotlin
// Remove banner from view hierarchy.
val parentView = adView?.parent
if (parentView is ViewGroup) {
parentView.removeView(adView)
}
// Destroy the banner ad resources.
adView?.destroy()
// Drop reference to the banner ad.
adView = null
Java
// Remove banner from view hierarchy.
if (adView.getParent() instanceof ViewGroup) {
((ViewGroup) adView.getParent()).removeView(adView);
}
// Destroy the banner ad resources.
adView.destroy();
// Drop reference to the banner ad.
adView = null;
Jetpack Compose
DisposableEffect(Unit) {
// Destroy the AdView to prevent memory leaks when the screen is disposed.
onDispose { adView.destroy() }
}
Reklam etkinlikleri
Reklamın yaşam döngüsündeki yükleme, reklam gösterimi ve tıklama ile reklam açma ve kapatma etkinlikleri gibi çeşitli etkinlikleri dinleyebilirsiniz. Banner'ı yüklemeden önce geri aramayı 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 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 tüm işlemleri gerçekleştirmek üzere bu iş parçacığını kullanabilir.
Android API Demo uygulamasında reklam dinleyici yöntemlerinin uygulanması için AdMob
AdListener örneğine bakın.
|
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ı Ayıklama belgelerine 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. Örneğin, bir reklamın yükleneceğinden emin olana kadar AdView 'ı etkinliğinize veya parçanıza eklemeyi geciktirmek istiyorsanız 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ünümlerinizde başarıyla gösterilmesi için donanım hızlandırma etkinleştirilmelidir.
Donanım hızlandırma varsayılan olarak etkindir ancak bazı uygulamalar bu özelliği 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ırma özelliği genel olarak etkinleştirildiğinde düzgün çalışmıyorsa bu özelliği tek tek etkinlikler için de kontrol edebilirsiniz. Donanım hızlandırmayı etkinleştirmek veya devre dışı bırakmak için AndroidManifest.xml
içindeki <application>
ve <activity>
öğeleri için android:hardwareAccelerated
özelliğini kullanabilirsiniz. Aşağıdaki örnekte, uygulamanın tamamında donanım hızlandırma etkinleştirilirken bir etkinlikte devre dışı bırakılıyor:
<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ışı bırakılırsa donanım hızlandırma için ayrı reklam görüntülemelerinin etkinleştirilemeyeceğini, bu nedenle etkinliğin kendisinde donanım hızlandırmanın etkinleştirilmesi gerektiğini unutmayın.
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 daraltma düğmesi 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üksekliğe sahiptir ve cihaz ekranı kadar uzun olabilir. Kaydırılabilir içeriklere banner reklam yerleştiren uygulamalarda 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üne bakın.