Iklan reward adalah iklan yang menyediakan banyak opsi interaksi untuk pengguna dengan imbalan reward dalam aplikasi. Panduan ini menunjukkan cara mengintegrasikan iklan reward dari AdMob ke aplikasi Unity. Baca beberapa kisah sukses pelanggan: studi kasus 1, studi kasus 2.
Prasyarat
- Plugin Unity 3.16.0 atau yang lebih tinggi.
- Selesaikan Mulai. Aplikasi Unity Anda seharusnya sudah mengimpor plugin Unity Google Mobile Ads.
Membuat objek iklan reward
Iklan reward diminta dan ditampilkan oleh objek RewardedAd
. Langkah pertama
yang diperlukan untuk menampilkan iklan reward adalah dengan membuat instance objek RewardedAd
dengan
memanggil konstruktor beserta ID unit iklan yang akan digunakan untuk memuat iklan. Hal ini
didemonstrasikan dalam cuplikan kode berikut:
Untuk integrasi iklan yang lebih mudah menggunakan Unity Editor, coba Penempatan Iklan Beta yang baru.
using UnityEngine.Events; using UnityEngine; using GoogleMobileAds.Api; using GoogleMobileAds.Common; using UnityEngine.UI; using System; using System.Collections.Generic; public class GoogleMobileAdsDemoScript : MonoBehaviour { private RewardedAd rewardedAd; ... public void Start() { ... this.rewardedAd = new RewardedAd(adUnitId); } }
Selalu uji iklan uji coba
Saat membuat dan menguji aplikasi, pastikan Anda menggunakan iklan pengujian, bukan iklan produksi aktif. Jika Anda tidak melakukannya, akun Anda dapat ditangguhkan.
Cara termudah untuk memuat iklan pengujian adalah menggunakan ID unit iklan pengujian khusus kami untuk iklan reward Android dan iOS:
Android
ca-app-pub-3940256099942544/5224354917
iOS
ca-app-pub-3940256099942544/1712485313
Keduanya telah dikonfigurasi secara khusus untuk menampilkan iklan pengujian untuk setiap permintaan, dan Anda bebas menggunakannya dalam aplikasi Anda sendiri saat coding, pengujian, dan proses debug. Pastikan Anda menggantinya dengan ID unit iklan sendiri sebelum memublikasikan aplikasi.
Untuk informasi selengkapnya tentang cara kerja iklan uji coba Mobile Ads SDK, lihat Menguji Iklan.
Memuat iklan
Untuk memuat iklan reward, panggil metode loadAd()
objek RewardedAd
. Metode
ini memerlukan instance AdRequest
sebagai argumen.
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
private RewardedAd rewardedAd;
...
public void Start()
{
...
this.rewardedAd = new RewardedAd(adUnitId);
// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();
// Load the rewarded ad with the request.
this.rewardedAd.LoadAd(request);
}
}
Peristiwa iklan
Untuk menyesuaikan perilaku iklan lebih lanjut, Anda dapat terhubung ke sejumlah peristiwa dalam siklus proses iklan: memuat, membuka, menutup, dan sebagainya. Proses peristiwa ini dengan mendaftarkan delegasi untuk pengendali peristiwa yang sesuai. Peristiwa
terpenting adalah OnUserEarnedReward
, yang dipanggil saat pengguna
diberi reward karena menonton video. Anda juga dapat menerapkan peristiwa iklan lain, seperti yang ditunjukkan di bawah ini.
using GoogleMobileAds.Api; ... public class GoogleMobileAdsDemoScript : MonoBehaviour { private RewardedAd rewardedAd; ... public void Start() { string adUnitId; #if UNITY_ANDROID adUnitId = "ca-app-pub-3940256099942544/5224354917"; #elif UNITY_IPHONE adUnitId = "ca-app-pub-3940256099942544/1712485313"; #else adUnitId = "unexpected_platform"; #endif this.rewardedAd = new RewardedAd(adUnitId); // Called when an ad request has successfully loaded. this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded; // Called when an ad request failed to load. this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad; // Called when an ad is shown. this.rewardedAd.OnAdOpening += HandleRewardedAdOpening; // Called when an ad request failed to show. this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow; // Called when the user should be rewarded for interacting with the ad. this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward; // Called when the ad is closed. this.rewardedAd.OnAdClosed += HandleRewardedAdClosed; // Create an empty ad request. AdRequest request = new AdRequest.Builder().Build(); // Load the rewarded ad with the request. this.rewardedAd.LoadAd(request); } public void HandleRewardedAdLoaded(object sender, EventArgs args) { MonoBehaviour.print("HandleRewardedAdLoaded event received"); } public void HandleRewardedAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) { MonoBehaviour.print( "HandleRewardedAdFailedToLoad event received with message: " + args.Message); } public void HandleRewardedAdOpening(object sender, EventArgs args) { MonoBehaviour.print("HandleRewardedAdOpening event received"); } public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args) { MonoBehaviour.print( "HandleRewardedAdFailedToShow event received with message: " + args.Message); } public void HandleRewardedAdClosed(object sender, EventArgs args) { MonoBehaviour.print("HandleRewardedAdClosed event received"); } public void HandleUserEarnedReward(object sender, Reward args) { string type = args.Type; double amount = args.Amount; MonoBehaviour.print( "HandleRewardedAdRewarded event received for " + amount.ToString() + " " + type); } }
Peristiwa OnUserEarnedReward
memberikan argumen peristiwa khusus. Ini meneruskan
instance Reward
dengan Type
dan Amount
yang menjelaskan reward yang diberikan kepada
pengguna:
public void HandleUserEarnedReward(object sender, Reward args)
{
string type = args.Type;
double amount = args.Amount;
MonoBehaviour.print(
"HandleRewardedAdRewarded event received for "
+ amount.ToString() + " " + type);
}
Peristiwa iklan yang tersedia
OnAdLoaded
- Dipanggil saat iklan telah selesai dimuat.
OnAdFailedToLoad
- Dipanggil saat iklan gagal dimuat. Properti
Message
dariAdErrorEventArgs
yang diberikan menjelaskan jenis kegagalan yang terjadi. OnAdOpening
- Dipanggil saat iklan ditampilkan dan menutupi layar perangkat. Ini adalah tempat yang baik untuk menjeda output audio aplikasi atau game loop, jika perlu.
OnAdFailedToShow
- Dipanggil saat iklan gagal ditampilkan. Properti
Message
dariAdErrorEventArgs
yang diberikan menjelaskan jenis kegagalan yang terjadi. OnUserEarnedReward
- Dipanggil saat pengguna harus mendapatkan reward karena menonton video.
Parameter
Reward
menjelaskan reward yang akan diberikan kepada pengguna. OnAdClosed
- Dipanggil saat iklan video reward ditutup karena pengguna mengetuk ikon tutup atau menggunakan tombol kembali. Jika aplikasi menjeda output audio atau game loop, ini adalah tempat yang tepat untuk melanjutkannya.
Menampilkan iklan
Sebelum menampilkan iklan reward kepada pengguna, mereka harus diberi pilihan eksplisit untuk melihat konten iklan reward sebagai imbalan atas reward yang diberikan. Iklan reward harus selalu menjadi pengalaman keikutsertaan.
Untuk menampilkan iklan reward, periksa metode IsLoaded()
untuk memastikan bahwa iklan selesai dimuat, lalu panggil show()
. Berikut ini contoh cara melakukannya:
private void UserChoseToWatchAd()
{
if (this.rewardedAd.IsLoaded()) {
this.rewardedAd.Show();
}
}
Menggunakan OnAdClosed
untuk melakukan pramuat iklan reward berikutnya
RewardedAd
adalah objek yang hanya dapat digunakan satu kali. Artinya, setelah iklan reward ditampilkan,
objek tersebut tidak dapat digunakan untuk memuat iklan lainnya. Untuk meminta iklan reward lainnya,
Anda harus membuat objek RewardedAd
baru.
Praktik terbaiknya adalah memuat iklan reward lain di peristiwa iklan OnAdClosed
sehingga iklan reward berikutnya mulai dimuat segera setelah iklan sebelumnya
ditutup:
... public class GoogleMobileAdsDemoScript : MonoBehaviour { private RewardedAd rewardedAd; ... public void CreateAndLoadRewardedAd() { #if UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/5224354917"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/1712485313"; #else string adUnitId = "unexpected_platform"; #endif this.rewardedAd = new RewardedAd(adUnitId); this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded; this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward; this.rewardedAd.OnAdClosed += HandleRewardedAdClosed; // Create an empty ad request. AdRequest request = new AdRequest.Builder().Build(); // Load the rewarded ad with the request. this.rewardedAd.LoadAd(request); } ... public void HandleRewardedAdClosed(object sender, EventArgs args) { this.CreateAndLoadRewardedAd(); } }
Memuat beberapa iklan reward
Untuk memuat beberapa iklan reward, ikuti langkah-langkah yang diuraikan dalam bagian membuat objek iklan reward dan bagian memuat iklan untuk setiap iklan yang ingin Anda muat. Cuplikan kode di bawah menunjukkan cara memuat dua iklan reward untuk dua penempatan iklan yang berbeda.
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
private RewardedAd gameOverRewardedAd;
private RewardedAd extraCoinsRewardedAd;
...
public void Start()
{
...
this.gameOverRewardedAd = CreateAndLoadRewardedAd(adUnitId);
this.extraCoinsRewardedAd = CreateAndLoadRewardedAd(adUnitId);
}
public RewardedAd CreateAndLoadRewardedAd(string adUnitId)
{
RewardedAd rewardedAd = new RewardedAd(adUnitId);
rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
rewardedAd.OnAdClosed += HandleRewardedAdClosed;
// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();
// Load the rewarded ad with the request.
rewardedAd.LoadAd(request);
return rewardedAd;
}
}
Contoh
- Contoh HelloWorld ⋮ penerapan minimal dari semua format iklan