Iklan native adalah aset iklan yang ditampilkan kepada pengguna melalui komponen UI yang
native ke platform. Ruang tersebut ditampilkan menggunakan jenis tampilan yang sama dengan
yang telah digunakan untuk membuat tata letak, dan dapat diformat agar cocok dengan desain visual
pengalaman pengguna tempatnya berada. Dalam istilah coding, ini berarti
saat iklan native dimuat, aplikasi Anda menerima
objek NativeAd
yang berisi asetnya, dan aplikasi (bukan Google Mobile Ads
SDK) kemudian bertanggung jawab untuk menampilkannya.
Secara garis besar, ada dua bagian agar berhasil menerapkan Iklan Native: memuat iklan melalui SDK dan menampilkan konten iklan di aplikasi Anda. Halaman ini berkaitan dengan penggunaan SDK untuk memuat iklan native.
Prasyarat
- Impor Google Mobile Ads SDK, dengan sendirinya atau sebagai bagian dari Firebase.
Memuat Iklan
Iklan native dimuat melalui
class AdLoader
,
yang memiliki
class
Builder
sendiri untuk menyesuaikannya selama pembuatan. Dengan menambahkan pemroses ke AdLoader
saat membuatnya, aplikasi menentukan jenis iklan native yang siap
diterima. AdLoader
kemudian meminta hanya jenis tersebut.
Membuat AdLoader
Kode berikut menunjukkan cara membuat AdLoader
yang dapat memuat
iklan native:
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()
Bersiap untuk format NativeAd
Metode pertama di atas bertanggung jawab untuk menyiapkan AdLoader
untuk format
NativeAd:
forNativeAd()
- Memanggil metode ini akan mengonfigurasi
AdLoader
untuk meminta iklan native. Setelah iklan berhasil dimuat, metodeonNativeAdLoaded()
objek pemroses akan dipanggil.
Saat AdLoader
membuat permintaan iklan, Google akan memilih dan menampilkan iklan yang memaksimalkan hasil penayang.
Menggunakan AdListener dengan AdLoader
Selama pembuatan AdLoader
di atas, fungsi withAdListener
menetapkan
AdListener
.
Ini adalah langkah opsional. Metode ini menggunakan AdListener
sebagai satu-satunya parameter, yang menerima callback dari AdLoader
saat peristiwa siklus proses iklan berlangsung:
Java
.withAdListener(new AdListener() { // AdListener callbacks can be overridden here. })
Kotlin
.withAdListener(object : AdListener() { // AdListener callbacks can be overridden here. })
Memuat iklan
Setelah selesai membuat AdLoader
, saatnya menggunakannya untuk memuat iklan.
Ada dua metode yang tersedia untuk pengujian ini: loadAd()
dan loadAds()
.
Metode loadAd()
mengirimkan permintaan untuk satu iklan:
loadAd()
- Metode ini mengirim permintaan untuk satu iklan.
Java
adLoader.loadAd(new AdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdRequest.Builder().build())
Metode loadAds()
mengirim permintaan untuk beberapa iklan (hingga 5):
Java
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
adLoader.loadAds(AdRequest.Builder().build(), 3)
Kedua metode ini menggunakan objek
AdRequest
sebagai parameter pertamanya. Ini adalah class AdRequest
yang sama yang digunakan oleh banner dan interstisial, dan Anda dapat menggunakan metode class AdRequest
untuk menambahkan informasi penargetan, seperti yang Anda lakukan dengan format iklan lainnya.
loadAds()
membutuhkan parameter tambahan: jumlah iklan yang harus dicoba dimuat oleh SDK untuk permintaan tersebut. Jumlah ini dibatasi maksimal lima, dan tidak ada jaminan bahwa SDK akan menampilkan jumlah persis iklan yang diminta. Jika beberapa iklan ditampilkan oleh panggilan ke loadAds()
, iklan tersebut akan
berbeda satu sama lain.
Setelah panggilan ke loadAd()
, satu callback akan dilakukan ke metode pemroses
yang ditentukan di atas untuk menayangkan objek iklan
native atau melaporkan error.
Setelah panggilan ke loadAds()
, beberapa callback tersebut akan dilakukan (setidaknya satu, dan tidak lebih dari jumlah iklan yang diminta). Aplikasi yang meminta beberapa iklan
harus memanggil AdLoader.isLoading()
dalam penerapan callback-nya untuk
menentukan apakah proses pemuatan telah selesai.
Berikut adalah contoh yang menunjukkan cara memeriksa isLoading()
di callback onNativeAdLoaded()
:
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)
Membersihkan
Pastikan untuk menggunakan metode destroy()
pada iklan native yang dimuat. Tindakan ini akan mengosongkan
resource yang digunakan dan mencegah kebocoran memori.
Pastikan semua referensi NativeAd
dihancurkan dalam metode onDestroy()
aktivitas Anda.
Dalam callback onNativeAdLoaded
, pastikan untuk memusnahkan iklan native yang sudah ada yang akan dihilangkan referensinya.
Pemeriksaan kunci lainnya adalah jika aktivitas dihancurkan
dan jika demikian, panggil destroy()
pada iklan yang ditampilkan dan segera kembali:
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()
Selalu uji iklan uji coba
Saat membuat dan menguji aplikasi, pastikan Anda menggunakan iklan pengujian, bukan iklan produksi aktif. Jika Anda tidak melakukannya, akun Anda dapat ditangguhkan.
Cara termudah untuk memuat iklan pengujian adalah menggunakan ID unit iklan pengujian khusus kami untuk Native Advanced di Android:
ca-app-pub-3940256099942544/2247696110
Ini telah dikonfigurasi secara khusus untuk menampilkan iklan pengujian untuk setiap permintaan, dan Anda bebas menggunakannya dalam aplikasi Anda sendiri saat coding, pengujian, dan proses debug. Pastikan Anda menggantinya dengan ID unit iklan sendiri sebelum memublikasikan aplikasi.
Untuk informasi selengkapnya tentang cara kerja iklan uji coba Mobile Ads SDK, lihat Menguji Iklan.
Kapan harus meminta iklan
Aplikasi yang menampilkan iklan native bebas memintanya terlebih dahulu sebelum iklan benar-benar akan ditampilkan. Dalam banyak kasus, ini adalah praktik yang direkomendasikan. Aplikasi yang menampilkan daftar item yang berisi iklan native yang dicampur, misalnya, dapat memuat iklan native untuk seluruh daftar, dengan mengetahui bahwa beberapa iklan native hanya akan ditampilkan setelah pengguna men-scroll tampilan dan beberapa iklan mungkin tidak ditampilkan sama sekali.
Akselerasi hardware untuk iklan video
Agar iklan video berhasil ditampilkan dalam tampilan iklan native Anda, akselerasi hardware harus diaktifkan.
Akselerasi hardware diaktifkan secara default, tetapi beberapa aplikasi mungkin memilih untuk menonaktifkannya. Jika ini berlaku pada aplikasi Anda, sebaiknya aktifkan akselerasi hardware untuk class Activity yang menggunakan iklan.
Mengaktifkan akselerasi hardware
Jika aplikasi Anda tidak berperilaku sebagaimana mestinya saat akselerasi hardware
diaktifkan secara global, Anda juga dapat mengontrolnya untuk aktivitas individual. Untuk mengaktifkan atau
menonaktifkan akselerasi hardware, Anda dapat menggunakan atribut android:hardwareAccelerated
untuk elemen
<application>
dan
<activity>
di AndroidManifest.xml
Anda. Contoh berikut mengaktifkan akselerasi
hardware untuk seluruh aplikasi, tetapi menonaktifkannya untuk satu aktivitas:
<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>
Lihat panduan akselerasi HW untuk informasi selengkapnya tentang opsi untuk mengontrol akselerasi hardware. Perhatikan bahwa setiap tampilan iklan tidak dapat diaktifkan untuk akselerasi hardware jika Aktivitas dinonaktifkan, sehingga Aktivitas itu sendiri harus mengaktifkan akselerasi hardware.
Menampilkan NativeAd
Setelah iklan dimuat, Anda hanya perlu menampilkannya kepada pengguna. Lihat panduan Native Advanced untuk mengetahui caranya.
,Iklan native adalah aset iklan yang ditampilkan kepada pengguna melalui komponen UI yang
native ke platform. Ruang tersebut ditampilkan menggunakan jenis tampilan yang sama dengan
yang telah digunakan untuk membuat tata letak, dan dapat diformat agar cocok dengan desain visual
pengalaman pengguna tempatnya berada. Dalam istilah coding, ini berarti
saat iklan native dimuat, aplikasi Anda menerima
objek NativeAd
yang berisi asetnya, dan aplikasi (bukan Google Mobile Ads
SDK) kemudian bertanggung jawab untuk menampilkannya.
Secara garis besar, ada dua bagian agar berhasil menerapkan Iklan Native: memuat iklan melalui SDK dan menampilkan konten iklan di aplikasi Anda. Halaman ini berkaitan dengan penggunaan SDK untuk memuat iklan native.
Prasyarat
- Impor Google Mobile Ads SDK, dengan sendirinya atau sebagai bagian dari Firebase.
Memuat Iklan
Iklan native dimuat melalui
class AdLoader
,
yang memiliki
class
Builder
sendiri untuk menyesuaikannya selama pembuatan. Dengan menambahkan pemroses ke AdLoader
saat membuatnya, aplikasi menentukan jenis iklan native yang siap
diterima. AdLoader
kemudian meminta hanya jenis tersebut.
Membuat AdLoader
Kode berikut menunjukkan cara membuat AdLoader
yang dapat memuat
iklan native:
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()
Bersiap untuk format NativeAd
Metode pertama di atas bertanggung jawab untuk menyiapkan AdLoader
untuk format
NativeAd:
forNativeAd()
- Memanggil metode ini akan mengonfigurasi
AdLoader
untuk meminta iklan native. Setelah iklan berhasil dimuat, metodeonNativeAdLoaded()
objek pemroses akan dipanggil.
Saat AdLoader
membuat permintaan iklan, Google akan memilih dan menampilkan iklan yang memaksimalkan hasil penayang.
Menggunakan AdListener dengan AdLoader
Selama pembuatan AdLoader
di atas, fungsi withAdListener
menetapkan
AdListener
.
Ini adalah langkah opsional. Metode ini menggunakan AdListener
sebagai satu-satunya parameter, yang menerima callback dari AdLoader
saat peristiwa siklus proses iklan berlangsung:
Java
.withAdListener(new AdListener() { // AdListener callbacks can be overridden here. })
Kotlin
.withAdListener(object : AdListener() { // AdListener callbacks can be overridden here. })
Memuat iklan
Setelah selesai membuat AdLoader
, saatnya menggunakannya untuk memuat iklan.
Ada dua metode yang tersedia untuk pengujian ini: loadAd()
dan loadAds()
.
Metode loadAd()
mengirimkan permintaan untuk satu iklan:
loadAd()
- Metode ini mengirim permintaan untuk satu iklan.
Java
adLoader.loadAd(new AdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdRequest.Builder().build())
Metode loadAds()
mengirim permintaan untuk beberapa iklan (hingga 5):
Java
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
adLoader.loadAds(AdRequest.Builder().build(), 3)
Kedua metode ini menggunakan objek
AdRequest
sebagai parameter pertamanya. Ini adalah class AdRequest
yang sama yang digunakan oleh banner dan interstisial, dan Anda dapat menggunakan metode class AdRequest
untuk menambahkan informasi penargetan, seperti yang Anda lakukan dengan format iklan lainnya.
loadAds()
membutuhkan parameter tambahan: jumlah iklan yang harus dicoba dimuat oleh SDK untuk permintaan tersebut. Jumlah ini dibatasi maksimal lima, dan tidak ada jaminan bahwa SDK akan menampilkan jumlah persis iklan yang diminta. Jika beberapa iklan ditampilkan oleh panggilan ke loadAds()
, iklan tersebut akan
berbeda satu sama lain.
Setelah panggilan ke loadAd()
, satu callback akan dilakukan ke metode pemroses
yang ditentukan di atas untuk menayangkan objek iklan
native atau melaporkan error.
Setelah panggilan ke loadAds()
, beberapa callback tersebut akan dilakukan (setidaknya satu, dan tidak lebih dari jumlah iklan yang diminta). Aplikasi yang meminta beberapa iklan
harus memanggil AdLoader.isLoading()
dalam penerapan callback-nya untuk
menentukan apakah proses pemuatan telah selesai.
Berikut adalah contoh yang menunjukkan cara memeriksa isLoading()
di callback onNativeAdLoaded()
:
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)
Membersihkan
Pastikan untuk menggunakan metode destroy()
pada iklan native yang dimuat. Tindakan ini akan mengosongkan
resource yang digunakan dan mencegah kebocoran memori.
Pastikan semua referensi NativeAd
dihancurkan dalam metode onDestroy()
aktivitas Anda.
Dalam callback onNativeAdLoaded
, pastikan untuk memusnahkan iklan native yang sudah ada yang akan dihilangkan referensinya.
Pemeriksaan kunci lainnya adalah jika aktivitas dihancurkan
dan jika demikian, panggil destroy()
pada iklan yang ditampilkan dan segera kembali:
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()
Selalu uji iklan uji coba
Saat membuat dan menguji aplikasi, pastikan Anda menggunakan iklan pengujian, bukan iklan produksi aktif. Jika Anda tidak melakukannya, akun Anda dapat ditangguhkan.
Cara termudah untuk memuat iklan pengujian adalah menggunakan ID unit iklan pengujian khusus kami untuk Native Advanced di Android:
ca-app-pub-3940256099942544/2247696110
Ini telah dikonfigurasi secara khusus untuk menampilkan iklan pengujian untuk setiap permintaan, dan Anda bebas menggunakannya dalam aplikasi Anda sendiri saat coding, pengujian, dan proses debug. Pastikan Anda menggantinya dengan ID unit iklan sendiri sebelum memublikasikan aplikasi.
Untuk informasi selengkapnya tentang cara kerja iklan uji coba Mobile Ads SDK, lihat Menguji Iklan.
Kapan harus meminta iklan
Aplikasi yang menampilkan iklan native bebas memintanya terlebih dahulu sebelum iklan benar-benar akan ditampilkan. Dalam banyak kasus, ini adalah praktik yang direkomendasikan. Aplikasi yang menampilkan daftar item yang berisi iklan native yang dicampur, misalnya, dapat memuat iklan native untuk seluruh daftar, dengan mengetahui bahwa beberapa iklan native hanya akan ditampilkan setelah pengguna men-scroll tampilan dan beberapa iklan mungkin tidak ditampilkan sama sekali.
Akselerasi hardware untuk iklan video
Agar iklan video berhasil ditampilkan dalam tampilan iklan native Anda, akselerasi hardware harus diaktifkan.
Akselerasi hardware diaktifkan secara default, tetapi beberapa aplikasi mungkin memilih untuk menonaktifkannya. Jika ini berlaku pada aplikasi Anda, sebaiknya aktifkan akselerasi hardware untuk class Activity yang menggunakan iklan.
Mengaktifkan akselerasi hardware
Jika aplikasi Anda tidak berperilaku sebagaimana mestinya saat akselerasi hardware
diaktifkan secara global, Anda juga dapat mengontrolnya untuk aktivitas individual. Untuk mengaktifkan atau
menonaktifkan akselerasi hardware, Anda dapat menggunakan atribut android:hardwareAccelerated
untuk elemen
<application>
dan
<activity>
di AndroidManifest.xml
Anda. Contoh berikut mengaktifkan akselerasi
hardware untuk seluruh aplikasi, tetapi menonaktifkannya untuk satu aktivitas:
<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>
Lihat panduan akselerasi HW untuk informasi selengkapnya tentang opsi untuk mengontrol akselerasi hardware. Perhatikan bahwa setiap tampilan iklan tidak dapat diaktifkan untuk akselerasi hardware jika Aktivitas dinonaktifkan, sehingga Aktivitas itu sendiri harus mengaktifkan akselerasi hardware.
Menampilkan NativeAd
Setelah iklan dimuat, Anda hanya perlu menampilkannya kepada pengguna. Lihat panduan Native Advanced untuk mengetahui caranya.