Panduan ini menunjukkan cara menggunakan add-on iklan native untuk menerapkan iklan native AdMob iklan di aplikasi Unity, serta beberapa hal penting yang perlu dipertimbangkan selama prosesnya.
Iklan Native sesuai dengan bentuk dan fungsi pengalaman pengguna yang mereka ditempatkan. Iklan ini juga menyesuaikan dengan desain visual aplikasi tempat pemasangannya. Format iklan native AdMob memungkinkan penayang merender iklan yang berfungsi dengan konten secara lancar. Anda dapat menggunakan teknologi ini untuk menerapkan rendering kustom yang dibuat sangat spesifik yang memanfaatkan kode native sepenuhnya di aplikasi Unity.
Iklan native ditampilkan menggunakan jenis GameObjects
yang sama dengan yang Anda
membangun aplikasi Anda dan dapat diformat agar sesuai dengan desain visual
pengalaman pengguna
di mana mereka tinggal. Saat iklan native dimuat, aplikasi Anda
akan menerima objek native yang berisi asetnya dan aplikasi Unity (bukan
SDK) akan menampilkannya.
Prasyarat
- Plugin Google Mobile Ads Unity versi 7.0.0 atau yang lebih tinggi.
- Selesaikan Panduan memulai.
- Download dan instal add-on iklan native.
Memuat format iklan native
Iklan native dimuat melalui class AdLoader
, yang memiliki class
AdLoader.Builder
-nya sendiri untuk menyesuaikannya selama pembuatan. Metode ForNativeAd()
mengonfigurasi AdLoader untuk menangani iklan native.
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
}
Mendaftar ke peristiwa iklan AdLoader
Agar diberi tahu saat iklan native berhasil dimuat atau gagal dimuat, tambahkan delegator ke class AdLoader
untuk peristiwa yang tercantum di bawah.
OnNativeAdLoaded
Dipanggil saat iklan native berhasil dimuat. Anda harus memiliki untuk peristiwa ini guna mengakses iklan yang dimuat.
OnAdFailedToLoad
Dipanggil saat iklan native gagal dimuat.
Memuat iklan
Setelah selesai mem-build AdLoader
, panggil metode LoadAd()
-nya untuk
meminta iklan:
adLoader.LoadAd(new AdRequest.Builder().Build());
Menggabungkan permintaan iklan
Cuplikan kode di bawah menunjukkan cara membuat AdLoader
yang
dikonfigurasikan untuk meminta iklan native, menetapkan delegasi untuk iklan yang berhasil dan gagal
dimuat, dan membuat permintaan iklan.
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
adLoader.OnNativeAdLoaded += this.HandleNativeAdLoaded;
adLoader.OnAdFailedToLoad += this.HandleAdFailedToLoad;
adLoader.LoadAd(new AdRequest.Builder().Build());
}
Menangani pemuatan iklan yang gagal
Peristiwa OnAdFailedToLoad
adalah dari jenis EventHandle<AdFailedToLoadEventArgs>
.
Mengurai alasan kegagalan pemuatan iklan dari peristiwa ini ditampilkan di bawah.
private void RequestNativeAd() {
...
adLoader.OnAdFailedToLoad += this.HandleNativeAdFailedToLoad;
}
private void HandleNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) {
Debug.Log("Native ad failed to load: " + args.Message);
}
Menampilkan iklan native
Saat Iklan Native dimuat, peristiwa iklan untuk format iklan yang terkait dipanggil. Selanjutnya, aplikasi Anda bertanggung jawab untuk menampilkan iklan, meskipun tidak harus segera melakukannya.
Menangani pemuatan iklan
Peristiwa OnNativeAdLoaded
adalah dari jenis EventHandler<NativeAdEventArgs>
. Tujuan
iklan, yang dienkapsulasi dalam objek NativeAd
, dapat diambil dari
NativeAdEventArgs
seperti yang ditunjukkan:
private NativeAd nativeAd;
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
}
Mengambil aset iklan native
Setelah iklan dimuat, asetnya dapat diakses seperti yang ditunjukkan di bawah. Aset
grafis ditampilkan sebagai objek Texture2D
dan aset teks ditampilkan sebagai
objek string
.
private bool nativeAdLoaded;
private NativeAd nativeAd;
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for the icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
// Get string for headline asset of native ad.
string headline = this.nativeAd.GetHeadlineText();
}
}
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}
Perhatikan bahwa aset iklan hanya boleh diakses di thread utama, misalnya,
dari metode Update()
skrip Unity. Perhatikan juga bahwa aset berikut
tidak selalu dijamin ada, dan
harus diperiksa sebelum
ditampilkan:
GetStarRating()
GetStore()
GetPrice()
GetAdvertiser()
GetIconTexture()
Aset AdChoices
Merupakan persyaratan untuk menampilkan aset iklan AdChoices sebagai bagian dari iklan native. Selain itu, aset iklan AdChoices harus mudah dilihat, jadi pilih warna dan gambar latar belakang dengan tepat.
Mendaftarkan GameObjects untuk aset iklan
Anda harus mendaftarkan GameObject
agar aset iklan ditampilkan di
aplikasi Unity. Jika pendaftaran berhasil, metode yang digunakan untuk mendaftarkan
GameObject
menampilkan bool
. Untuk List<GameObject>
, metode ini akan menampilkan
int
yang menunjukkan jumlah GameObject
yang berhasil didaftarkan.
Jika pendaftaran aset iklan tidak berhasil, tayangan dan klik pada iklan native yang sesuai tidak akan dikenali.
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register the icon ad asset.
}
GameObject
yang didaftarkan untuk aset iklan harus memiliki Collider konveks
komponen yang mewakili ukuran dan bentuk GameObject
. Jika
GameObject
objek yang didaftarkan ke aset iklan tidak memiliki komponen Collider
atau memiliki konfigurasi yang salah, iklan native tidak akan beroperasi dengan benar.
Dalam cuplikan kode di bawah, BoxCollider
ditambahkan ke GameObject
yang menggunakan
TextMesh
untuk menampilkan aset iklan judul dari iklan native. Setelah
BoxCollider
disertakan ke GameObject
, dan secara otomatis akan diskalakan ke
mengakomodasi teks komponen TextMesh
.
// Create GameObject that will display the headline ad asset.
GameObject headline = new GameObject();
headline.AddComponent<TextMesh>();
headline.GetComponent<TextMesh>().characterSize = 0.5 f;
headline.GetComponent<TextMesh>().anchor = TextAnchor.MiddleCenter;
headline.GetComponent<TextMesh>().color = Color.black;
// Get string of the headline asset.
string headlineText = this.nativeAd.GetHeadlineText();
headline.GetComponent<TextMesh>().text = headlineText;
// Add box collider to the GameObject which will automatically scale.
headline.AddComponent<BoxCollider>();
Demo
Kode berikut menunjukkan cara mengambil aset ikon iklan native yang berhasil
dimuat, menampilkan aset iklan ikon dengan menetapkan tekstur Quad
,
dan mendaftarkan GameObject
yang akan digunakan untuk menampilkan aset. Proses ini
mengambil aset iklan dan mendaftarkannya ke kelas iklan native harus
diulang untuk setiap aset yang ditampilkan aplikasi.
private GameObject icon;
private bool nativeAdLoaded;
private NativeAd nativeAd;
...
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
icon = GameObject.CreatePrimitive(PrimitiveType.Quad);
icon.transform.position = new Vector3(1, 1, 1);
icon.transform.localScale = new Vector3(1, 1, 1);
icon.GetComponent<Renderer>().material.mainTexture = iconTexture;
// Register GameObject that will display icon asset of native ad.
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register ad asset.
}
}
}
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}