Penempatan Iklan

Panduan ini menunjukkan cara menggunakan fitur Penempatan Iklan plugin Google Mobile Ads Unity untuk membuat dan menampilkan iklan bagi aplikasi Anda.

Prasyarat

Menginisialisasi Google Mobile Ads SDK

Sebelum memuat iklan, lakukan inisialisasi Mobile Ads SDK dengan memanggil MobileAds.Initialize(), menggunakan callback Action<InitializationStatus>. Hal ini hanya perlu dilakukan sekali, idealnya saat peluncuran aplikasi.

using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    ...
    public void Start()
    {
        // Initialize the Mobile Ads SDK.
        MobileAds.Initialize((initStatus) =>
        {
            // SDK initialization is complete
        });
        ...
    }
}

Membuat penempatan iklan

Langkah pertama untuk menampilkan banner dengan Google Mobile Ads adalah membuat dan mengonfigurasi penempatan iklan. Anda dapat memilih penempatan iklan dengan format Banner, Interstisial, atau Reward dari Assets > Google Mobile Ads > Ad Penempatan di Unity Editor. Tiga penempatan iklan demo kemudian disiapkan dan siap digunakan.

Untuk menambahkan Penempatan Iklan baru, klik tombol Tambahkan Penempatan Baru di akhir daftar. Anda dapat mengonfigurasi penempatan iklan dari tampilan Inspector.

Konfigurasi penempatan iklan

Setiap penempatan memiliki properti berikut:

Nama Penempatan
Nama penempatan. Digunakan untuk mengidentifikasi penempatan saat menyiapkan iklan dalam adegan.
Format Iklan
Banner, Reward, Interstisial. Jenis iklan.
ID unit iklan
Masukkan ID unit iklan banner Anda untuk Android dan iOS. Anda harus memberikan minimal satu ID unit iklan.
Persisten di seluruh scene
Jika dicentang, banner akan tetap ada di layar terlepas dari perubahan scene (perilaku yang sama seperti DontDestroyOnLoad).
Muat Otomatis Diaktifkan
Jika dicentang, iklan akan otomatis dimuat saat scene yang terkait dengan penempatan iklan dimuat.

Screenshot berikut menunjukkan contoh Penempatan Iklan bernama My Awesome Banner.

Menambahkan AdGameObject ke scene

Anda dapat menambahkan AdGameObject untuk format Banner, Interstisial, atau Reward ke adegan menggunakan GameObject > Google Mobile Ads di Unity Editor. Pilih format untuk menambahkan penempatan ke scene aktif.

Setelah menambahkan AdGameObject ke scene, Anda akan melihat GameObject yang mewakili iklan di tampilan Hierarki di Unity Editor.

Anda dapat mengubah nama penempatan dengan mengubah nama GameObject itu sendiri. Screenshot berikut menunjukkan contoh AdGameObject bernama Banner Ad.

Setelan AdGameObject

Anda dapat mengonfigurasi AdGameObject di scene dari tampilan Inspector di setelan untuk komponen Ad Game Object (Script).

Iklan Penempatan

Pilih penempatan iklan dari menu drop-down penempatan yang dikonfigurasi. Daftar hanya akan memiliki unit iklan untuk format yang tepat. Misalnya, untuk objek game iklan banner, dropdown hanya akan menampilkan penempatan iklan banner yang dikonfigurasi.

Konfigurasi BannerAdGameObject (khusus banner)

  • Ukuran - Pilih ukuran banner yang ingin Anda gunakan.
    • Banner Adaptif Anchor menyediakan beberapa opsi lainnya:
      • Orientasi - Pilih orientasi perangkat yang digunakan untuk menghitung tinggi iklan.
      • Gunakan lebar layar penuh - Jika dicentang, banner akan menempati lebar layar penuh. Anda dapat menyesuaikan % lebar layar (50~99%) jika menghapus centang pada opsi Gunakan lebar layar penuh.
    • Kustom memungkinkan Anda memberikan lebar dan tinggi banner.
  • Posisi Iklan - Pilih posisi untuk menempatkan banner.

Callback

Anda dapat menerapkan fungsi yang sesuai dengan callback iklan. Misalnya, jika Anda ingin menangani saat iklan banner gagal dimuat:

  1. Buat fungsi yang kompatibel dengan callback iklan.

    public void OnBannerAdFailedToLoad(string reason) {
        Debug.Log("Banner ad failed to load: " + reason);
    }
    
  2. Lampirkan skrip yang berisi fungsi di atas ke GameObject apa pun dalam adegan.

  3. Klik tombol +, lalu tarik & lepas GameObject tempat Anda melampirkan skrip.

  4. Pilih fungsi yang ingin Anda tautkan ke callback iklan. Untuk callback iklan berparameter, pilih fungsi untuk menerima variabel dinamis sehingga Anda bisa mendapatkan nilai parameter dari SDK.

Menggunakan AdGameObject dari skrip

Mendapatkan instance AdGameObject dari skrip

Semua objek AdGameObject memiliki metode yang mudah digunakan LoadAd(). Ini akan memuat iklan dengan AdRequest biasa yang tidak ditargetkan. Untuk menerapkan penargetan, Anda harus menggunakan LoadAd(AdRequest adRequest) menggunakan permintaan iklan yang dikonfigurasi sendiri.

Untuk mendapatkan instance AdGameObject, gunakan metode berikut untuk setiap format:

MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

Objek BannerAdGameObject yang ditampilkan juga memiliki metode praktis Hide() dan Show().

Interstisial

MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

Objek InterstitialAdGameObject yang ditampilkan memiliki metode praktis ShowIfLoaded().

Diberikan sebagai reward

MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

Objek RewardedAdGameObject yang ditampilkan memiliki metode praktis ShowIfLoaded().

Misalnya, Anda bisa mendapatkan instance BannerAdGameObject dan memuatnya sebagai berikut:

using UnityEngine;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class BannerTestScript : MonoBehaviour
{
    BannerAdGameObject bannerAd;

    void Start()
    {
        bannerAd = MobileAds.Instance
            .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

        bannerAd.LoadAd();
        ...
    }
    ...
}

Jika ada BannerAdGameObject yang bernama BannerAd, Anda bisa mendapatkan instance seperti ini:

MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");

Mengakses objek iklan yang mendasarinya di AdGameObject

Cuplikan ini menunjukkan cara mengakses objek iklan pokok yang terkait dengan AdGameObject.

BannerAdGameObject bannerAd = MobileAds.Instance
    .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

// Access BannerView object
BannerView bannerView = bannerAd.BannerView;

Interstisial

InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
    .GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;

Diberikan sebagai reward

RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
    .Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;

Contoh

Menampilkan iklan interstisial

Berikut adalah contoh cara mengonfigurasi game agar dimuat dan menampilkan iklan interstisial menggunakan AdGameObject.

Tambahkan InterstitialAdGameObject ke scene dan aktifkan fitur Auto Load Enabled, sehingga iklan dimuat secara otomatis saat scene dimuat.

Selanjutnya, pastikan Anda telah melakukan inisialisasi SDK menggunakan seperti berikut. Perlu diperhatikan bahwa fitur Auto Load di AdGameObject tidak akan berfungsi jika Anda lupa menginisialisasi SDK.

Kemudian, tampilkan iklan interstisial di antara transisi layar dengan memanggil fungsi InterstitialAdGameObject.ShowIfLoaded(). Kode berikut menunjukkan contoh penayangan iklan interstisial di antara transisi scene.

using UnityEngine;
using UnityEngine.SceneManagement;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAd<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }

    public void OnClickShowGameSceneButton()
    {
        // Display an interstitial ad
        interstitialAd.ShowIfLoaded();

        // Load a scene named "GameScene"
        SceneManager.LoadScene("GameScene");
    }
}

Karena Anda telah mengaktifkan fitur Muat Otomatis di penempatan iklan, Anda tidak perlu meminta iklan secara eksplisit. Saat adegan berubah, iklan interstisial akan muncul jika sudah siap.

Jika Anda ingin meminta iklan secara manual, nonaktifkan fitur Pemuatan Otomatis dari pemeriksa penempatan iklan, lalu panggil fungsi InterstitialAdGameObject.LoadAd(). Cuplikan kode berikut menunjukkan cara meminta iklan secara manual.

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAdGameObject<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("MobileAds initialized");

            // Load an interstitial ad after the SDK initialization is complete
            interstitialAd.LoadAd();
        });
    }
    ...
}

Menangani status tombol "tonton iklan reward"

Berikut adalah contoh cara mengaktifkan tombol "tonton iklan reward" menggunakan penempatan iklan.

Tambahkan GameObject Tombol (bernama Button dalam contoh ini) ke scene, yang akan digunakan untuk menampilkan iklan reward. Kami akan menyediakan tombol ini hanya jika iklan reward tersedia.

Dalam metode Start(), ubah status aktif Button menjadi false. Tindakan ini akan membuat tombol tersebut menghilang dari scene.

public class MainScene : MonoBehaviour
{
    ...
    void Start()
    {
        GameObject.Find("Button").SetActive(false);
        ...
    }
}

Tambahkan RewardedAdGameObject ke scene, lalu pilih Penempatan Iklan AdMob Demo Reward dari menu dropdown.

Di bagian Callback di pemeriksa RewardedAdGameObject, klik tombol + dari On Ad Loaded() untuk mengaktifkan fungsi yang akan dipanggil saat iklan reward dimuat.

Tarik lalu lepas GameObject Tombol yang Anda tambahkan di langkah sebelumnya ke kolom None (Object). Pilih fungsi yang akan dipanggil dari dropdown. Klik No Function > GameObject > SetActive(bool), lalu klik kotak centang untuk mengirimkan true sebagai parameter (memanggil SetActive(true)).

Di bagian Callback ini, Anda juga dapat menautkan peristiwa yang akan dipanggil saat peristiwa RewardedAd.OnUserEarnedReward diaktifkan. Untuk detail selengkapnya, lihat bagian ini.

Selanjutnya, buat tombol untuk menampilkan iklan reward saat diklik. Dari bagian Callback On Click() di pemeriksa tombol, klik tombol +, lalu tarik lalu lepas GameObject Iklan Reward (bernama Iklan Reward dalam contoh ini) ke kolom Tidak Ada (Objek).

Kemudian, lampirkan fungsi RewardedAdGameObject.ShowIfLoaded() ke callback On Click() tombol.

Terakhir, jangan lupa untuk melakukan inisialisasi SDK. Cuplikan kode berikut adalah kode lengkap untuk scene yang digunakan dalam contoh ini:

using UnityEngine;

using GoogleMobileAds.Api;

public class MainScene : MonoBehaviour
{
    void Start()
    {
        GameObject.Find("Button").SetActive(false);

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }
}

Setelah menjalankan project, Anda akan melihat tombol ditampilkan pada scene saat iklan reward dimuat dan siap ditampilkan.

Mengonfigurasi callback reward untuk RewardedAdGameObject

Berikut adalah contoh cara mengonfigurasi callback reward ke penempatan iklan reward, sehingga Anda dapat memberikan reward kepada pengguna saat fungsi callback dipanggil.

Buat skrip baru dan tentukan fungsi yang menerima Reward sebagai parameter sebagai berikut.

using UnityEngine;
using GoogleMobileAds.Api;

class RewardedTestScript : MonoBehaviour {
    ...
    public void OnUserEarnedReward(Reward reward) {
        Debug.Log("OnUserEarnedReward: reward=" +
            reward.Type + ", amount=" + reward.Amount);
    }
    ...
}

Lampirkan skrip RewardedTestScript ke GameObject (kecuali GameObject Penempatan Iklan) di scene. Dalam contoh ini, objek ini dilampirkan ke GameObject Kamera Utama.

Tambahkan RewardedAdGameObject ke scene. Kemudian, di bagian Callbacks di pemeriksa RewardedAdGameObject, klik tombol + pada On User Perolehan Reward (Reward) untuk mengaktifkan fungsi yang akan dipanggil saat reward diberikan kepada pengguna.

Tarik lalu lepas GameObject Kamera Utama yang telah Anda tambahkan di langkah sebelumnya ke kolom None (Object). Pilih fungsi yang akan dipanggil dari menu dropdown. Klik No Function > RewardedTestScript > OnUserEarnedReward.

Setelah Anda menjalankan project dan menonton iklan reward, RewardedTestScript.OnUserEarnedReward() akan dipanggil saat Anda mendapatkan reward karena berinteraksi dengan iklan.