Yerel Reklamlar

tutucu2 l10n-yer tutucu3 l10n-yer tutucu4 l10n-yer tutucu5 l10n-yer

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

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 nesnesinin onNativeAdLoaded() 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

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 nesnesinin onNativeAdLoaded() 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.