Iklan banner

Iklan banner adalah iklan persegi panjang yang menempati sebagian tata letak aplikasi. Mereka tetap berada di layar saat pengguna berinteraksi dengan aplikasi, baik ditempatkan di bagian atas atau bawah layar, atau sebaris dengan konten saat pengguna men-scroll. Spanduk iklan dapat diperbarui secara otomatis setelah jangka waktu tertentu. Lihat Ringkasan iklan banner untuk informasi selengkapnya.

Panduan ini menunjukkan cara mulai menggunakan banner adaptif anchor iklan, yang memaksimalkan performa dengan mengoptimalkan ukuran iklan untuk setiap perangkat yang menggunakan lebar iklan yang Anda tentukan.

Iklan banner adaptif anchor adalah iklan dengan rasio aspek tetap, bukan iklan biasa iklan berukuran tetap. Rasio aspeknya mirip dengan standar industri 320x50. Satu kali Anda menetapkan lebar penuh yang tersedia, maka akan menghasilkan iklan dengan tinggi untuk lebar tersebut. Tinggi optimal tidak berubah di semua permintaan dari di perangkat yang sama, dan tampilan di sekitarnya tidak perlu bergerak saat iklan memuat ulang.

Prasyarat

Selalu uji dengan iklan percobaan

Saat membuat dan menguji aplikasi, pastikan Anda menggunakan iklan percobaan, bukan iklan produksi secara 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

URL ini telah dikonfigurasi secara khusus guna menampilkan iklan percobaan untuk setiap permintaan, dan Anda dapat menggunakannya di aplikasi Anda sendiri saat melakukan coding, pengujian, dan proses debug. Pastikan bahwa Anda ganti dengan ID unit iklan Anda sendiri sebelum memublikasikan aplikasi.

Untuk informasi selengkapnya tentang cara kerja iklan percobaan Mobile Ads SDK, lihat Menguji Google Ads.

Tambahkan 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 berikutnya adalah memuat iklan. Hal ini dilakukan dengan loadAd() di class AdView. Dibutuhkan AdRequest , yang menyimpan informasi runtime, seperti info penargetan, tentang permintaan iklan tunggal.

Berikut contoh yang menunjukkan cara memuat iklan dalam metode onCreate() 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 Anda gagal dimuat, Anda tidak perlu secara eksplisit meminta iklan lain sebagai selama Anda mengonfigurasi unit iklan untuk disegarkan; Google Mobile Ads SDK kecepatan refresh yang Anda tetapkan di AdMob dan antarmuka web Anda. Jika belum mengaktifkan muat ulang, Anda perlu menerbitkan permintaan.

Selesai. Aplikasi Anda sekarang siap untuk menampilkan iklan banner.

Peristiwa iklan

Anda dapat memproses sejumlah peristiwa dalam siklus proses iklan, termasuk memuat, klik dan tayangan iklan, serta peristiwa pembukaan dan penutupan iklan. Disarankan untuk menetapkan 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 dalam AdListener sesuai dengan peristiwa dalam siklus proses iklan.

Metode yang dapat diganti
onAdClicked() onAdClicked() dipanggil saat klik direkam untuk iklan.
onAdClosed() onAdClosed() metode ini dipanggil saat pengguna kembali ke aplikasi setelah melihat iklan URL tujuan. Aplikasi Anda dapat menggunakannya untuk melanjutkan aktivitas yang ditangguhkan atau melakukan pekerjaan lain yang diperlukan agar dirinya siap untuk interaksi. Lihat AdMob Contoh AdListener untuk penerapan metode pemroses iklan dalam Android API Demo.
onAdFailedToLoad() onAdFailedToLoad() satu-satunya metode yang menyertakan parameter. Parameter error jenis LoadAdError menjelaskan error yang terjadi. Untuk informasi selengkapnya, lihat Men-debug Error Pemuatan Iklan dokumentasi tambahan.
onAdImpression() onAdImpression() dipanggil saat tayangan iklan dicatat untuk sebuah iklan.
onAdLoaded() onAdLoaded() akan dijalankan saat iklan selesai dimuat. Jika Anda ingin menunda menambahkan AdView ke aktivitas atau fragmen Anda hingga Anda yakin bahwa iklan akan dimuat, selama Anda bisa melakukannya di sini.
onAdOpened() onAdOpened() dipanggil saat iklan membuka overlay yang menutupi layar.

Akselerasi hardware untuk iklan video

Agar iklan video berhasil tampil dalam tampilan iklan spanduk Anda, perangkat keras akselerasi harus diaktifkan.

Akselerasi hardware diaktifkan secara default, tetapi beberapa aplikasi dapat memilih untuk menonaktifkannya anotasi. Jika ini berlaku untuk aplikasi Anda, sebaiknya aktifkan akselerasi perangkat keras untuk Activity kelas 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 individual. Untuk mengaktifkan atau menonaktifkan akselerasi hardware, Anda dapat menggunakan android:hardwareAccelerated untuk atribut <application> dan <activity> elemen di AndroidManifest.xml. Contoh berikut mengaktifkan hardware akselerasi untuk seluruh 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 Akselerasi hardware untuk informasi selengkapnya informasi tentang pilihan untuk mengendalikan akselerasi perangkat keras. Perlu diketahui bahwa tampilan iklan tunggal tidak dapat diaktifkan untuk akselerasi hardware jika aktivitas dinonaktifkan, sehingga aktivitas itu sendiri harus mengaktifkan akselerasi hardware.

Referensi lainnya

Contoh di GitHub

  • Contoh iklan banner adaptif anchor: Java | Kotlin

Langkah berikutnya

Banner yang dapat diciutkan

Iklan banner yang dapat diciutkan adalah iklan banner yang mula-mula disajikan dengan iklan overlay, dengan tombol untuk menciutkan iklan ke ukuran yang lebih kecil. Pertimbangkan untuk menggunakannya untuk lebih mengoptimalkan performa. Lihat iklan banner yang dapat diciutkan untuk detail selengkapnya.

Banner adaptif inline

Banner adaptif inline berukuran lebih besar dan lebih tinggi dibandingkan dengan banner adaptif anchor banner. 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 adaptif inline banner untuk informasi lebih lanjut spesifikasi pendukung.

Jelajahi topik lainnya