Mulai

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Panduan ini menunjukkan cara menggunakan add-on iklan native untuk menerapkan iklan native AdMob di aplikasi Unity, serta beberapa hal penting yang perlu dipertimbangkan selama proses berlangsung.

Iklan native menyesuaikan dengan bentuk dan fungsi pengalaman pengguna di tempat lokasi iklan tersebut ditempatkan. Iklan ini juga cocok dengan desain visual aplikasi tempatnya berada. Format iklan native AdMob memungkinkan penayang merender iklan yang menyatu dengan konten. Anda dapat menggunakan teknologi ini untuk menerapkan rendering kustom yang benar-benar memanfaatkan kode native di aplikasi Unity.

Iklan native ditampilkan menggunakan jenis GameObjects yang sama dengan yang Anda gunakan untuk mem-build aplikasi dan dapat diformat agar sesuai dengan desain visual pengalaman pengguna tempat aplikasi tersebut berada. Saat iklan native dimuat, aplikasi Anda 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 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 delegasi ke class AdLoader untuk peristiwa yang tercantum di bawah.

OnNativeAdLoaded

Dipanggil saat iklan native berhasil dimuat. Peristiwa ini harus memiliki delegasi untuk mengakses iklan yang dimuat.

OnAdFailedToLoad

Dipanggil saat iklan native gagal dimuat.

Memuat iklan

Setelah selesai membuat AdLoader, panggil metode LoadAd()-nya untuk meminta iklan:

adLoader.LoadAd(new AdRequest.Builder().Build());

Mengumpulkan permintaan iklan

Cuplikan kode di bawah ini menunjukkan cara membuat AdLoader yang dikonfigurasi untuk meminta iklan native, menetapkan delegasi untuk pemuatan iklan yang berhasil dan gagal, serta 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());
}

Tangani pemuatan iklan yang gagal

Peristiwa OnAdFailedToLoad adalah jenis EventHandle<AdFailedToLoadEventArgs>. Menguraikan alasan kegagalan pemuatan iklan dari peristiwa ini ditampilkan di bawah ini.

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 sesuai akan dipanggil. Aplikasi Anda kemudian bertanggung jawab untuk menampilkan iklan, meskipun tidak harus segera melakukannya.

Tangani pemuatan iklan

Peristiwa OnNativeAdLoaded adalah jenis EventHandler<NativeAdEventArgs>. Iklan yang dienkapsulasi dalam objek NativeAd, dapat diambil dari NativeAdEventArgs seperti yang ditunjukkan berikut:

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 ini. 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 juga harus mudah dilihat, jadi pilih warna dan gambar latar dengan tepat.

Mendaftarkan GameObjects untuk aset iklan

Anda harus mendaftarkan GameObject agar aset iklan dapat ditampilkan di aplikasi Unity Anda. Jika pendaftaran berhasil, metode yang digunakan untuk mendaftarkan GameObject akan menampilkan bool. Untuk List<GameObject>, metode ini akan menampilkan int yang menunjukkan jumlah GameObject yang berhasil terdaftar.

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 terdaftar untuk aset iklan harus memiliki komponen Collider cembung yang mewakili ukuran dan bentuk GameObject. Jika objek GameObject yang terdaftar pada aset iklan tidak memiliki komponen Collider atau memiliki komponen yang salah dikonfigurasi, iklan native tidak akan beroperasi dengan benar.

Dalam cuplikan kode di bawah ini, BoxCollider ditambahkan ke GameObject yang menggunakan TextMesh untuk menampilkan aset iklan judul dari iklan native. Setelah dilampirkan ke GameObject, BoxCollider akan otomatis diskalakan untuk 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 dari iklan native yang berhasil dimuat, menampilkan aset iklan ikon dengan menyetel tekstur Quad, dan mendaftarkan GameObject yang akan digunakan untuk menampilkan aset. Proses pengambilan 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;
}