Pemuatan iklan awal adalah proses pemuatan dan penyimpanan dalam cache yang dikelola SDK yang menghilangkan kebutuhan untuk pemuatan dan penyimpanan dalam cache iklan secara manual. Proses ini memungkinkan Anda menampilkan iklan saat diperlukan tanpa harus memuat iklan secara manual atau menangani callback pemuatan iklan.
Panduan ini membahas cara mengonfigurasi iklan pramuat, memeriksa ketersediaan iklan pramuat, serta cara mendapatkan dan menampilkan iklan yang dimuat sebelumnya.
Prasyarat
Sebelum melanjutkan tutorial, Anda harus menyelesaikan item berikut:
- Instal Google Mobile Ads SDK (beta) versi 0.14.0-alpha01 atau yang lebih tinggi.
- Selesaikan Panduan memulai.
- Opsional: Download dan jalankan aplikasi contoh.
Mulai memuat iklan terlebih dahulu
Untuk mulai memuat ulang, panggil startPreload(). Google Mobile Ads SDK otomatis mencoba lagi permintaan iklan yang gagal untuk konfigurasi yang telah dimuat sebelumnya.
Contoh berikut memulai pemuatan iklan terlebih dahulu:
Kotlin
private fun startPreloading(adUnitID: String) {
val adRequest: AdRequest = AdRequest.Builder(adUnitID).build()
val preloadConfig = PreloadConfiguration(adRequest)
InterstitialAdPreloader.start(adUnitID, preloadConfig)
}
Java
private void startPreloading(String adUnitId) {
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
InterstitialAdPreloader.start(adUnitId, preloadConfig);
}
Opsional: Mengubah iklan pra-pemuatan
Untuk mengubah iklan mana yang dimuat sebelumnya, panggil
destroy(), lalu panggil startPreload()
lagi dengan konfigurasi yang telah diubah.
Opsional: Menghentikan pemuatan iklan di awal
Untuk menghentikan pemuatan awal iklan, panggil destroy() dengan
ID pemuatan awal.
Opsional: Menetapkan ukuran buffer
Ukuran buffer mengontrol jumlah iklan yang telah dimuat sebelumnya dan disimpan dalam memori. Jika aplikasi Anda menampilkan iklan lebih cepat daripada iklan baru dapat dimuat, tetapkan ukuran buffer ke nilai yang lebih besar. Jika Anda khawatir dengan penggunaan memori, tetapkan ukuran buffer ke nilai rendah
seperti 2.
Kotlin
private fun setBufferSize(adUnitID: String) {
val adRequest: AdRequest = AdRequest.Builder(adUnitID).build()
val preloadConfig = PreloadConfiguration(adRequest, bufferSize = 3)
InterstitialAdPreloader.start(adUnitID, preloadConfig)
}
Java
private void setBufferSize(String adUnitId) {
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest, 3);
InterstitialAdPreloader.start(adUnitId, preloadConfig);
}
Opsional: Menerima notifikasi pra-pemuatan
Terapkan PreloadCallback untuk menerima notifikasi untuk peristiwa pra-pemuatan iklan. Untuk men-debug dan mencatat, peristiwa ini menyediakan objek info respons.
Kotlin
private fun startPreloadingWithCallback(adUnitID: String) {
val preloadCallback =
// [Important] Don't call ad preloader start() or pollAd() within the PreloadCallback.
object : PreloadCallback {
override fun onAdFailedToPreload(preloadId: String, adError: LoadAdError) {
Log.i(
TAG,
("Interstitial preload ad $preloadId failed to load with error: ${adError.message}"),
)
// [Optional] Get the error response info for additional details.
// val responseInfo = adError.responseInfo
}
override fun onAdsExhausted(preloadId: String) {
Log.i(TAG, "Interstitial preload ad $preloadId is not available")
}
override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo) {
Log.i(TAG, "Interstitial preload ad $preloadId is available")
}
}
val adRequest: AdRequest = AdRequest.Builder(adUnitID).build()
val preloadConfig = PreloadConfiguration(adRequest)
InterstitialAdPreloader.start(adUnitID, preloadConfig, preloadCallback)
}
Java
private void startPreloadingWithCallback(String adUnitId) {
PreloadCallback preloadCallback =
// [Important] Don't call ad preloader start() or pollAd() within the PreloadCallback.
new PreloadCallback() {
@Override
public void onAdFailedToPreload(String preloadId, LoadAdError adError) {
Log.e(
TAG,
String.format(
"Interstitial preload ad %s failed to load with error: %s",
preloadId, adError.getMessage()));
// [Optional] Get the error response info for additional details.
// ResponseInfo responseInfo = adError.getResponseInfo();
}
@Override
public void onAdsExhausted(String preloadId) {
Log.i(TAG, "Interstitial preload ad " + preloadId + " is not available");
}
@Override
public void onAdPreloaded(String preloadId, ResponseInfo responseInfo) {
Log.i(TAG, "Interstitial preload ad " + preloadId + " is available");
}
};
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
InterstitialAdPreloader.start(adUnitId, preloadConfig, preloadCallback);
}
Mendapatkan dan menampilkan iklan yang sudah dimuat sebelumnya
Iklan tersedia untuk ditampilkan setelah onAdsAvailable() dipanggil. Iklan
terus tersedia saat iklan ditampilkan dan habis. Setelah mendapatkan
iklan, dengarkan peristiwa siklus proses iklan dan tampilkan iklan.
Contoh berikut menunjukkan iklan yang dimuat sebelumnya:
Kotlin
private fun pollAndShowAd(activity: Activity, adUnitID: String) {
// Polling returns the next available ad and loads another ad in the background.
val ad = InterstitialAdPreloader.pollAd(adUnitID)
// Interact with the ad object as needed.
ad?.apply {
Log.d(TAG, "Interstitial ad response info: ${this.getResponseInfo()}")
this.adEventCallback =
object : InterstitialAdEventCallback {
override fun onAdImpression() {
Log.d(TAG, "Interstitial ad recorded an impression.")
}
override fun onAdPaid(value: AdValue) {
Log.d(TAG, "Interstitial ad onPaidEvent: ${value.valueMicros} ${value.currencyCode}")
}
}
// Show the ad.
ad.show(activity)
}
}
Java
private void pollAndShowAd(Activity activity, String adUnitId) {
// Polling returns the next available ad and loads another ad in the background.
final InterstitialAd ad = InterstitialAdPreloader.pollAd(adUnitId);
// Interact with the ad object as needed.
if (ad != null) {
Log.d(TAG, "Interstitial ad response info: " + ad.getResponseInfo());
ad.setAdEventCallback(
new InterstitialAdEventCallback() {
@Override
public void onAdImpression() {
Log.d(TAG, "Interstitial ad recorded an impression.");
}
@Override
public void onAdPaid(AdValue value) {
Log.d(
TAG,
"Interstitial ad onPaidEvent: "
+ value.getValueMicros()
+ " "
+ value.getCurrencyCode());
}
});
// Show the ad.
ad.show(activity);
}
}
Opsional: Periksa ketersediaan iklan yang sudah dimuat sebelumnya
Untuk mengetahui apakah iklan tersedia, panggil isAdAvailable:
Kotlin
private fun isAdAvailable(adUnitID: String): Boolean {
return InterstitialAdPreloader.isAdAvailable(adUnitID)
}
Java
private boolean isAdAvailable(String adUnitId) {
return InterstitialAdPreloader.isAdAvailable(adUnitId);
}