Iklan interstisial adalah iklan layar penuh yang menutupi antarmuka aplikasi host iklan. Iklan ini biasanya ditampilkan di titik transisi alami dalam alur aplikasi, seperti selama waktu jeda antarlevel dalam game. Saat aplikasi menampilkan iklan interstisial, pengguna memiliki pilihan untuk mengetuk iklan dan melanjutkan tujuannya atau menutupnya dan kembali ke aplikasi.
Panduan ini menjelaskan cara mengintegrasikan iklan interstisial ke aplikasi Unity.
Prasyarat
- Selesaikan Panduan memulai.
Selalu uji dengan iklan percobaan
Kode contoh berikut berisi ID unit iklan yang dapat Anda gunakan untuk meminta iklan percobaan. Format ini telah dikonfigurasi secara khusus untuk menampilkan iklan percobaan, bukan iklan produksi untuk setiap permintaan, sehingga aman digunakan.
Namun, setelah Anda mendaftarkan aplikasi di Antarmuka web Ad Manager dan membuat unit iklan Anda sendiri ID untuk digunakan di aplikasi Anda, secara eksplisit konfigurasi perangkat Anda sebagai pengujian perangkat selama pengembangan produk.
/21775744923/example/interstitial
Menginisialisasi Mobile Ads SDK
Sebelum memuat iklan, minta aplikasi Anda melakukan inisialisasi Mobile Ads SDK dengan memanggil
MobileAds.Initialize()
. Hal ini hanya perlu dilakukan sekali, idealnya pada saat peluncuran aplikasi.
using GoogleMobileAds;
using GoogleMobileAds.Api;
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
public void Start()
{
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize((InitializationStatus initStatus) =>
{
// This callback is called once the MobileAds SDK is initialized.
});
}
}
Jika Anda menggunakan mediasi, tunggu hingga callback terjadi sebelum memuat iklan sebagai ini akan memastikan bahwa semua adaptor mediasi diinisialisasi.
Penerapan
Langkah-langkah utama untuk mengintegrasikan iklan interstisial adalah:
- Memuat iklan interstisial
- Menampilkan iklan interstisial
- Memproses peristiwa iklan interstisial
- Bersihkan iklan interstisial
- Melakukan pramuat iklan interstisial berikutnya
Memuat iklan interstisial
Pemuatan iklan interstisial dilakukan menggunakan metode Load()
statis di
Class InterstitialAd
. Metode pemuatan memerlukan ID unit iklan,
objek AdManagerAdRequest
, dan pengendali penyelesaian yang
dipanggil saat pemuatan iklan berhasil atau gagal. Dimuat
Objek AdManagerInterstitialAd
disediakan sebagai parameter di
pengendali penyelesaian. Contoh di bawah ini menunjukkan cara memuat
AdManagerInterstitialAd
.
// This ad unit is configured to always serve test ads.
private string _adUnitId = "/21775744923/example/interstitial";
private InterstitialAd _interstitialAd;
/// <summary>
/// Loads the interstitial ad.
/// </summary>
public void LoadInterstitialAd()
{
// Clean up the old ad before loading a new one.
if (_interstitialAd != null)
{
_interstitialAd.Destroy();
_interstitialAd = null;
}
Debug.Log("Loading the interstitial ad.");
// create our request used to load the ad.
var adRequest = new AdManagerAdRequest();
// send the request to load the ad.
AdManagerInterstitialAd.Load(_adUnitId, adRequest,
(InterstitialAd ad, LoadAdError error) =>
{
// if error is not null, the load request failed.
if (error != null || ad == null)
{
Debug.LogError("interstitial ad failed to load an ad " +
"with error : " + error);
return;
}
Debug.Log("Interstitial ad loaded with response : "
+ ad.GetResponseInfo());
_interstitialAd = ad;
});
}
Menampilkan iklan interstisial
Untuk menampilkan iklan interstisial yang dimuat, panggil metode Show()
pada
Instance AdManagerInterstitialAd
. Iklan dapat ditampilkan sekali per
memuat halaman. Gunakan metode CanShowAd()
untuk memverifikasi bahwa iklan siap ditampilkan.
/// <summary>
/// Shows the interstitial ad.
/// </summary>
public void ShowInterstitialAd()
{
if (_interstitialAd != null && _interstitialAd.CanShowAd())
{
Debug.Log("Showing interstitial ad.");
_interstitialAd.Show();
}
else
{
Debug.LogError("Interstitial ad is not ready yet.");
}
}
Memproses peristiwa iklan interstisial
Untuk menyesuaikan lebih lanjut perilaku iklan, Anda dapat menarik berbagai peristiwa dalam siklus proses iklan. Proses peristiwa ini dengan mendaftarkan delegasi sebagaimana ditunjukkan di bawah ini.
private void RegisterEventHandlers(InterstitialAd interstitialAd)
{
// Raised when the ad is estimated to have earned money.
interstitialAd.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Interstitial ad paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
interstitialAd.OnAdImpressionRecorded += () =>
{
Debug.Log("Interstitial ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
interstitialAd.OnAdClicked += () =>
{
Debug.Log("Interstitial ad was clicked.");
};
// Raised when an ad opened full screen content.
interstitialAd.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Interstitial ad full screen content opened.");
};
// Raised when the ad closed full screen content.
interstitialAd.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Interstitial ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
};
}
Bersihkan iklan interstisial
Setelah selesai dengan AdManagerInterstitialAd
, pastikan
pastikan untuk memanggil metode Destroy()
sebelum memberikan referensi Anda ke metode tersebut:
_interstitialAd.Destroy();
Tindakan ini akan memberi tahu plugin bahwa objek tidak lagi digunakan dan memori yang digunakannya dapat diklaim kembali. Kegagalan memanggil metode ini akan menyebabkan kebocoran memori.
Pramuat iklan interstisial berikutnya
Iklan interstisial adalah objek sekali pakai. Artinya, setelah iklan interstisial
ditampilkan, objek tidak dapat digunakan lagi. Untuk meminta iklan interstisial lain,
buat objek AdManagerInterstitialAd
baru.
Guna menyiapkan iklan interstisial untuk peluang tayangan iklan berikutnya, pramuat
iklan interstisial setelah OnAdFullScreenContentClosed
atau
Peristiwa iklan OnAdFullScreenContentFailed
dimunculkan.
private void RegisterReloadHandler(InterstitialAd interstitialAd)
{
// Raised when the ad closed full screen content.
interstitialAd.OnAdFullScreenContentClosed += ()
{
Debug.Log("Interstitial Ad full screen content closed.");
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
// Raised when the ad failed to open full screen content.
interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
}
Peristiwa aplikasi
Peristiwa aplikasi memungkinkan Anda membuat iklan yang dapat mengirimkan pesan ke kode aplikasi mereka. Aplikasi dapat mengambil tindakan berdasarkan pesan tersebut.
Anda dapat memproses peristiwa aplikasi khusus Ad Manager menggunakan AppEvent
. Peristiwa ini
dapat terjadi kapan saja selama siklus proses iklan, bahkan sebelum pemuatan dipanggil.
namespace GoogleMobileAds.Api.AdManager;
/// The App event message sent from the ad.
public class AppEvent
{
// Name of the app event.
string Name;
// Argument passed from the app event.
string Value;
}
OnAppEventReceived
dinaikkan saat peristiwa aplikasi terjadi di iklan. Berikut adalah
contoh cara menangani peristiwa ini dalam kode Anda:
_interstitialAd.OnAppEventReceived += (AppEvent args) =>
{
Debug.Log($"Received app event from the ad: {args.Name}, {args.Value}.");
};
Berikut adalah contoh yang menunjukkan cara mengubah warna latar belakang aplikasi Anda bergantung pada peristiwa aplikasi dengan nama warna:
_interstitialAd.OnAppEventReceived += (AppEvent args) =>
{
if (args.Name == "color")
{
Color color;
if (ColorUtility.TryParseColor(arg.Value, out color))
{
gameObject.GetComponent<Renderer>().material.color = color;
}
}
};
Dan berikut adalah materi iklan yang sesuai yang mengirimkan peristiwa aplikasi warna:
<html>
<head>
<script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
// Send a color=green event when ad loads.
admob.events.dispatchAppEvent("color", "green");
document.getElementById("ad").addEventListener("click", function() {
// Send a color=blue event when ad is clicked.
admob.events.dispatchAppEvent("color", "blue");
});
});
</script>
<style>
#ad {
width: 320px;
height: 50px;
top: 0px;
left: 0px;
font-size: 24pt;
font-weight: bold;
position: absolute;
background: black;
color: white;
text-align: center;
}
</style>
</head>
<body>
<div id="ad">Carpe diem!</div>
</body>
</html>
Praktik terbaik
- Tentukan apakah iklan interstisial adalah jenis iklan yang tepat untuk aplikasi Anda.
- Iklan interstisial berfungsi paling baik di aplikasi dengan titik transisi alami. Kesimpulan suatu tugas dalam aplikasi, seperti membagikan gambar atau menyelesaikan dalam level game, menciptakan poin semacam itu. Pastikan Anda mempertimbangkan pada titik mana dalam alur aplikasi untuk menampilkan iklan interstisial dengan cara terbaik dan kemungkinan respons pengguna.
- Jeda tindakan saat menampilkan iklan interstisial.
- Ada beberapa jenis iklan interstisial seperti teks,
gambar, atau video. Sebaiknya pastikan bahwa saat aplikasi menampilkan
iklan interstisial juga menangguhkan penggunaan beberapa aset agar iklan dapat
memanfaatkannya. Misalnya, saat Anda melakukan panggilan untuk menampilkan
iklan interstisial, pastikan untuk menjeda output audio apa pun yang dihasilkan oleh aplikasi Anda.
Anda dapat melanjutkan pemutaran suara dalam peristiwa
OnAdFullScreenContentClosed()
, yang dapat dipanggil saat pengguna selesai berinteraksi dengan iklan. Di beberapa pertimbangkan untuk menghentikan sementara tugas komputasi yang intens, seperti game loop, saat iklan sedang ditampilkan. Hal ini memastikan bahwa pengguna tidak mengalami grafis yang lambat atau tidak responsif, atau video tersendat. - Jangan membanjiri pengguna dengan iklan.
- Meskipun meningkatkan frekuensi iklan interstisial di aplikasi Anda mungkin tampak sebagai cara yang bagus untuk meningkatkan pendapatan, hal itu juga dapat menurunkan pengalaman pengguna dan rasio klik-tayang yang lebih rendah. Pastikan bahwa pengguna tidak terlalu sering terganggu bahwa mereka tidak dapat lagi menikmati penggunaan aplikasi Anda.
Referensi lainnya
- Contoh HelloWorld: Penerapan minimal semua format iklan.