Panduan ini membahas cara memuat iklan banner adaptif anchor ke dalam aplikasi Android.
Prasyarat
- Siapkan Google Mobile Ads SDK.
- Opsional: Untuk contoh penerapan iklan banner, pilih salah satu aplikasi contoh berikut:
- Contoh iklan banner adaptif anchor Java, Kotlin, atau Jetpack Compose.
- Demo fitur lanjutan Java atau Kotlin.
Selalu melakukan pengujian dengan iklan percobaan
Saat membangun dan menguji aplikasi, pastikan Anda menggunakan iklan percobaan, bukan iklan produksi langsung. Jika Anda tidak melakukannya, akun Anda dapat ditangguhkan.
Cara termudah untuk memuat iklan percobaan adalah dengan menggunakan ID unit iklan percobaan khusus kami untuk banner Android:
ca-app-pub-3940256099942544/9214589741
Unit iklan ini telah dikonfigurasi secara khusus guna menampilkan iklan percobaan untuk setiap permintaan. Anda dapat menggunakannya di aplikasi Anda sendiri saat melakukan coding, pengujian, dan proses debug. Pastikan Anda menggantinya dengan ID unit iklan Anda sendiri sebelum memublikasikan aplikasi.
Untuk mengetahui informasi selengkapnya tentang cara kerja iklan percobaan Google Mobile Ads SDK, lihat Mengaktifkan iklan percobaan.
Menentukan tampilan iklan
Tata Letak XML
Tambahkan tampilan ke file XML tata letak Anda untuk berfungsi sebagai penampung iklan banner adaptif anchor:
<!-- Ad view container that fills the width of the screen and adjusts its
height to the content of the ad. -->
<FrameLayout
android:id="@+id/ad_view_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_alignParentBottom="true" />
Jetpack Compose
Sertakan folder JetpackCompose Utilities. Folder ini menyertakan helper untuk menyusun objek dan aset
AdView.Susun
AdView:
// Place the ad view at the bottom of the screen.
Column(modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Bottom) {
Box(modifier = modifier.fillMaxWidth()) { BannerAd(adView, modifier) }
}
Menetapkan ukuran iklan
Tetapkan AdSize ke jenis banner adaptif anchor dengan lebar yang ditentukan:
Java
// Request a large anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360));
Kotlin
// Request a large anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360))
Jetpack Compose
// Set a large anchored adaptive banner ad size with a given width.
val adSize = AdSize.getLargeAnchoredAdaptiveBannerAdSize(LocalContext.current, 360)
adView.setAdSize(adSize)
Menambahkan AdView ke tata letak
Buat AdView menggunakan ukuran iklan untuk ditambahkan ke
tata letak aplikasi Anda:
Java
// Create a new ad view.
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT_ID);
// Request a large anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360));
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
Kotlin
// Create a new ad view.
val adView = AdView(this)
adView.adUnitId = AD_UNIT_ID
// Request a large anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360))
this.adView = adView
// Replace ad container with new ad view.
binding.adViewContainer.removeAllViews()
binding.adViewContainer.addView(adView)
Jetpack Compose
val adView = remember { AdView(context) }
// Setup and load the adview.
// Set the unique ID for this specific ad unit.
adView.adUnitId = BANNER_AD_UNIT_ID
// Set a large anchored adaptive banner ad size with a given width.
val adSize = AdSize.getLargeAnchoredAdaptiveBannerAdSize(LocalContext.current, 360)
adView.setAdSize(adSize)
// Place the ad view at the bottom of the screen.
Column(modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Bottom) {
Box(modifier = modifier.fillMaxWidth()) { BannerAd(adView, modifier) }
}
Memuat iklan
Contoh berikut memuat iklan banner adaptif anchor lebar 360 ke dalam objek AdView:
Java
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
Kotlin
val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)
Memperbarui iklan
Jika Anda mengonfigurasi unit iklan untuk diperbarui, Anda tidak perlu meminta iklan lain saat iklan gagal dimuat. Google Mobile Ads SDK mematuhi kecepatan refresh yang Anda tentukan di UI AdMob. Jika Anda belum mengaktifkan refresh, kirim permintaan baru. Untuk mengetahui detail selengkapnya tentang refresh unit iklan, seperti menetapkan kecepatan refresh, lihat Menggunakan refresh otomatis untuk iklan Banner.
Melepaskan resource iklan
Setelah selesai menggunakan iklan banner, Anda dapat melepaskan resource iklan banner.
Untuk melepaskan resource iklan, hapus iklan dari hierarki tampilan dan hapus semua referensinya:
Java
public void destroyBanner() {
// Remove banner from view hierarchy.
if (adView != null) {
View parentView = (View) adView.getParent();
if (parentView instanceof ViewGroup) {
((ViewGroup) parentView).removeView(adView);
}
// Destroy the banner ad resources.
adView.destroy();
}
// Drop reference to the banner ad.
adView = null;
}
Kotlin
fun destroyBanner() {
// Remove banner from view hierarchy.
val parentView = adView?.parent
if (parentView is ViewGroup) {
parentView.removeView(adView)
}
// Destroy the banner ad resources.
adView?.destroy()
// Drop reference to the banner ad.
adView = null
}
Peristiwa iklan
Anda dapat memantau sejumlah peristiwa dalam siklus proses iklan, termasuk pemuatan, tayangan iklan, dan klik, serta peristiwa pembukaan dan penutupan iklan. Sebaiknya tetapkan callback sebelum memuat banner.
Java
if (adView != null) {
adView.setAdListener(
new AdListener() {
@Override
public void onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
@Override
public void onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError adError) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
@Override
public void onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
});
}
Kotlin
adView?.adListener =
object : AdListener() {
override fun onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
override fun onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// Code to be executed when an ad request fails.
}
override fun onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
override fun onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
override fun onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
}
Setiap metode yang dapat diganti di AdListener
sesuai dengan peristiwa dalam siklus proses iklan.
| Metode yang dapat diganti | |
|---|---|
onAdClicked() |
Metode onAdClicked()
dipanggil saat klik dicatat untuk iklan.
|
onAdClosed() |
Metode onAdClosed()
dipanggil saat pengguna kembali ke aplikasi setelah melihat URL tujuan iklan. Aplikasi Anda dapat menggunakannya untuk melanjutkan aktivitas yang ditangguhkan atau
melakukan pekerjaan lain yang diperlukan agar siap untuk interaksi.
Lihat contoh AdMob
AdListener untuk mengetahui penerapan metode pemroses iklan di
aplikasi Demo API Android.
|
onAdFailedToLoad() |
Metode onAdFailedToLoad()
adalah satu-satunya metode yang menyertakan parameter. Parameter error berjenis
LoadAdError menjelaskan error yang terjadi. Untuk mengetahui informasi selengkapnya,
lihat dokumentasi Proses Debug Error Pemuatan Iklan.
|
onAdImpression() |
Metode onAdImpression()
dipanggil saat tayangan dicatat untuk iklan.
|
onAdLoaded() |
Metode onAdLoaded()
dieksekusi saat iklan selesai dimuat. Jika Anda ingin menunda
penambahan AdView
ke aktivitas atau fragmen hingga Anda yakin iklan akan dimuat, misalnya, Anda dapat melakukannya di sini.
|
onAdOpened() |
Metode onAdOpened()
dipanggil saat iklan membuka overlay yang menutupi layar.
|
Akselerasi hardware untuk iklan video
Agar iklan video dapat ditampilkan dengan berhasil di tampilan iklan banner Anda, akselerasi hardware harus diaktifkan.
Akselerasi hardware diaktifkan secara default, tetapi beberapa aplikasi dapat memilih untuk menonaktifkannya. Jika hal ini berlaku untuk aplikasi Anda, sebaiknya aktifkan akselerasi hardware untuk class Activity yang menggunakan iklan.
Mengaktifkan akselerasi hardware
Jika aplikasi Anda tidak berperilaku sebagaimana mestinya saat akselerasi hardware diaktifkan secara global, Anda juga dapat mengontrolnya untuk aktivitas tertentu. Untuk mengaktifkan atau
menonaktifkan akselerasi hardware, Anda dapat menggunakan android:hardwareAccelerated
atribut untuk
<application>
dan
<activity>
elemen di AndroidManifest.xml. Contoh berikut mengaktifkan akselerasi hardware untuk keseluruhan aplikasi, tetapi menonaktifkannya untuk satu aktivitas:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
Lihat panduan Akselerasi hardware untuk mengetahui informasi selengkapnya tentang opsi untuk mengontrol akselerasi hardware. Perhatikan bahwa tampilan iklan individual tidak dapat diaktifkan untuk akselerasi hardware jika aktivitas dinonaktifkan, sehingga aktivitas itu sendiri harus mengaktifkan akselerasi hardware.
Langkah berikutnya
Banner yang dapat diciutkan
Iklan banner yang dapat diciutkan adalah iklan banner yang awalnya ditampilkan sebagai overlay yang lebih besar, dengan tombol untuk menciutkan iklan ke ukuran yang lebih kecil. Pertimbangkan untuk menggunakannya guna mengoptimalkan performa Anda lebih lanjut. Lihat iklan banner yang dapat diciutkan untuk mengetahui detail selengkapnya.
Banner adaptif inline
Banner adaptif inline adalah banner yang lebih besar dan lebih tinggi dibandingkan dengan banner adaptif anchor. Banner ini memiliki tinggi variabel, dan dapat setinggi layar perangkat. Banner adaptif inline direkomendasikan daripada iklan banner adaptif anchor untuk aplikasi yang menempatkan iklan banner di konten yang dapat di-scroll. Lihat banner adaptif inline untuk mengetahui detail selengkapnya.