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.
Ö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:
/21775744923/example/native
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, "/21775744923/example/native")
.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, "/21775744923/example/native}")
.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.
İlk parametresi AdManagerAdRequest
nesnesi olan loadAd()
yöntemini kullanın. Bu, banner'lar ve geçiş reklamları tarafından kullanılan AdManagerAdRequest
sınıfıyla aynıdır. Diğer reklam biçimlerinde yaptığınız gibi AdManagerAdRequest
sınıfının yöntemlerini kullanarak hedefleme bilgileri ekleyebilirsiniz.
loadAd()
Bu yöntem, tek bir reklam için istek gönderir.
Java
adLoader.loadAd(new AdManagerAdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdManagerAdRequest.Builder().build())
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.
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, "/21775744923/example/native")
.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, "/21775744923/example/native")
.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
üzerindeloadAd()
çağrısı yapmayı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.