Iklan banner adalah iklan persegi panjang yang menempati sebagian tata letak aplikasi. Iklan tetap berada di layar saat pengguna berinteraksi dengan aplikasi, yang ditempatkan di bagian atas atau bawah layar atau sebaris dengan konten saat pengguna men-scroll. Iklan banner dapat dimuat ulang secara otomatis setelah jangka waktu tertentu. Lihat Ringkasan iklan banner untuk mengetahui informasi selengkapnya.
Panduan ini menunjukkan cara mulai menggunakan iklan banner adaptif anchor, yang memaksimalkan performa dengan mengoptimalkan ukuran iklan untuk setiap perangkat menggunakan lebar iklan yang Anda tentukan.
Iklan banner adaptif anchor adalah iklan rasio aspek tetap, bukan iklan ukuran tetap reguler. Rasio aspeknya mirip dengan standar industri 320x50. Setelah menentukan lebar penuh yang tersedia, iklan dengan tinggi optimal untuk lebar tersebut akan ditampilkan. Tinggi optimal tidak berubah untuk berbagai permintaan dari perangkat yang sama, dan tampilan di sekitarnya tidak perlu dipindahkan saat iklan dimuat ulang.
Prasyarat
- Selesaikan Panduan memulai.
Selalu uji dengan iklan percobaan
Saat mem-build 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 untuk banner Android:
ca-app-pub-3940256099942544/9214589741
API ini telah dikonfigurasi secara khusus agar menampilkan iklan percobaan untuk setiap permintaan, dan 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 informasi selengkapnya tentang cara kerja iklan percobaan Mobile Ads SDK, lihat Iklan Percobaan.
Menambahkan AdView ke tata letak
Langkah pertama untuk menampilkan banner adalah menempatkan AdView
dalam tata letak untuk Activity
atau Fragment
tempat Anda ingin menampilkannya:
Java
private AdSize getAdSize() {
// Determine the screen width (less decorations) to use for the ad width.
Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics();
display.getMetrics(outMetrics);
float density = outMetrics.density;
float adWidthPixels = adContainerView.getWidth();
// If the ad hasn't been laid out, default to the full screen width.
if (adWidthPixels == 0) {
adWidthPixels = outMetrics.widthPixels;
}
int adWidth = (int) (adWidthPixels / density);
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}
private void loadBanner() {
// Create a new ad view.
AdView adView = new AdView(this);
adView.setAdSizes(getAdSize());
adView.setAdUnitId("ca-app-pub-3940256099942544/9214589741");
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
// Start loading the ad in the background.
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
Kotlin
// Determine the screen width (less decorations) to use for the ad width.
// If the ad hasn't been laid out, default to the full screen width.
private val adSize: AdSize
get() {
val display = windowManager.defaultDisplay
val outMetrics = DisplayMetrics()
display.getMetrics(outMetrics)
val density = outMetrics.density
var adWidthPixels = binding.adViewContainer.width.toFloat()
if (adWidthPixels == 0f) {
adWidthPixels = outMetrics.widthPixels.toFloat()
}
val adWidth = (adWidthPixels / density).toInt()
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
}
private fun loadBanner() {
// Create a new ad view.
val adView = AdView(this)
adView.adSizes = adSize
adView.adUnitId = "ca-app-pub-3940256099942544/9214589741"
// Create an ad request.
val adRequest = AdRequest.Builder().build()
// Start loading the ad in the background.
adView.loadAd(adRequest)
}
Memuat iklan
Setelah AdView diterapkan, langkah selanjutnya adalah
memuat iklan. Hal itu dilakukan dengan metode loadAd()
di class AdView
. Diperlukan parameter AdRequest
, yang menyimpan informasi runtime, seperti info penargetan, tentang
satu permintaan iklan.
Berikut adalah contoh yang menunjukkan cara memuat iklan dalam metode onCreate()
dari
Activity
:
Java
private void loadBanner() {
// Create a new ad view.
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT);
adView.setAdSize(getAdSize());
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
// Start loading the ad in the background.
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
Kotlin
private fun loadBanner() {
// This is an ad unit ID for a test ad. Replace with your own banner ad unit ID.
adView.adUnitId = "/6499/example/banner"
adView.setAdSize(adSize)
// Create an ad request.
val adRequest = AdRequest.Builder().build()
// Start loading the ad in the background.
adView.loadAd(adRequest)
}
Jika iklan gagal dimuat, Anda tidak perlu meminta iklan lain secara eksplisit selama Anda telah mengonfigurasi unit iklan untuk dimuat ulang. Google Mobile Ads SDK akan mengikuti kecepatan refresh yang Anda tentukan di antarmuka web AdMob. Jika belum mengaktifkan refresh, Anda harus mengirimkan permintaan baru.
Selesai. Aplikasi Anda sekarang siap untuk menampilkan iklan banner.
Peristiwa iklan
Anda dapat memproses 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
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(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
berkaitan dengan peristiwa dalam siklus proses iklan.
Metode yang dapat diganti | |
---|---|
onAdClicked() |
Metode onAdClicked()
dipanggil saat klik direkam untuk sebuah 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 aplikasi siap untuk berinteraksi.
Lihat contoh
AdListener AdMob untuk mengetahui penerapan metode pemroses iklan di
aplikasi Demo Android API.
|
onAdFailedToLoad() |
Metode onAdFailedToLoad()
adalah satu-satunya yang menyertakan parameter. Parameter error jenis
LoadAdError menjelaskan error yang terjadi. Untuk informasi selengkapnya,
lihat dokumentasi Men-debug Error
Pemuatan Iklan.
|
onAdImpression() |
Metode onAdImpression()
dipanggil saat tayangan dicatat untuk sebuah iklan.
|
onAdLoaded() |
Metode onAdLoaded()
dijalankan saat iklan selesai dimuat. Jika Anda ingin menunda
penambahan AdView
ke aktivitas atau fragmen hingga Anda yakin bahwa 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 berhasil ditampilkan dalam tampilan iklan banner, akselerasi hardware harus diaktifkan.
Akselerasi hardware diaktifkan secara default, tetapi beberapa aplikasi dapat memilih untuk
menonaktifkannya. Jika ini berlaku untuk aplikasi Anda, sebaiknya aktifkan akselerasi hardware untuk
class Activity
yang menggunakan iklan.
Mengaktifkan akselerasi hardware
Jika aplikasi Anda tidak berperilaku baik saat akselerasi hardware diaktifkan
secara global, Anda juga dapat mengontrolnya untuk aktivitas individual. Untuk mengaktifkan atau
menonaktifkan akselerasi hardware, Anda dapat menggunakan atribut android:hardwareAccelerated
untuk elemen
<application>
dan
<activity>
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.
Referensi lainnya
Contoh di GitHub
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 lebih mengoptimalkan performa Anda. Lihat iklan banner yang dapat diciutkan untuk detail selengkapnya.
Banner adaptif inline
Banner adaptif inline memiliki ukuran banner yang lebih besar dan lebih tinggi dibandingkan dengan banner adaptif anchor. Tingginya bervariasi, dan bisa setinggi layar perangkat. Banner adaptif inline direkomendasikan daripada iklan banner adaptif anchor untuk aplikasi yang menempatkan iklan banner dalam konten yang dapat di-scroll. Lihat banner adaptif inline untuk detail selengkapnya.