Doğal reklamlar, platforma özgü kullanıcı arayüzü bileşenleri aracılığıyla kullanıcılara sunulan reklam öğeleridir. Bu sayfalar, zaten düzenlerinizi oluşturduğunuz görünüm türleri kullanılarak gösterilir ve uygulamanızın görsel tasarımıyla eşleşecek şekilde biçimlendirilebilir.
Bir doğal reklam yüklendiğinde uygulamanız, öğelerini içeren bir reklam nesnesi alır ve bu öğeleri göstermekten Google Mobile Ads SDK'sı yerine uygulama sorumlu olur.
Genel olarak, doğal reklamları başarılı bir şekilde uygulamanın iki bölümü vardır: SDK'yı kullanarak bir reklamı yükleme ve ardından reklam içeriğini uygulamanızda görüntüleme.
Bu sayfada, yerel reklamları yüklemek için SDK'nın nasıl kullanılacağı gösterilmektedir. İpucu: Yerel Reklamlar Başucu Kitabı'mızdan yerel reklamlar hakkında daha fazla bilgi edinin.
Ayrıca bazı müşteri başarı öykülerine göz atabilirsiniz: örnek olay 1, örnek olay 2.
Ö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.
Test reklamlarını yüklemenin en kolay yolu, Android'deki doğal reklamlar için özel test reklam birimi kimliğimizi kullanmaktır:
ca-app-pub-3940256099942544/2247696110
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.
Google 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.
Reklam yükleme
Yerel reklamlar, AdLoader
sınıfıyla yüklenir. Bu sınıfın, oluşturulma sırasında özelleştirilmesini sağlayan kendi Builder
sınıfı vardır. Bir uygulama, AdLoader
sınıfını oluştururken dinleyiciler ekleyerek hangi tür yerel reklamları almaya hazır olduğunu belirtir. AdLoader
daha sonra yalnızca bu türleri ister.
AdLoader oluşturma
Aşağıdaki kodda, doğal reklam yükleyebilecek bir AdLoader
öğesinin nasıl oluşturulacağı gösterilmektedir:
Java
AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// Show the ad.
}
})
.withAdListener(new AdListener() {
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Handle the failure by logging, altering the UI, and so on.
}
})
.withNativeAdOptions(new NativeAdOptions.Builder()
// Methods in the NativeAdOptions.Builder class can be
// used here to specify individual options settings.
.build())
.build();
Kotlin
val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110}")
.forNativeAd { ad : NativeAd ->
// Show the ad.
}
.withAdListener(object : AdListener() {
override fun onAdFailedToLoad(adError: LoadAdError) {
// Handle the failure.
}
})
.withNativeAdOptions(NativeAdOptions.Builder()
// Methods in the NativeAdOptions.Builder class can be
// used here to specify individual options settings.
.build())
.build()
AdLoader
öğesinin NativeAd
biçimine hazırlanmasından forNativeAd()
yöntemi sorumludur.
Bir reklam başarıyla yüklendiğinde dinleyici nesnesinin onNativeAdLoaded()
yöntemi çağrılır.
AdLoader ile AdListener oluşturma (isteğe bağlı)
withAdListener
işlevi, AdLoader
'ü oluştururken yükleyici için bir AdListener
ayarlar. Yöntem, tek parametresi olarak bir AdListener
alır. Bu parametre, reklam yaşam döngüsü etkinlikleri gerçekleştiğinde AdLoader
'dan geri çağırma alır:
Java
.withAdListener(new AdListener() {
// AdListener callbacks can be overridden here.
})
Kotlin
.withAdListener(object : AdListener() {
// AdListener callbacks can be overridden here.
})
Reklam isteğinde bulun
AdLoader
oluşturma işlemini tamamladıktan sonra, reklam isteğinde bulunmak için bu öğeyi kullanabilirsiniz.
Bunun için iki yöntem vardır: loadAd()
ve loadAds()
.
loadAd()
Bu yöntem, tek bir reklam için istek gönderir.
Java
adLoader.loadAd(new AdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdRequest.Builder().build())
loadAds()
Bu yöntem, birden fazla reklam (en fazla beş) için istek gönderir:
Java
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
adLoader.loadAds(AdRequest.Builder().build(), 3)
Her iki yöntem de ilk parametresi olarak bir AdRequest
nesnesi alır. Bu, banner'lar ve geçiş reklamları tarafından kullanılan AdRequest
sınıfıyla aynıdır. Diğer reklam biçimlerinde yaptığınız gibi AdRequest
sınıfının yöntemlerini kullanarak hedefleme bilgileri ekleyebilirsiniz.
Birden çok reklam yükleme (isteğe bağlı)
loadAds()
yöntemi ek bir parametre alır: SDK'nın istek için yüklemeye çalışması gereken reklam sayısı. Bu sayı beş ile sınırlıdır ve SDK'nın istenen reklam sayısını tam olarak döndüreceği garanti edilmez.
Döndürülen Google reklamlarının tümü birbirinden farklı olacaktır ancak ayrılmış envanterden veya üçüncü taraf alıcılardan gelen reklamların benzersiz olması garanti edilmez.
Uyumlulaştırma kullanıyorsanız loadAds()
yöntemini kullanmayın. Çünkü birden fazla yerel reklam isteği, uyumlulaştırma için yapılandırılmış reklam birimi kimliklerinde şu anda kullanılamaz.
Geri aramalar
loadAd()
çağrısı yapıldıktan sonra, yerel reklam nesnesini yayınlamak veya bir hatayı bildirmek için önceden tanımlanmış dinleyici yöntemlerine tek bir geri çağırma yapılır.
loadAds()
adresine yapılan bir aramadan sonra bu türden birden fazla geri arama yapılır (en az bir, en fazla istenen reklam sayısı kadar). Birden fazla reklam isteyen uygulamalar, yükleme işleminin tamamlanıp tamamlanmadığını belirlemek için geri çağırma uygulamalarında AdLoader.isLoading()
çağrısı yapmalıdır.
onNativeAdLoaded()
geri çağırma işlevinde isLoading()
değerinin nasıl kontrol edileceğini gösteren bir örnek aşağıda verilmiştir:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
...
// some code that displays the ad.
...
if (adLoader.isLoading()) {
// The AdLoader is still loading ads.
// Expect more adLoaded or onAdFailedToLoad callbacks.
} else {
// The AdLoader has finished loading ads.
}
}
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd {
...
// some code that displays the ad.
...
if (adLoader.isLoading) {
// The AdLoader is still loading ads.
// Expect more adLoaded or onAdFailedToLoad callbacks.
} else {
// The AdLoader has finished loading ads.
}
}.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)
Kaynakları serbest bırakma
Yüklenen yerel reklamlarda destroy()
yöntemini kullandığınızdan emin olun. Bu işlem, kullanılmayan kaynakları serbest bırakır ve bellek sızıntılarını önler.
Etkinliğinizin onDestroy()
yönteminde tüm NativeAd
referanslarının kaldırıldığından emin olun.
onNativeAdLoaded
geri çağırma işlevinizde, başvurusu kaldırılacak mevcut tüm doğal reklamları yok ettiğinizden emin olun.
Bir diğer önemli kontrol, etkinliğin yok edilip edilmediğidir. Etkinlik yok edilmişse döndürülen reklamda destroy()
işlevini çağırın ve hemen döndürün:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed()` is a method on Activity.
if (isDestroyed()) {
nativeAd.destroy();
return;
}
...
}
}).build();
Kotlin
lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd { nativeAd ->
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed` is a method on Activity.
if (isDestroyed) {
nativeAd.destroy()
return@forNativeAd
}
...
}.build()
En iyi uygulamalar
Reklamları yüklerken bu kurallara uyun.
Bir listede doğal reklam kullanan uygulamalar, reklam listesini önceden önbelleğe almalıdır.
Reklamları önceden önbelleğe alırken önbelleğinizi temizleyin ve bir saat sonra yeniden yükleyin.
İlk istek yüklenmeyi tamamlayana kadar
AdLoader
cihazındaloadAd()
veyaloadAds()
'i aramayın.Yerel reklam önbelleğe alma işlemini yalnızca gerekli olanla sınırlayın. Örneğin, önbelleğe alma işlemi sırasında yalnızca ekranda hemen görünen reklamları önbelleğe alın. Yerel reklamlar büyük bir bellek alanı kaplar ve yerel reklamları yok etmeden önbelleğe almak aşırı bellek kullanımına neden olur.
Artık kullanılmayan doğal reklamları yok edin.
Video reklamlar için donanım hızlandırma
Video reklamların yerel reklam görüntülemelerinizde başarılı bir şekilde gösterilmesi için donanım hızlandırması etkinleştirilmelidir.
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 kullanın. 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 bakın. Etkinlik devre dışıysa tek tek 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.
Reklamınızı gösterme
Bir reklamı yükledikten sonra tek yapmanız gereken, reklamı kullanıcılarınıza göstermektir. Nasıl yapılacağını öğrenmek için yerel reklamlar ile ilgili ileri seviye kılavuzumuzu inceleyin.