Doğal reklamlar

Platform seçin: Android iOS Flutter Unity

Doğal reklamlar, platforma özgü kullanıcı arayüzü bileşenleri aracılığıyla kullanıcılara sunulan reklam öğeleridir. Bu reklamlar, düzenlerinizi oluştururken kullandığınız görünüm türleriyle gösterilir ve uygulamanızın görsel tasarımına uyacak şekilde biçimlendirilebilir.

Bir doğal reklam yüklendiğinde uygulamanız, öğelerini içeren bir reklam nesnesi alır. Bu öğelerin gösterilmesinden Google Mobile Ads SDK'sı değil, uygulama sorumludur.

Genel olarak, yerel reklamları başarılı bir şekilde uygulamak için iki bölüm vardır: SDK'yı kullanarak 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 hakkında daha fazla bilgi edinmek için Yerel Reklamlar Başucu Kitabı'na göz atın.

Ayrıca bazı müşteri başarı öykülerine de göz atabilirsiniz: 1. örnek olay, 2. örnek olay.

Ön koşullar

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.

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

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ı başlıklı makaleyi inceleyin.

Reklam yükleme

Yerel reklamlar, AdLoader sınıfıyla yüklenir. Bu sınıfın, oluşturma sırasında özelleştirilebilmesi için kendi Builder sınıfı vardır. Bir uygulama, oluşturulurken AdLoader öğesine 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 kod, doğal reklamları yükleyebilen bir AdLoader öğesinin 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.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

forNativeAd() yöntemi, NativeAd biçimi için AdLoader hazırlamaktan 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ı)

AdLoader oluşturulurken withAdListener işlevi, yükleyici için bir AdListener ayarlar. Yöntem, tek parametre olarak bir AdListener alır. Bu parametre, reklam yaşam döngüsü etkinlikleri gerçekleştiğinde AdLoader öğesinden geri çağırmalar 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ığınızda reklam istemek için kullanabilirsiniz. Bu işlem için iki yöntem kullanılabilir: 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ş) isteği gönderir:

Java

adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

adLoader.loadAds(AdRequest.Builder().build(), 3)

Her iki yöntemde de ilk parametre olarak bir AdRequest nesnesi kullanılır. Bu, banner'lar ve geçiş reklamları tarafından kullanılan aynı AdRequest sınıfıdır. Diğer reklam biçimlerinde olduğu 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şle 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ıdı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. Birden fazla yerel reklam isteği, uyumlulaştırma için yapılandırılmış reklam birimi kimliklerinde şu anda çalışmamaktadır.

Geri aramalar

loadAd() çağrısından 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() numarasına yapılan bir aramadan sonra birden fazla geri arama yapılır (en az bir, istenen reklam sayısından fazla değil). Birden fazla reklam isteyen uygulamalar, yükleme işleminin tamamlanıp tamamlanmadığını belirlemek için geri çağırma uygulamalarında AdLoader.isLoading() işlevini çağırmalıdır.

Aşağıda, onNativeAdLoaded() geri çağırmasında isLoading()'nın nasıl kontrol edileceğini gösteren bir örnek 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 doğal reklamlarda destroy() yöntemini kullandığınızdan emin olun. Bu işlem, kullanılan kaynakları serbest bırakır ve bellek sızıntılarını önler.

Etkinliğinizin NativeAd yönteminde tüm onDestroy() referanslarının yok edildiğinden emin olun.

onNativeAdLoaded geri çağırmanızda, referansı kaldırılacak mevcut yerel reklamları yok ettiğinizden emin olun.

Diğer bir önemli kontrol ise etkinliğin yok edilip edilmediğidir. Yok edildiyse döndürülen reklamda destroy() işlevini ç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 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

Reklam yüklerken aşağıdaki kurallara uyun.

  • Bir listede doğal reklamlar 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 üzerinde loadAd() veya loadAds() numaralarını aramayın.
  • Yerel reklam önbelleğe almayı yalnızca gerekli olanlarla sınırlayın. Örneğin, önceden önbelleğe alma 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ılmadığında doğal reklamları yok edin.

Video reklamlar için donanım hızlandırma

Video reklamların yerel reklam görünümlerinizde başarılı bir şekilde gösterilmesi için donanım hızlandırma etkinleştirilmelidir.

Donanım hızlandırma varsayılan olarak etkindir ancak bazı uygulamalar bunu devre dışı bırakmayı seçebilir. Bu durum uygulamanız için geçerliyse reklam kullanan Etkinlik sınıflarında 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 android:hardwareAccelerated özelliğini AndroidManifest.xml içindeki <application> ve <activity> öğeleri için kullanın. 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&<quot;
    !-- For activities that use ads, hardwareAcceleration should b>e tru<e. --
    activity android:hardwareAccelerate>d=&qu<ot;true" /
    !-- For activities that don't use ads, hardwareAccel>erati<on can be false. --
    activity android:hardw>a<reAccelerate>d="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 donanım hızlandırma için tek tek 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.

Reklamınızı görüntüleme

Bir reklamı yükledikten sonra yapmanız gereken tek şey, bu reklamı kullanıcılarınıza göstermektir. Nasıl yapılacağını öğrenmek için Native Advanced kılavuzumuza göz atın.