Iklan native adalah aset iklan yang disajikan kepada pengguna melalui komponen UI yang merupakan bawaan platform. Kelas tersebut ditampilkan menggunakan class yang sama dengan yang sudah Anda gunakan di {i>storyboard<i} Anda, dan dapat diformat agar sesuai dengan desain visual aplikasi Anda.
Saat iklan native dimuat, aplikasi akan menerima objek iklan yang berisi asetnya, dan aplikasi—bukan Google Mobile Ads SDK—kemudian bertanggung jawab untuk menampilkannya.
Secara umum, ada dua bagian untuk 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.
Prasyarat
- Selesaikan Panduan memulai.
Selalu uji dengan iklan percobaan
Saat membuat dan menguji aplikasi, pastikan Anda menggunakan iklan percobaan, bukan iklan produksi secara langsung.
Cara termudah untuk memuat iklan percobaan adalah dengan menggunakan ID unit iklan percobaan khusus untuk iklan native di iOS:
ca-app-pub-3940256099942544/3986624511
URL ini telah dikonfigurasi secara khusus guna menampilkan iklan percobaan untuk setiap permintaan, dan Anda dapat menggunakannya di aplikasi Anda sendiri saat melakukan coding, pengujian, dan proses debug. Pastikan bahwa Anda ganti dengan ID unit iklan Anda sendiri sebelum memublikasikan aplikasi.
Untuk informasi selengkapnya tentang cara kerja iklan percobaan Google Mobile Ads SDK, lihat Iklan percobaan.
Muat iklan
Iklan Native dimuat dengan
GADAdLoader
, yang mengirim pesan ke delegasinya sesuai dengan
GADAdLoaderDelegate
dan berperforma tinggi
karena merupakan protokol biner.
Melakukan inisialisasi loader iklan
Sebelum dapat memuat iklan, Anda harus melakukan inisialisasi loader iklan.
Kode berikut menunjukkan cara melakukan inisialisasi GADAdLoader
:
Swift
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ ... ad loader options objects ... ])
adLoader.delegate = self
Objective-C
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;
Anda memerlukan ID unit iklan (Anda bisa menggunakan ID pengujian), konstanta untuk meneruskan
Array adTypes
untuk menentukan format native yang ingin diminta, dan apa pun
opsi yang ingin Anda tetapkan dalam parameter options
. Daftar kemungkinan
untuk parameter options
dapat ditemukan di Setelan Iklan Native
Halaman opsi.
Array adTypes
harus berisi
konstanta ini :
Mengimplementasikan delegasi loader iklan
Delegasi pemuat iklan harus menerapkan protokol khusus untuk jenis iklan Anda.
Untuk iklan native, protokol GADNativeAdLoaderDelegate
menyertakan pesan
yang dikirim ke delegasi saat iklan native dimuat.
Swift
public func adLoader(_ adLoader: GADAdLoader,
didReceive nativeAd: GADNativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd;
Permintaan iklan
Setelah GADAdLoader
diinisialisasi, panggil metode loadRequest:
untuk
meminta iklan:
Swift
adLoader.load(GADRequest())
Objective-C
[self.adLoader loadRequest:[GADRequest request]];
Tujuan
loadRequest:
metode di
GADAdLoader
menerima hal yang sama
GADRequest
sebagai banner dan interstisial. Anda dapat menggunakan objek permintaan untuk menambahkan
informasi penargetan, sama seperti Anda
dengan jenis iklan lainnya.
Muat beberapa iklan (opsional)
Untuk memuat beberapa iklan dalam satu permintaan, tetapkan
GADMultipleAdsAdLoaderOptions
saat menginisialisasi GADAdLoader
.
Swift
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: self,
adTypes: [ .native ],
options: [ multipleAdOptions ])
Objective-C
GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
[[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
Jumlah iklan per permintaan dibatasi hingga lima, dan tidak ada jaminan bahwa SDK akan menampilkan jumlah iklan yang sama persis dengan yang diminta.
Semua 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 beberapa iklan native saat ini tidak berfungsi untuk ID unit iklan yang
telah dikonfigurasi untuk mediasi.
Menentukan kapan pemuatan selesai
Setelah memanggil loadRequest:
, aplikasi bisa mendapatkan hasil permintaan menggunakan
panggilan ke:
adLoader:didFailToReceiveAdWithError:
dalamGADAdLoaderDelegate
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 ke yang di atas tetapi tidak lebih dari jumlah maksimum iklan yang diminta.
Selain itu, GADAdLoaderDelegate
menawarkan adLoaderDidFinishLoading
. Metode delegasi ini menunjukkan bahwa loader iklan telah selesai memuat
iklan dan tidak ada iklan atau error lain yang akan dilaporkan untuk permintaan tersebut. Berikut adalah
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: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
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:@"ca-app-pub-3940256099942544/3986624511"
// The UIViewController parameter is nullable.
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;
Mendapatkan notifikasi tentang peristiwa iklan native
Agar diberi tahu tentang peristiwa yang terkait dengan interaksi iklan native, tetapkan delegasi iklan native:
Swift
nativeAd.delegate = self
Objective-C
nativeAd.delegate = self;
Kemudian implementasikan
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 melakukan pra-cache daftar iklan.
Saat melakukan pra-cache iklan, hapus cache Anda, lalu muat ulang setelah satu jam.
Jangan panggil
loadRequest:
lagi diGADAdLoader
hingga permintaan sebelumnya selesai dimuat, seperti yang ditunjukkan olehadLoaderDidFinishLoading:
.
Tampilkan iklan Anda
Setelah memuat iklan, yang tersisa hanyalah menampilkannya kepada pengguna. Buka halaman Native Advanced untuk melihat caranya.