Panduan ini menunjukkan cara menggunakan fitur Penempatan Iklan plugin Google Mobile Ads Unity untuk membuat dan menampilkan iklan untuk aplikasi Anda.
Prasyarat
Unity 2017.4 atau yang lebih tinggi.
Download dan impor build awal plugin GMA Unity.
Tetapkan ID aplikasi AdMob di Unity Editor.
Menginisialisasi Google Mobile Ads SDK
Sebelum memuat iklan, lakukan inisialisasi Google Mobile Ads SDK dengan memanggil
MobileAds.Initialize()
, dengan callback Action<InitializationStatus>
. Langkah ini hanya perlu dilakukan sekali, idealnya saat aplikasi diluncurkan.
using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
...
public void Start()
{
// Initialize Google Mobile Ads SDK.
MobileAds.Initialize((initStatus) =>
{
// SDK initialization is complete
});
...
}
}
Membuat penempatan iklan
Langkah pertama dalam menampilkan banner dengan Google Mobile Ads adalah membuat dan mengonfigurasi penempatan iklan. Anda dapat memilih penempatan iklan format Banner, Interstisial, atau Reward dari Assets > Google Mobile Ads > Ad Placements 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
- Berikan ID unit iklan banner Anda untuk Android dan iOS. Anda harus memberikan setidaknya satu ID unit iklan.
- Persisten di seluruh adegan
- Jika dicentang, banner akan tetap ada di layar terlepas dari perubahan
adegan (perilaku yang sama seperti
DontDestroyOnLoad
). - Pemuatan Otomatis Diaktifkan
- Jika dicentang, iklan akan dimuat secara otomatis saat adegan yang terkait dengan penempatan iklan dimuat.
Screenshot berikut menunjukkan contoh Penempatan Iklan yang bernama My Awesome Banner.
Menambahkan AdGameObject ke adegan
Anda dapat menambahkan AdGameObject untuk format Banner, Interstitial, atau Reward ke adegan menggunakan GameObject > Google Mobile Ads di Unity Editor. Pilih format untuk menambahkan penempatan ke adegan aktif.
Setelah menambahkan AdGameObject ke adegan, Anda akan melihat GameObject yang merepresentasikan iklan di tampilan Hierarki Unity Editor.
Anda dapat mengubah nama penempatan dengan mengubah nama GameObject itu sendiri. Screenshot berikut menunjukkan contoh AdGameObject yang diberi nama Banner Ad.
Setelan AdGameObject
Anda dapat mengonfigurasi AdGameObject di adegan dari tampilan Pemeriksa di setelan untuk komponen Ad Game Object (Script).
- Penempatan Iklan
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 lagi:
- 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 Anda menghapus centang opsi Gunakan lebar layar penuh.
- Kustom memungkinkan Anda memberikan lebar dan tinggi banner.
- Banner Adaptif Anchor menyediakan beberapa opsi lagi:
- Posisi Iklan - Pilih posisi tempat banner harus ditempatkan.
Callback
Anda dapat menerapkan fungsi yang sesuai dengan callback iklan. Misalnya, jika Anda ingin menangani saat iklan banner gagal dimuat:
Buat fungsi yang kompatibel dengan callback iklan.
public void OnBannerAdFailedToLoad(string reason) { Debug.Log("Banner ad failed to load: " + reason); }
Lampirkan skrip yang berisi fungsi di atas ke GameObject mana pun di scene.
Klik tombol +, lalu tarik & lepas GameObject yang telah Anda lampirkan skripnya.
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 praktis LoadAd()
. Hal 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:
Banner
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()
.
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
bernama BannerAd, Anda bisa mendapatkan instance-nya seperti ini:
MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");
Mengakses objek iklan pokok di AdGameObject
Cuplikan ini menunjukkan cara mengakses objek iklan pokok yang terkait dengan AdGameObject.
Banner
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;
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 untuk memuat dan menampilkan iklan interstisial menggunakan AdGameObject.
Tambahkan InterstitialAdGameObject
ke adegan dan aktifkan fitur Muat Otomatis Diaktifkan, sehingga iklan dimuat secara otomatis saat adegan dimuat.
Selanjutnya, pastikan Anda telah menginisialisasi SDK menggunakan cara berikut. Perhatikan bahwa fitur Pemuatan Otomatis di AdGameObject tidak akan berfungsi jika Anda lupa melakukan inisialisasi SDK.
Kemudian, tampilkan iklan interstisial di antara transisi layar dengan memanggil fungsi
InterstitialAdGameObject.ShowIfLoaded()
. Kode berikut menunjukkan
contoh menampilkan iklan interstisial di antara transisi adegan.
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 iklan siap.
Jika Anda ingin meminta iklan secara manual, nonaktifkan fitur Muat Otomatis dari
pemeriksa penempatan iklan dan panggil fungsi InterstitialAdGameObject.LoadAd()
sebagai gantinya. 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 contoh cara mengaktifkan tombol "tonton iklan reward" menggunakan penempatan iklan.
Tambahkan Button GameObject (bernama Button dalam contoh ini) ke adegan, yang akan digunakan untuk menampilkan iklan reward. Kami akan menyediakan tombol ini hanya jika iklan reward tersedia.
Dalam metode Start()
, ubah status aktif Tombol menjadi false
. Hal ini akan membuat tombol menghilang dari adegan.
public class MainScene : MonoBehaviour
{
...
void Start()
{
GameObject.Find("Button").SetActive(false);
...
}
}
Tambahkan RewardedAdGameObject
ke adegan dan pilih Penempatan Iklan AdMob Demo Rewarded
Ad dari dropdown.
Di bagian Callbacks di pemeriksa RewardedAdGameObject
, klik
tombol + dari On Ad Loaded() untuk mengaktifkan fungsi yang akan dipanggil
saat iklan reward dimuat.
Tarik lalu lepas GameObject Button 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 agar
mengirim true
sebagai parameter (memanggil SetActive(true)
).
Di bagian Callback ini, Anda juga dapat menautkan peristiwa yang akan dipanggil saat peristiwa RewardedAd.OnUserEarnedReward
dipicu. Untuk mengetahui 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 Penempatan Iklan Bersama Hadiah (bernama Rewarded Ad dalam contoh ini) ke kolom None (Object).
Kemudian, lampirkan fungsi RewardedAdGameObject.ShowIfLoaded()
ke callback
On Click() tombol.
Terakhir, jangan lupa untuk melakukan inisialisasi SDK. Cuplikan kode berikut adalah kode lengkap untuk adegan 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 di adegan 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 mana pun (kecuali GameObject Penempatan Iklan) di adegan. Dalam contoh ini, skrip dilampirkan ke GameObject Kamera
Utama.
Tambahkan RewardedAdGameObject
ke adegan. Kemudian, di bagian Panggilan balik
di pemeriksa RewardedAdGameObject
, klik tombol + di Saat Pengguna
Memperoleh 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 dropdown. Klik No Function > RewardedTestScript > OnUserEarnedReward.
Setelah Anda menjalankan project dan menonton iklan reward,
RewardedTestScript.OnUserEarnedReward()
akan dipanggil saat Anda akan
mendapatkan reward karena berinteraksi dengan iklan.