Yerel reklamlar, platforma özgü UI bileşenleri aracılığıyla kullanıcılara sunulan reklam varlıklarıdır. Halihazırda düzenlerinizi oluşturmakta olduğunuz görünümlerin aynı türleri kullanılarak gösterilirler ve içinde yaşadıkları kullanıcı deneyiminin görsel tasarımına uyacak şekilde biçimlendirilebilirler. Kodlama terimleriyle bu, yerel bir reklam yüklendiğinde uygulamanızın, öğelerini içeren bir NativeAd
nesnesi aldığı ve ardından bunları görüntülemekten uygulamanın (Google Mobile Ads SDK'sı yerine) sorumlu olduğu anlamına gelir.
Genel olarak, Yerel Reklamları başarılı bir şekilde uygulamanın iki bölümü vardır: SDK aracılığıyla bir reklam yüklemek ve reklam içeriğini uygulamanızda görüntülemek. Bu sayfa,yerel reklamları yüklemek için SDK'nın kullanılmasıyla ilgilidir.
Önkoşullar
- Google Mobile Ads SDK'sını tek başına veya Firebase'in bir parçası olarak içe aktarın.
Reklam Yükle
Yerel reklamlar, oluşturma sırasında özelleştirmek için kendi Builder
sınıfına sahip olan AdLoader
sınıfı aracılığıyla yüklenir. Bir uygulama, oluştururken AdLoader
dinleyici ekleyerek, hangi tür yerel reklamları almaya hazır olduğunu belirtir. AdLoader
daha sonra yalnızca bu türleri ister.
Bir AdLoader oluşturun
Aşağıdaki kod, yerel reklamları yükleyebilen bir AdLoader
nasıl oluşturulacağını gösterir:
Java
AdLoader adLoader = new AdLoader.Builder(context, "") .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, "") .forNativeAd { ad : NativeAd -> // Show the ad. } .withAdListener(object : AdListener() { override fun onAdFailedToLoad(adError: LoadAdError) { // Handle the failure by logging, altering the UI, and so on. } }) .withNativeAdOptions(NativeAdOptions.Builder() // Methods in the NativeAdOptions.Builder class can be // used here to specify individual options settings. .build()) .build()
NativeAd biçimine hazırlanın
Yukarıdaki ilk yöntem, AdLoader
NativeAd biçimi için hazırlanmasından sorumludur:
-
forNativeAd()
- Bu yöntemi çağırmak,
AdLoader
yerel reklamlar isteyecek şekilde yapılandırır. Bir reklam başarıyla yüklendiğinde, dinleyici nesnesininonNativeAdLoaded()
yöntemi çağrılır.
AdLoader
bir reklam isteğinde bulunduğunda, Google, yayıncı getirisini en üst düzeye çıkaran reklamı seçer ve döndürür.
AdListener'ı bir AdLoader ile kullanın
Yukarıdaki AdLoader
oluşturulurken withAdListener
işlevi bir AdListener
ayarlar.
Bu, isteğe bağlı bir adımdır. Yöntem, reklam yaşam döngüsü olayları gerçekleştiğinde AdLoader
geri aramalar alan tek parametresi olarak bir AdListener
alır:
Java
.withAdListener(new AdListener() { // AdListener callbacks can be overridden here. })
Kotlin
.withAdListener(object : AdListener() { // AdListener callbacks can be overridden here. })
Reklamlar yükleniyor
Bir AdLoader
oluşturmayı bitirdikten sonra, onu reklamları yüklemek için kullanma zamanı gelir. Bunun için kullanılabilecek iki yöntem vardır: loadAd()
ve loadAds()
.
loadAd()
yöntemi, tek bir reklam için istek gönderir:
-
loadAd()
- Bu yöntem, tek bir reklam için istek gönderir.
Java
adLoader.loadAd(new .Builder().build());
Kotlin
adLoader.loadAd(.Builder().build())
loadAds()
yöntemi, birden çok reklam için bir istek gönderir (en fazla 5):
Java
adLoader.loadAds(new .Builder().build(), 3);
Kotlin
adLoader.loadAds(.Builder().build(), 3)
Bu yöntemlerin her ikisi de ilk parametreleri olarak bir nesnesi alır. Bu, banner'lar ve geçiş reklamları tarafından kullanılan aynı
sınıfıdır ve diğer reklam biçimlerinde yaptığınız gibi, hedefleme bilgisi eklemek için
sınıfının yöntemlerini kullanabilirsiniz.
loadAds()
ek bir parametre alır: SDK'nın istek için yüklemeye çalışması gereken reklam sayısı. Bu sayı en fazla beş ile sınırlandırılmıştır ve SDK'nın tam olarak istenen sayıda reklamı döndüreceği garanti edilmez. loadAds()
çağrısı tarafından birden fazla reklam döndürülürse, bunlar birbirinden farklı olacaktır.
loadAd()
çağrısından sonra, yerel reklam nesnesini sunmak veya bir hata bildirmek için yukarıda tanımlanan dinleyici yöntemlerine tek bir geri çağrı yapılır.
loadAds()
çağrısından sonra, bu tür birden çok geri arama yapılır (en az bir ve istenen reklam sayısından fazla değil). Birden çok reklam isteyen uygulamalar, yükleme işleminin bitip bitmediğini belirlemek için geri arama uygulamalarında AdLoader.isLoading()
'i çağırmalıdır.
İşte onNativeAdLoaded()
geri çağrısında isLoading() öğesinin nasıl kontrol isLoading()
gösteren bir örnek:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "") .forNativeAd(new NativeAd.OnNativeAdLoadedListener() { @Override public void onNativeAdLoaded(NativeAd ad) { ... // 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 .Builder().build(), 3);
Kotlin
lateinit var adLoader: AdLoader ... adLoader = AdLoader.Builder(this, "") .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(.Builder().build(), 3)
Temizlemek
Yüklenen yerel reklamlarda destroy()
yöntemini kullandığınızdan emin olun. Bu, kullanılan kaynakları serbest bırakır ve bellek sızıntılarını önler.
Etkinliğinizin onDestroy()
yönteminde tüm NativeAd
referanslarının yok edildiğinden emin olun.
onNativeAdLoaded
geri aramanızda, referansı kaldırılacak tüm mevcut yerel reklamları yok ettiğinizden emin olun.
Diğer bir önemli kontrol, etkinliğin yok edilip edilmediğidir ve öyleyse, döndürülen reklamda destroy()
çağırın ve hemen geri dönün:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "") .forNativeAd(new NativeAd.OnNativeAdLoadedListener() { @Override public void onNativeAdLoaded(NativeAd ad) { // 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()) { ad.destroy(); return; } ... } }).build();
Kotlin
lateinit var adLoader: AdLoader ... adLoader = AdLoader.Builder(this, "") .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()
Her zaman test reklamlarıyla test edin
Uygulamalarınızı oluştururken ve test ederken, canlı, üretim reklamları yerine test reklamları kullandığınızdan emin olun. Bunu yapmamak, hesabınızın askıya alınmasına neden olabilir.
Test reklamlarını yüklemenin en kolay yolu, Android'de Native Advanced için özel test reklam birimi kimliğimizi kullanmaktır:
Her istek için test reklamları döndürmek üzere özel olarak yapılandırılmıştır ve kodlama, test etme ve hata ayıklama sırasında kendi uygulamalarınızda kullanmakta özgürsünüz. Uygulamanızı yayınlamadan önce bunu kendi reklam birimi kimliğinizle değiştirdiğinizden emin olun.
Mobil Reklamlar SDK'sının test reklamlarının nasıl çalıştığı hakkında daha fazla bilgi için Test Reklamları bölümüne bakın.
Reklamlar ne zaman talep edilir?
Yerel reklamları görüntüleyen uygulamalar, gerçekte ne zaman gösterileceklerini önceden istemekte serbesttir. Çoğu durumda, önerilen uygulama budur. Örneğin, yerel reklamların karıştırıldığı öğelerin bir listesini görüntüleyen bir uygulama, bazılarının yalnızca kullanıcı görünümü kaydırdıktan sonra gösterileceğini ve bazılarının hiç görüntülenmeyebileceğini bilerek tüm liste için yerel reklamlar yükleyebilir.
Video reklamlar için donanım hızlandırma
Video reklamların yerel reklam görünümlerinizde başarılı bir şekilde gösterilebilmesi için donanım hızlandırmanın etkinleştirilmesi gerekir.
Donanım hızlandırma varsayılan olarak etkindir, ancak bazı uygulamalar bunu devre dışı bırakmayı seçebilir. Bu, uygulamanız için geçerliyse, reklam kullanan Etkinlik 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 genel olarak açıkken düzgün çalışmıyorsa, bireysel etkinlikler için de kontrol edebilirsiniz. Donanım hızlandırmayı etkinleştirmek veya devre dışı bırakmak için, AndroidManifest.xml
<application>
ve <activity>
öğeleri için android:hardwareAccelerated
özniteliğini kullanabilirsiniz. Aşağıdaki örnek, tüm uygulama için donanım hızlandırmayı etkinleştirir ancak bir etkinlik için devre dışı bırakı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ı denetleme seçenekleri hakkında daha fazla bilgi için Donanım hızlandırma kılavuzuna bakın. Etkinlik devre dışı bırakılırsa, donanım hızlandırma için bağımsız reklam görüntülemelerinin etkinleştirilemeyeceğini, dolayısıyla Etkinliğin kendisinde donanım hızlandırmanın etkinleştirilmesi gerektiğini unutmayın.
Yerel Reklam Görüntüle
Bir reklamı yükledikten sonra geriye kalan tek şey onu kullanıcılarınıza göstermektir. Nasıl yapıldığını görmek için Yerel Gelişmiş kılavuzumuza gidin.
,tutucu3 l10n-tutucu4 l10nyer
Yerel reklamlar, platforma özgü UI bileşenleri aracılığıyla kullanıcılara sunulan reklam varlıklarıdır. Halihazırda düzenlerinizi oluşturmakta olduğunuz görünümlerin aynı türleri kullanılarak gösterilirler ve içinde yaşadıkları kullanıcı deneyiminin görsel tasarımına uyacak şekilde biçimlendirilebilirler. Kodlama terimleriyle bu, yerel bir reklam yüklendiğinde uygulamanızın, öğelerini içeren bir NativeAd
nesnesi aldığı ve ardından bunları görüntülemekten uygulamanın (Google Mobile Ads SDK'sı yerine) sorumlu olduğu anlamına gelir.
Genel olarak, Yerel Reklamları başarılı bir şekilde uygulamanın iki bölümü vardır: SDK aracılığıyla bir reklam yüklemek ve reklam içeriğini uygulamanızda görüntülemek. Bu sayfa,yerel reklamları yüklemek için SDK'nın kullanılmasıyla ilgilidir.
Önkoşullar
- Google Mobile Ads SDK'sını tek başına veya Firebase'in bir parçası olarak içe aktarın.
Reklam Yükle
Yerel reklamlar, oluşturma sırasında özelleştirmek için kendi Builder
sınıfına sahip olan AdLoader
sınıfı aracılığıyla yüklenir. Bir uygulama, oluştururken AdLoader
dinleyici ekleyerek, hangi tür yerel reklamları almaya hazır olduğunu belirtir. AdLoader
daha sonra yalnızca bu türleri ister.
Bir AdLoader oluşturun
Aşağıdaki kod, yerel reklamları yükleyebilen bir AdLoader
nasıl oluşturulacağını gösterir:
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 by logging, altering the UI, and so on. } }) .withNativeAdOptions(NativeAdOptions.Builder() // Methods in the NativeAdOptions.Builder class can be // used here to specify individual options settings. .build()) .build()
NativeAd biçimine hazırlanın
Yukarıdaki ilk yöntem, AdLoader
NativeAd biçimi için hazırlanmasından sorumludur:
-
forNativeAd()
- Bu yöntemi çağırmak,
AdLoader
yerel reklamlar isteyecek şekilde yapılandırır. Bir reklam başarıyla yüklendiğinde, dinleyici nesnesininonNativeAdLoaded()
yöntemi çağrılır.
AdLoader
bir reklam isteğinde bulunduğunda, Google, yayıncı getirisini en üst düzeye çıkaran reklamı seçer ve döndürür.
AdListener'ı bir AdLoader ile kullanın
Yukarıdaki AdLoader
oluşturulurken withAdListener
işlevi bir AdListener
ayarlar.
Bu, isteğe bağlı bir adımdır. Yöntem, reklam yaşam döngüsü olayları gerçekleştiğinde AdLoader
geri aramalar alan tek parametresi olarak bir AdListener
alır:
Java
.withAdListener(new AdListener() { // AdListener callbacks can be overridden here. })
Kotlin
.withAdListener(object : AdListener() { // AdListener callbacks can be overridden here. })
Reklamlar yükleniyor
Bir AdLoader
oluşturmayı bitirdikten sonra, onu reklamları yüklemek için kullanma zamanı gelir. Bunun için kullanılabilecek iki yöntem vardır: loadAd()
ve loadAds()
.
loadAd()
yöntemi, tek bir reklam için istek gönderir:
-
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()
yöntemi, birden çok reklam için bir istek gönderir (en fazla 5):
Java
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
adLoader.loadAds(AdRequest.Builder().build(), 3)
Bu yöntemlerin her ikisi de ilk parametreleri olarak bir AdRequest
nesnesi alır. Bu, banner'lar ve geçiş reklamları tarafından kullanılan aynı AdRequest
sınıfıdır ve diğer reklam biçimlerinde yaptığınız gibi, hedefleme bilgisi eklemek için AdRequest
sınıfının yöntemlerini kullanabilirsiniz.
loadAds()
ek bir parametre alır: SDK'nın istek için yüklemeye çalışması gereken reklam sayısı. Bu sayı en fazla beş ile sınırlandırılmıştır ve SDK'nın tam olarak istenen sayıda reklamı döndüreceği garanti edilmez. loadAds()
çağrısı tarafından birden fazla reklam döndürülürse, bunlar birbirinden farklı olacaktır.
loadAd()
çağrısından sonra, yerel reklam nesnesini sunmak veya bir hata bildirmek için yukarıda tanımlanan dinleyici yöntemlerine tek bir geri çağrı yapılır.
loadAds()
çağrısından sonra, bu tür birden çok geri arama yapılır (en az bir ve istenen reklam sayısından fazla değil). Birden çok reklam isteyen uygulamalar, yükleme işleminin bitip bitmediğini belirlemek için geri arama uygulamalarında AdLoader.isLoading()
'i çağırmalıdır.
İşte onNativeAdLoaded()
geri çağrısında isLoading() öğesinin nasıl kontrol isLoading()
gösteren bir örnek:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") .forNativeAd(new NativeAd.OnNativeAdLoadedListener() { @Override public void onNativeAdLoaded(NativeAd ad) { ... // 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)
Temizlemek
Yüklenen yerel reklamlarda destroy()
yöntemini kullandığınızdan emin olun. Bu, kullanılan kaynakları serbest bırakır ve bellek sızıntılarını önler.
Etkinliğinizin onDestroy()
yönteminde tüm NativeAd
referanslarının yok edildiğinden emin olun.
onNativeAdLoaded
geri aramanızda, referansı kaldırılacak tüm mevcut yerel reklamları yok ettiğinizden emin olun.
Diğer bir önemli kontrol, etkinliğin yok edilip edilmediğidir ve öyleyse, döndürülen reklamda destroy()
çağırın ve hemen geri dönün:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") .forNativeAd(new NativeAd.OnNativeAdLoadedListener() { @Override public void onNativeAdLoaded(NativeAd ad) { // 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()) { ad.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()
Her zaman test reklamlarıyla test edin
Uygulamalarınızı oluştururken ve test ederken, canlı, üretim reklamları yerine test reklamları kullandığınızdan emin olun. Bunu yapmamak, hesabınızın askıya alınmasına neden olabilir.
Test reklamlarını yüklemenin en kolay yolu, Android'de Native Advanced için özel test reklam birimi kimliğimizi kullanmaktır:
ca-app-pub-3940256099942544/2247696110
Her istek için test reklamları döndürmek üzere özel olarak yapılandırılmıştır ve kodlama, test etme ve hata ayıklama sırasında kendi uygulamalarınızda kullanmakta özgürsünüz. Uygulamanızı yayınlamadan önce bunu kendi reklam birimi kimliğinizle değiştirdiğinizden emin olun.
Mobil Reklamlar SDK'sının test reklamlarının nasıl çalıştığı hakkında daha fazla bilgi için Test Reklamları bölümüne bakın.
Reklamlar ne zaman talep edilir?
Yerel reklamları görüntüleyen uygulamalar, gerçekte ne zaman gösterileceklerini önceden istemekte serbesttir. Çoğu durumda, önerilen uygulama budur. Örneğin, yerel reklamların karıştırıldığı öğelerin bir listesini görüntüleyen bir uygulama, bazılarının yalnızca kullanıcı görünümü kaydırdıktan sonra gösterileceğini ve bazılarının hiç görüntülenmeyebileceğini bilerek tüm liste için yerel reklamlar yükleyebilir.
Video reklamlar için donanım hızlandırma
Video reklamların yerel reklam görünümlerinizde başarılı bir şekilde gösterilebilmesi için donanım hızlandırmanın etkinleştirilmesi gerekir.
Donanım hızlandırma varsayılan olarak etkindir, ancak bazı uygulamalar bunu devre dışı bırakmayı seçebilir. Bu, uygulamanız için geçerliyse, reklam kullanan Etkinlik 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 genel olarak açıkken düzgün çalışmıyorsa, bireysel etkinlikler için de kontrol edebilirsiniz. Donanım hızlandırmayı etkinleştirmek veya devre dışı bırakmak için, AndroidManifest.xml
<application>
ve <activity>
öğeleri için android:hardwareAccelerated
özniteliğini kullanabilirsiniz. Aşağıdaki örnek, tüm uygulama için donanım hızlandırmayı etkinleştirir ancak bir etkinlik için devre dışı bırakı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ı denetleme seçenekleri hakkında daha fazla bilgi için Donanım hızlandırma kılavuzuna bakın. Etkinlik devre dışı bırakılırsa, donanım hızlandırma için bağımsız reklam görüntülemelerinin etkinleştirilemeyeceğini, dolayısıyla Etkinliğin kendisinde donanım hızlandırmanın etkinleştirilmesi gerektiğini unutmayın.
Yerel Reklam Görüntüle
Bir reklamı yükledikten sonra geriye kalan tek şey onu kullanıcılarınıza göstermektir. Nasıl yapıldığını görmek için Yerel Gelişmiş kılavuzumuza gidin.