Iklan native adalah aset iklan yang ditampilkan kepada pengguna melalui komponen UI yang native ke platform. File tersebut ditampilkan menggunakan class yang sama dengan yang telah Anda gunakan di storyboard, dan dapat diformat agar sesuai dengan desain visual aplikasi Anda.
Saat iklan native dimuat, aplikasi Anda menerima objek iklan yang berisi asetnya, dan aplikasi—bukan Google Mobile Ads SDK—yang kemudian bertanggung jawab untuk menampilkannya.
Secara garis besar, ada dua bagian agar berhasil menerapkan iklan native: Memuat iklan menggunakan SDK, lalu menampilkan konten iklan di aplikasi Anda.
Halaman ini menunjukkan cara menggunakan SDK untuk memuat iklan native iklan native.
Prasyarat
- Selesaikan Panduan memulai.
Selalu uji dengan iklan percobaan
Saat membuat dan menguji aplikasi, pastikan Anda menggunakan iklan pengujian, bukan iklan produksi aktif.
Cara termudah untuk memuat iklan pengujian adalah menggunakan ID unit iklan pengujian khusus kami untuk iklan native di iOS:
/6499/example/native
Telah dikonfigurasi secara khusus untuk menampilkan iklan pengujian untuk setiap permintaan, dan Anda dapat menggunakannya di aplikasi sendiri saat melakukan 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 Google Mobile Ads SDK, lihat Menguji iklan.
Memuat iklan
Iklan native dimuat dengan class
GADAdLoader
, yang mengirim pesan ke delegasinya sesuai dengan
protokol
GADAdLoaderDelegate
.
Selain format native yang ditetapkan sistem, Anda juga dapat membuat
format iklan native kustom
sendiri yang dapat digunakan untuk iklan native yang dijual langsung. Format iklan native kustom memungkinkan Anda
meneruskan data terstruktur arbitrer ke aplikasi. Iklan ini diwakili oleh
class GADCustomNativeAd
.
Melakukan inisialisasi loader iklan
Sebelum dapat memuat iklan, Anda harus menginisialisasi loader iklan.
Kode berikut menunjukkan cara menginisialisasi GADAdLoader
:
Swift
adLoader = GADAdLoader(adUnitID: "/6499/example/native",
rootViewController: self,
adTypes: [ .native ],
options: [ ... ad loader options objects ... ])
adLoader.delegate = self
Objective-C
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"/6499/example/native"
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;
Anda memerlukan ID unit iklan (Anda dapat menggunakan ID pengujian), konstanta untuk meneruskan
array adTypes
guna menentukan format native mana yang ingin Anda minta, dan opsi
apa pun yang ingin Anda tetapkan dalam parameter options
. Daftar kemungkinan
nilai untuk parameter options
dapat ditemukan di halaman Menetapkan Opsi
Iklan Native.
Array adTypes
harus berisi satu atau beberapa konstanta berikut:
Mengimplementasikan delegasi loader iklan
Delegasi loader iklan perlu menerapkan protokol khusus untuk jenis iklan Anda.
Untuk iklan native, protokol GADNativeAdLoaderDelegate
menyertakan pesan yang dikirim ke
delegasi saat iklan native telah dimuat.
Swift
public func adLoader(_ adLoader: GADAdLoader,
didReceive nativeAd: GADNativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd;
Protokol GADCustomNativeAdLoaderDelegate
menyertakan pesan yang dikirim ke
delegasi saat iklan template kustom telah dimuat.
Swift
func adLoader(_ adLoader: GADAdLoader,
Receive customNativeAd: GADCustomNativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveCustomNativeAd:(GADCustomNativeAd *) customNativeAd;
Permintaan iklan
Setelah GADAdLoader
diinisialisasi, panggil metode loadRequest:
untuk meminta iklan:
Swift
adLoader.load(GAMRequest())
Objective-C
[self.adLoader loadRequest:[GAMRequest request]];
Metode
loadRequest:
di
GADAdLoader
menerima objek GAMRequest
yang sama seperti banner dan interstisial. Anda dapat menggunakan objek permintaan untuk
menambahkan informasi penargetan,
seperti yang Anda lakukan dengan jenis iklan lainnya.
Muat beberapa iklan (opsional)
Untuk memuat beberapa iklan dalam satu permintaan, tetapkan objek GADMultipleAdsAdLoaderOptions
saat melakukan inisialisasi GADAdLoader
.
Swift
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "/6499/example/native",
rootViewController: self,
adTypes: [ .native ],
options: [ multipleAdOptions ])
Objective-C
GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
[[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"/6499/example/native"
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
Jumlah iklan per permintaan dibatasi hingga lima, dan tidak dijamin bahwa SDK akan menampilkan jumlah iklan yang diminta persis.
Iklan Google yang ditampilkan akan berbeda satu sama lain, meskipun iklan dari inventaris yang direservasi atau pembeli pihak ketiga tidak dijamin unik.
Jangan gunakan class GADMultipleAdsAdLoaderOptions
jika Anda menggunakan mediasi,
karena permintaan untuk beberapa iklan native saat ini tidak berfungsi untuk ID unit iklan yang
telah dikonfigurasi untuk mediasi.
Menentukan kapan pemuatan selesai
Setelah aplikasi memanggil loadRequest:
, aplikasi bisa mendapatkan hasil permintaan menggunakan
panggilan ke:
adLoader:didFailToReceiveAdWithError:
diGADAdLoaderDelegate
adLoader:didReceiveNativeAd:
dalamGADNativeAdLoaderDelegate
Permintaan untuk satu iklan akan menghasilkan satu panggilan ke salah satu metode tersebut.
Permintaan untuk beberapa iklan akan menghasilkan setidaknya satu callback untuk metode di atas, tetapi tidak lebih dari jumlah maksimum iklan yang diminta.
Selain itu, GADAdLoaderDelegate
menawarkan callback
adLoaderDidFinishLoading
. Metode delegasi ini menunjukkan bahwa loader iklan telah selesai memuat iklan, dan tidak ada iklan atau error lainnya yang akan dilaporkan untuk permintaan tersebut. Berikut
contoh cara menggunakannya saat memuat beberapa iklan native sekaligus:
Swift
class ViewController: UIViewController, GADNativeAdLoaderDelegate {
var adLoader: GADAdLoader!
override func viewDidLoad() {
super.viewDidLoad()
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "/6499/example/native",
rootViewController: self,
adTypes: [ .native ],
options: [ multipleAdOptions ])
adLoader.delegate = self
adLoader.load(GADRequest())
}
func adLoader(_ adLoader: GADAdLoader,
didReceive nativeAd: GADNativeAd) {
// A native ad has loaded, and can be displayed.
}
func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
// The adLoader has finished loading ads, and a new request can be sent.
}
}
Objective-C
@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
[[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"/6499/example/native"
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
self.adLoader.delegate = self;
[self.adLoader loadRequest:[GADRequest request]];
}
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd {
// A native ad has loaded, and can be displayed.
}
- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
// The adLoader has finished loading ads, and a new request can be sent.
}
@end
Menangani permintaan yang gagal
Protokol di atas memperluas protokol GADAdLoaderDelegate
, yang menentukan pesan yang dikirim saat iklan gagal dimuat.
Swift
public func adLoader(_ adLoader: GADAdLoader,
didFailToReceiveAdWithError error: NSError)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didFailToReceiveAdWithError:(NSError *)error;
Dapatkan notifikasi peristiwa iklan native
Agar mendapatkan pemberitahuan tentang peristiwa yang terkait dengan interaksi iklan native, tetapkan properti delegasi iklan native:
Swift
nativeAd.delegate = self
Objective-C
nativeAd.delegate = self;
Lalu, terapkan
GADNativeAdDelegate
untuk menerima panggilan delegasi berikut:
Swift
func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
// The native ad was shown.
}
func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
// The native ad was clicked on.
}
func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
// The native ad will present a full screen view.
}
func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
// The native ad will dismiss a full screen view.
}
func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
// The native ad did dismiss a full screen view.
}
func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
// The native ad will cause the app to become inactive and
// open a new app.
}
Objective-C
- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
// The native ad was shown.
}
- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
// The native ad was clicked on.
}
- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
// The native ad will present a full screen view.
}
- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
// The native ad will dismiss a full screen view.
}
- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
// The native ad did dismiss a full screen view.
}
- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
// The native ad will cause the app to become inactive and
// open a new app.
}
Praktik terbaik
Ikuti aturan ini saat memuat iklan.
Aplikasi yang menggunakan iklan native dalam daftar harus memasukkan daftar iklan ke dalam cache terlebih dahulu.
Saat menyimpan iklan ke cache, hapus cache dan muat ulang setelah satu jam.
Jangan panggil
loadRequest:
padaGADAdLoader
hingga permintaan pertama selesai dimuat.
Tampilkan iklan Anda
Setelah Anda memuat iklan, yang tersisa hanyalah menampilkannya kepada pengguna. Buka panduan Native Advanced untuk melihat caranya.