Opsi iklan native

Iklan Native memiliki banyak fitur lanjutan yang memungkinkan Anda melakukan penyesuaian tambahan dan menciptakan pengalaman iklan terbaik. Panduan ini menunjukkan cara menggunakan fitur lanjutan iklan native.

Prasyarat

Kontrol aset

Bagian ini menjelaskan cara menyesuaikan aset materi iklan di iklan native Anda. Anda memiliki opsi untuk menentukan rasio aspek pilihan untuk aset media dan cara aset gambar didownload dan ditampilkan.

Kontrol rasio aspek media pilihan

Kontrol Rasio Aspek Media memungkinkan Anda menentukan preferensi untuk rasio aspek materi iklan.

Panggil NativeAdRequest.Builder.setMediaAspectRatio() dengan nilai NativeAd.NativeMediaAspectRatio.

  • Jika tidak disetel, iklan yang ditampilkan dapat memiliki rasio aspek media apa pun.

  • Jika disetel, Anda dapat meningkatkan kualitas pengalaman pengguna dengan menentukan jenis rasio aspek yang disukai.

Contoh berikut menginstruksikan SDK untuk memilih gambar atau video yang ditampilkan dengan rasio aspek tertentu.

Kotlin

val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
  .build()

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
  .build();

Kontrol download gambar

Kontrol download gambar memungkinkan Anda memutuskan apakah aset gambar atau hanya URI yang ditampilkan oleh SDK.

Panggil NativeAdRequest.Builder.disableImageDownloading().

  • Kontrol download gambar dinonaktifkan secara default.

  • Jika dinonaktifkan, Google Mobile Ads SDK (beta) akan mengisi gambar dan URI untuk Anda.

  • Jika diaktifkan, SDK hanya akan mengisi URI, sehingga Anda dapat mendownload gambar sebenarnya sesuai keinginan Anda.

Contoh berikut menginstruksikan SDK untuk menampilkan hanya URI.

Kotlin

val adRequest = NativeAdRequest.Builder(
    "ca-app-pub-3940256099942544/2247696110",
    listOf(NativeAd.NativeAdType.NATIVE))
    .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
    .disableImageDownloading()
    .build()

val adCallback: NativeAdLoaderCallback =
  object : NativeAdLoaderCallback {
    override fun onNativeAdLoaded(nativeAd: NativeAd) {
      // Get the image uri.
      val imageUri = nativeAd.image?.uri
    }
  };

// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .disableImageDownloading()
  .build();

NativeAdLoaderCallback adLoaderCallback =
  new NativeAdLoaderCallback() {
    @Override
    public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
      // Get the image uri.
      Uri imageUri = nativeAd.getImage().getUri();
    }
  };

// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);

Kontrol payload gambar

Beberapa iklan memiliki serangkaian gambar, bukan hanya satu. Gunakan fitur ini untuk menunjukkan apakah aplikasi Anda siap menampilkan semua gambar atau hanya satu gambar.

  • Kontrol payload gambar dinonaktifkan secara default.

  • Jika dinonaktifkan, aplikasi Anda akan menginstruksikan SDK untuk menyediakan hanya gambar pertama untuk aset apa pun yang berisi rangkaian.

  • Jika diaktifkan, aplikasi Anda menunjukkan bahwa aplikasi siap menampilkan semua gambar untuk aset apa pun yang memiliki lebih dari satu gambar.

Contoh berikut menginstruksikan SDK untuk menampilkan beberapa aset gambar.

Penempatan AdChoices

Bagian ini menjelaskan cara memosisikan overlay AdChoices. Anda memiliki opsi untuk menyetel penempatannya ke salah satu dari empat sudut atau merendernya dalam tampilan kustom.

Kontrol posisi AdChoices

Kontrol posisi AdChoices memungkinkan Anda memilih sudut untuk menampilkan ikon AdChoices.

Panggil NativeAdRequest.Builder.setAdChoicesPlacement() dengan nilai NativeAdRequest.AdChoicesPlacement.

  • Jika tidak disetel, posisi ikon AdChoices akan disetel ke kanan atas.

  • Jika disetel, AdChoices ditempatkan di posisi kustom sesuai permintaan.

Contoh berikut menunjukkan cara menetapkan posisi gambar AdChoices kustom.

Kotlin

val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
  .build()

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
  .build();

Tampilan kustom AdChoices

Fitur tampilan kustom AdChoices memungkinkan Anda memosisikan ikon AdChoices di lokasi kustom. Hal ini berbeda dengan kontrol posisi AdChoices, yang hanya memungkinkan penentuan salah satu dari empat sudut.

Panggil NativeAdView.setAdChoicesView() dengan nilai AdChoicesView.

Contoh berikut menunjukkan cara menyetel tampilan AdChoices kustom, dengan ikon AdChoices dirender di dalam AdChoicesView.

Kotlin

override fun onNativeAdLoaded(nativeAd: NativeAd) {
  val nativeAdView = NativeAdView(applicationContext)
  val adChoicesView = AdChoicesView(this)
  nativeAdView.adChoicesView = adChoicesView
}

Java

public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
  NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
  AdChoicesView adChoicesView = new AdChoicesView(this);
  nativeAdView.setAdChoicesView(adChoicesView);
}

Kontrol video

Bagian ini menjelaskan cara menyesuaikan pengalaman pemutaran untuk iklan video. Anda memiliki opsi untuk menyetel status bisu awal dan menerapkan kontrol pemutaran kustom.

Perilaku mulai membisukan

Perilaku mulai tanpa suara memungkinkan Anda menonaktifkan atau mengaktifkan audio awal video.

Panggil VideoOptions.Builder.setStartMuted() dengan nilai boolean dan panggil NativeAdOptions.Builder.setVideoOptions().

  • Perilaku mulai dalam keadaan senyap diaktifkan secara default.

  • Jika dinonaktifkan, aplikasi Anda meminta video harus dimulai dengan audio.

  • Jika diaktifkan, aplikasi Anda akan meminta agar video dimulai dengan audio dibisukan.

Contoh berikut menunjukkan cara memulai video dengan audio yang tidak diredam.

Kotlin

val videoOptions = VideoOptions.Builder()
  .setStartMuted(false)
  .build()

val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

VideoOptions videoOptions = VideoOptions.Builder()
  .setStartMuted(false)
  .build()

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Kontrol pemutaran kustom

Dengan demikian, Anda dapat meminta kontrol input video kustom untuk memutar, menjeda, atau membisukan video.

Untuk menyetel status bisu awal iklan, panggil VideoOptions.Builder.setCustomControlsRequested().

  • Kontrol pemutaran kustom dinonaktifkan secara default.

  • Jika dinonaktifkan, video Anda akan menampilkan kontrol input yang dirender SDK.

Jika iklan memiliki konten video dan kontrol kustom diaktifkan, Anda harus menampilkan kontrol kustom bersama iklan, karena iklan tidak akan menampilkan kontrol apa pun. Kontrol kemudian dapat memanggil metode yang relevan pada

VideoOptions.Builder.setCustomControlsRequested().

Contoh berikut menunjukkan cara meminta video dengan kontrol pemutaran kustom.

Kotlin

val videoOptions: VideoOptions.Builder()
  .setCustomControlsRequested(true)
  .build()

val adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

VideoOptions VideoOptions = VideoOptions.Builder()
  .setCustomControlsRequested(true)
  .build()

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Memeriksa apakah kontrol kustom diaktifkan

Karena tidak diketahui pada waktu permintaan apakah iklan yang ditampilkan akan mengizinkan kontrol video kustom, Anda harus memeriksa apakah kontrol kustom diaktifkan.

Kotlin

  val adCallback: NativeAdLoaderCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        val mediaContent = nativeAd.mediaContent;
        if (mediaContent != null) {
          val videoController = mediaContent.videoController;
          val canShowCustomControls = videoController?.isCustomControlsEnabled();
        }
      }
    };

Java

NativeAdLoaderCallback adCallback =
  new NativeAdLoaderCallback() {
    @Override
    public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
      MediaContent mediaContent = nativeAd.getMediaContent();
      if (mediaContent != null) {
        VideoController videoController = mediaContent.getVideoController();
        if (videoController != null) {
          boolean canShowCustomControls = videoController.isCustomControlsEnabled();
        }
      }
    }
  };

Merender kontrol video kustom

Render kontrol video kustom menggunakan praktik terbaik berikut:

  1. Tampilkan tampilan kontrol kustom sebagai turunan dari tampilan iklan native. Pendekatan ini memungkinkan perhitungan visibilitas pengukuran terbuka mempertimbangkan kontrol kustom sebagai penghalang yang tidak mengganggu.
  2. Hindari merender overlay yang tidak terlihat di seluruh tampilan media. Overlay memblokir klik pada tampilan media, sehingga berdampak negatif pada performa iklan native. Sebagai gantinya, buat overlay kecil yang cukup besar untuk memuat kontrol.

Gestur klik kustom

Gestur klik kustom adalah fitur iklan native yang memungkinkan gesekan pada tampilan iklan dicatat sebagai klik iklan. Fitur ini didesain untuk berfungsi dengan aplikasi yang menggunakan gestur geser untuk navigasi konten. Panduan ini menunjukkan cara mengaktifkan gestur klik kustom di iklan native Anda.

Panggil NativeAdRequest.Builder.enableCustomClickGestureDirection() dengan NativeAd.SwipeGestureDirection dan nilai boolean.

Contoh berikut mengimplementasikan gestur geser kustom ke kanan dan mempertahankan perilaku tab normal.

  • Gestur klik kustom dinonaktifkan secara default.

  • Jika dinonaktifkan, aplikasi Anda akan mendukung perilaku klik normal.

  • Jika diaktifkan, aplikasi Anda akan mendukung gestur geser kustom.

Contoh berikut mengimplementasikan gestur geser kustom ke kanan dan mempertahankan perilaku tab normal.

Kotlin

val adOptions = NativeAdOptions
  .Builder()
  .enableCustomClickGestureDirection(
    /* swipeDirection */ NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT,
    /* tapsAllowed= */ true)
  .build();

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .withNativeAdOptions(adOptions)
  .build();

Java

NativeAdOptions adOptions = new NativeAdOptions
  .Builder()
  .enableCustomClickGestureDirection(
    /* swipeDirection */ NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT,
    /* tapsAllowed= */ true)
  .build();

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .withNativeAdOptions(adOptions)
  .build();

Memproses peristiwa gestur geser

Untuk memproses peristiwa gestur geser, panggil NativeAd.setAdEventCallback() dengan NativeAdEventCallback dan terapkan metode onAdSwipeGestureClicked().

Kotlin

  val adCallback: NativeAdLoaderCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        // Implement the onAdSwipeGestureClicked() method.
        val nativeAdCallback: NativeAdEventCallback = object : NativeAdEventCallback {
          override fun onAdSwipeGestureClicked() {
            // A swipe gesture click has occurred.
          }
        }
      }
    }
  // Load the native ad with the ad request and callback.
  NativeAdLoader.load(adRequest, adCallback)

Java

  NativeAdLoaderCallback adCallback =
    new NativeAdLoaderCallback() {
      @Override
      public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
        // Implement the onAdSwipeGestureClicked() method.
        NativeAdEventCallback nativeAdCallback = new NativeAdEventCallback() {
          @Override
          public void onAdSwipeGestureClicked() {
            // A swipe gesture click has occurred.
          }
        };
      }
    };
  // Load the native ad with the ad request and callback.
  NativeAdLoader.load(adRequest, adCallback);

Mediasi

Gestur klik kustom hanya berfungsi pada iklan native yang dirender oleh Google Mobile Ads SDK. Sumber iklan yang memerlukan SDK pihak ketiga untuk rendering, tidak merespons setelan arah klik kustom.