Iklan Asli

Iklan asli adalah aset iklan yang disajikan kepada pengguna melalui komponen UI yang asli dari platform. Mereka ditampilkan menggunakan jenis tampilan yang sama dengan yang Anda gunakan untuk membuat tata letak, dan dapat diformat agar sesuai dengan desain visual dari pengalaman pengguna tempat mereka tinggal. Dalam istilah pengkodean, ini berarti bahwa ketika iklan bawaan 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 untuk berhasil menerapkan Iklan Bawaan: memuat iklan melalui SDK dan menampilkan konten iklan di aplikasi Anda. Laman ini berkaitan dengan penggunaan SDK untuk memuat iklan.

Prasyarat

Muat Iklan

Iklan asli dimuat melalui kelas AdLoader , yang memiliki kelas Builder sendiri untuk menyesuaikannya selama pembuatan. Dengan menambahkan pendengar ke AdLoader saat membangunnya, aplikasi menentukan jenis iklan bawaan yang siap diterima. AdLoader kemudian hanya meminta jenis tersebut.

Buat Pemuat Iklan

Kode berikut menunjukkan cara membuat AdLoader yang dapat memuat iklan bawaan:

Jawa

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

Siapkan format NativeAd

Metode pertama di atas bertanggung jawab untuk menyiapkan AdLoader untuk format NativeAd:

forNativeAd()
Memanggil metode ini mengonfigurasi AdLoader untuk meminta iklan bawaan. Saat iklan berhasil dimuat, metode onNativeAdLoaded() objek pendengar akan dipanggil.

Saat AdLoader membuat permintaan iklan, Google memilih dan menampilkan iklan yang memaksimalkan hasil penayang.

Gunakan AdListener dengan AdLoader

Selama pembuatan AdLoader di atas, fungsi withAdListener menyetel AdListener .

Ini merupakan langkah opsional. Metode ini menggunakan AdListener sebagai parameter tunggalnya, yang menerima callback dari AdLoader saat peristiwa siklus hidup iklan terjadi:

Jawa

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

Kotlin

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

Memuat iklan

Setelah Anda selesai membuat AdLoader , saatnya menggunakannya untuk memuat iklan. Ada dua metode yang tersedia untuk ini: loadAd() dan loadAds() .

Metode loadAd() mengirimkan permintaan untuk satu iklan:

loadAd()
Metode ini mengirimkan permintaan untuk satu iklan.

Jawa

adLoader.loadAd(new AdRequest.Builder().build());

Kotlin

adLoader.loadAd(AdRequest.Builder().build())

Metode loadAds() mengirimkan permintaan untuk beberapa iklan (hingga 5):

Jawa

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

Kotlin

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

Kedua metode ini mengambil objek AdRequest sebagai parameter pertama. Ini adalah kelas AdRequest yang sama yang digunakan oleh spanduk dan pengantara, dan Anda dapat menggunakan metode kelas AdRequest untuk menambahkan informasi penargetan , seperti yang Anda lakukan dengan format iklan lainnya.

loadAds() mengambil parameter tambahan: jumlah iklan yang harus coba dimuat oleh SDK untuk permintaan tersebut. Jumlah ini dibatasi maksimal lima, dan SDK tidak menjamin akan menampilkan jumlah persis iklan yang diminta. Jika beberapa iklan ditampilkan melalui panggilan ke loadAds() , iklan tersebut akan berbeda satu sama lain.

Setelah panggilan ke loadAd() , satu panggilan balik akan dilakukan ke metode listener yang ditentukan di atas untuk menayangkan objek iklan bawaan atau melaporkan kesalahan.

Setelah panggilan ke loadAds() , beberapa panggilan balik semacam itu akan dilakukan (setidaknya satu, dan tidak lebih dari jumlah iklan yang diminta). Aplikasi yang meminta beberapa iklan harus memanggil AdLoader.isLoading() dalam penerapan callbacknya untuk menentukan apakah proses pemuatan telah selesai.

Berikut adalah contoh yang menunjukkan cara memeriksa isLoading() di callback onNativeAdLoaded() :

Jawa

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 bawaan yang dimuat. Ini membebaskan sumber daya yang digunakan dan mencegah kebocoran memori.

Pastikan semua referensi NativeAd dimusnahkan dalam metode onDestroy() aktivitas Anda.

Dalam callback onNativeAdLoaded Anda, pastikan untuk menghancurkan semua iklan bawaan yang ada yang akan di-dereferensi.

Pemeriksaan penting lainnya adalah jika aktivitas dimusnahkan dan jika demikian, panggil destroy() pada iklan yang dikembalikan dan segera kembali:

Jawa

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 dengan iklan uji

Saat membuat dan menguji aplikasi Anda, pastikan Anda menggunakan iklan percobaan daripada iklan produksi langsung. Kegagalan untuk melakukannya dapat menyebabkan penangguhan akun Anda.

Cara termudah untuk memuat iklan percobaan adalah dengan menggunakan ID unit iklan percobaan khusus kami untuk Native Advanced di Android:

ca-app-pub-3940256099942544/2247696110

Ini telah dikonfigurasi secara khusus untuk menampilkan iklan percobaan untuk setiap permintaan, dan Anda bebas menggunakannya di aplikasi Anda sendiri saat mengkode, menguji, dan men-debug. Pastikan Anda menggantinya dengan ID unit iklan Anda sendiri sebelum memublikasikan aplikasi Anda.

Untuk informasi selengkapnya tentang cara kerja iklan percobaan SDK Iklan Seluler, lihat Iklan Percobaan .

Kapan harus meminta iklan

Aplikasi yang menampilkan iklan bawaan bebas memintanya terlebih dahulu sebelum benar-benar ditampilkan. Dalam banyak kasus, ini adalah praktik yang direkomendasikan. Aplikasi yang menampilkan daftar item dengan iklan bawaan yang dicampur, misalnya, dapat memuat iklan bawaan untuk seluruh daftar, mengetahui bahwa beberapa hanya akan ditampilkan setelah pengguna menggulir tampilan dan beberapa mungkin tidak ditampilkan sama sekali.

Akselerasi perangkat keras untuk iklan video

Agar iklan video berhasil ditampilkan di tampilan iklan bawaan Anda, akselerasi perangkat keras harus diaktifkan.

Akselerasi perangkat keras diaktifkan secara default, tetapi beberapa aplikasi mungkin memilih untuk menonaktifkannya. Jika ini berlaku untuk aplikasi Anda, sebaiknya aktifkan akselerasi perangkat keras untuk kelas Aktivitas yang menggunakan iklan.

Mengaktifkan akselerasi perangkat keras

Jika aplikasi Anda tidak berperilaku baik dengan akselerasi perangkat keras yang diaktifkan secara global, Anda juga dapat mengontrolnya untuk aktivitas individual. Untuk mengaktifkan atau menonaktifkan akselerasi perangkat keras, Anda dapat menggunakan atribut android:hardwareAccelerated untuk elemen <application> dan <activity> di AndroidManifest.xml Anda. Contoh berikut mengaktifkan akselerasi perangkat keras 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 lebih lanjut tentang opsi untuk mengontrol akselerasi perangkat keras. Perhatikan bahwa tampilan iklan individual tidak dapat diaktifkan untuk akselerasi perangkat keras jika Aktivitas dinonaktifkan, jadi Aktivitas itu sendiri harus mengaktifkan akselerasi perangkat keras.

Tampilkan NativeAd

Setelah Anda memuat iklan, yang tersisa hanyalah menampilkannya kepada pengguna Anda. Buka panduan Native Advanced kami untuk melihat caranya.

,

Iklan asli adalah aset iklan yang disajikan kepada pengguna melalui komponen UI yang asli dari platform. Mereka ditampilkan menggunakan jenis tampilan yang sama dengan yang Anda gunakan untuk membuat tata letak, dan dapat diformat agar sesuai dengan desain visual dari pengalaman pengguna tempat mereka tinggal. Dalam istilah pengkodean, ini berarti bahwa ketika iklan bawaan 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 untuk berhasil menerapkan Iklan Bawaan: memuat iklan melalui SDK dan menampilkan konten iklan di aplikasi Anda. Laman ini berkaitan dengan penggunaan SDK untuk memuat iklan.

Prasyarat

Muat Iklan

Iklan asli dimuat melalui kelas AdLoader , yang memiliki kelas Builder sendiri untuk menyesuaikannya selama pembuatan. Dengan menambahkan pendengar ke AdLoader saat membangunnya, aplikasi menentukan jenis iklan bawaan yang siap diterima. AdLoader kemudian hanya meminta jenis tersebut.

Buat Pemuat Iklan

Kode berikut menunjukkan cara membuat AdLoader yang dapat memuat iklan bawaan:

Jawa

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

Siapkan format NativeAd

Metode pertama di atas bertanggung jawab untuk menyiapkan AdLoader untuk format NativeAd:

forNativeAd()
Memanggil metode ini mengonfigurasi AdLoader untuk meminta iklan bawaan. Saat iklan berhasil dimuat, metode onNativeAdLoaded() objek pendengar akan dipanggil.

Saat AdLoader membuat permintaan iklan, Google memilih dan menampilkan iklan yang memaksimalkan hasil penayang.

Gunakan AdListener dengan AdLoader

Selama pembuatan AdLoader di atas, fungsi withAdListener menyetel AdListener .

Ini merupakan langkah opsional. Metode ini menggunakan AdListener sebagai parameter tunggalnya, yang menerima callback dari AdLoader saat peristiwa siklus hidup iklan terjadi:

Jawa

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

Kotlin

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

Memuat iklan

Setelah Anda selesai membuat AdLoader , saatnya menggunakannya untuk memuat iklan. Ada dua metode yang tersedia untuk ini: loadAd() dan loadAds() .

Metode loadAd() mengirimkan permintaan untuk satu iklan:

loadAd()
Metode ini mengirimkan permintaan untuk satu iklan.

Jawa

adLoader.loadAd(new AdRequest.Builder().build());

Kotlin

adLoader.loadAd(AdRequest.Builder().build())

Metode loadAds() mengirimkan permintaan untuk beberapa iklan (hingga 5):

Jawa

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

Kotlin

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

Kedua metode ini mengambil objek AdRequest sebagai parameter pertama. Ini adalah kelas AdRequest yang sama yang digunakan oleh spanduk dan pengantara, dan Anda dapat menggunakan metode kelas AdRequest untuk menambahkan informasi penargetan , seperti yang Anda lakukan dengan format iklan lainnya.

loadAds() mengambil parameter tambahan: jumlah iklan yang harus coba dimuat oleh SDK untuk permintaan tersebut. Jumlah ini dibatasi maksimal lima, dan SDK tidak menjamin akan menampilkan jumlah persis iklan yang diminta. Jika beberapa iklan ditampilkan melalui panggilan ke loadAds() , iklan tersebut akan berbeda satu sama lain.

Setelah panggilan ke loadAd() , satu panggilan balik akan dilakukan ke metode listener yang ditentukan di atas untuk menayangkan objek iklan bawaan atau melaporkan kesalahan.

Setelah panggilan ke loadAds() , beberapa panggilan balik semacam itu akan dilakukan (setidaknya satu, dan tidak lebih dari jumlah iklan yang diminta). Aplikasi yang meminta beberapa iklan harus memanggil AdLoader.isLoading() dalam penerapan callbacknya untuk menentukan apakah proses pemuatan telah selesai.

Berikut adalah contoh yang menunjukkan cara memeriksa isLoading() di callback onNativeAdLoaded() :

Jawa

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 bawaan yang dimuat. Ini membebaskan sumber daya yang digunakan dan mencegah kebocoran memori.

Pastikan semua referensi NativeAd dimusnahkan dalam metode onDestroy() aktivitas Anda.

Dalam callback onNativeAdLoaded Anda, pastikan untuk menghancurkan semua iklan bawaan yang ada yang akan di-dereferensi.

Pemeriksaan penting lainnya adalah jika aktivitas dimusnahkan dan jika demikian, panggil destroy() pada iklan yang dikembalikan dan segera kembali:

Jawa

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 dengan iklan uji

Saat membuat dan menguji aplikasi Anda, pastikan Anda menggunakan iklan percobaan daripada iklan produksi langsung. Kegagalan untuk melakukannya dapat menyebabkan penangguhan akun Anda.

Cara termudah untuk memuat iklan percobaan adalah dengan menggunakan ID unit iklan percobaan khusus kami untuk Native Advanced di Android:

ca-app-pub-3940256099942544/2247696110

Ini telah dikonfigurasi secara khusus untuk menampilkan iklan percobaan untuk setiap permintaan, dan Anda bebas menggunakannya di aplikasi Anda sendiri saat mengkode, menguji, dan men-debug. Pastikan Anda menggantinya dengan ID unit iklan Anda sendiri sebelum memublikasikan aplikasi Anda.

Untuk informasi selengkapnya tentang cara kerja iklan percobaan SDK Iklan Seluler, lihat Iklan Percobaan .

Kapan harus meminta iklan

Aplikasi yang menampilkan iklan bawaan bebas memintanya terlebih dahulu sebelum benar-benar ditampilkan. Dalam banyak kasus, ini adalah praktik yang direkomendasikan. Aplikasi yang menampilkan daftar item dengan iklan bawaan yang dicampur, misalnya, dapat memuat iklan bawaan untuk seluruh daftar, mengetahui bahwa beberapa hanya akan ditampilkan setelah pengguna menggulir tampilan dan beberapa mungkin tidak ditampilkan sama sekali.

Akselerasi perangkat keras untuk iklan video

Agar iklan video berhasil ditampilkan di tampilan iklan bawaan Anda, akselerasi perangkat keras harus diaktifkan.

Akselerasi perangkat keras diaktifkan secara default, tetapi beberapa aplikasi mungkin memilih untuk menonaktifkannya. Jika ini berlaku untuk aplikasi Anda, sebaiknya aktifkan akselerasi perangkat keras untuk kelas Aktivitas yang menggunakan iklan.

Mengaktifkan akselerasi perangkat keras

Jika aplikasi Anda tidak berperilaku baik dengan akselerasi perangkat keras yang diaktifkan secara global, Anda juga dapat mengontrolnya untuk aktivitas individual. Untuk mengaktifkan atau menonaktifkan akselerasi perangkat keras, Anda dapat menggunakan atribut android:hardwareAccelerated untuk elemen <application> dan <activity> di AndroidManifest.xml Anda. Contoh berikut mengaktifkan akselerasi perangkat keras 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 lebih lanjut tentang opsi untuk mengontrol akselerasi perangkat keras. Perhatikan bahwa tampilan iklan individual tidak dapat diaktifkan untuk akselerasi perangkat keras jika Aktivitas dinonaktifkan, jadi Aktivitas itu sendiri harus mengaktifkan akselerasi perangkat keras.

Tampilkan NativeAd

Setelah Anda memuat iklan, yang tersisa hanyalah menampilkannya kepada pengguna Anda. Buka panduan Native Advanced kami untuk melihat caranya.