Thiết lập các tính năng nâng cao

Chọn nền tảng: Android Mới Android iOS

Quảng cáo gốc có nhiều tính năng nâng cao cho phép bạn tuỳ chỉnh thêm và mang lại trải nghiệm quảng cáo tốt nhất có thể. Hướng dẫn này trình bày cách sử dụng các tính năng nâng cao của quảng cáo gốc.

Điều kiện tiên quyết

Chế độ kiểm soát thành phần

Phần này trình bày chi tiết cách tuỳ chỉnh các thành phần mẫu quảng cáo trong quảng cáo gốc. Bạn có thể chỉ định tỷ lệ khung hình ưu tiên cho thành phần nội dung nghe nhìn và cách tải xuống cũng như hiển thị thành phần hình ảnh.

Chế độ kiểm soát tỷ lệ khung hình ưu tiên của nội dung nghe nhìn

Chế độ kiểm soát tỷ lệ khung hình của nội dung nghe nhìn cho phép bạn chỉ định lựa chọn ưu tiên về tỷ lệ khung hình của mẫu quảng cáo.

Gọi NativeAdOptions.Builder.setMediaAspectRatio() bằng giá trị NativeAdOptions.MediaAspectRatio.

  • Khi bạn không đặt giá trị này, quảng cáo được trả về có thể có tỷ lệ khung hình bất kỳ của nội dung nghe nhìn.

  • Khi bạn đặt giá trị này, bạn có thể cải thiện trải nghiệm người dùng bằng cách chỉ định loại tỷ lệ khung hình ưu tiên.

Ví dụ sau đây hướng dẫn SDK ưu tiên hình ảnh hoặc video được trả về có tỷ lệ khung hình cụ thể.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

Thay thế AD_UNIT_ID bằng mã đơn vị quảng cáo của bạn.

Chế độ kiểm soát việc tải hình ảnh xuống

Chế độ kiểm soát việc tải hình ảnh xuống cho phép bạn quyết định xem SDK sẽ trả về thành phần hình ảnh hay chỉ URI.

Gọi NativeAdOptions.Builder.setReturnUrlsForImageAssets() bằng giá trị boolean.

  • Theo mặc định, chế độ kiểm soát việc tải hình ảnh xuống bị tắt.

  • Khi bị tắt, Google Mobile Ads SDK sẽ điền cả hình ảnh và URI cho bạn.

  • Khi được bật, SDK sẽ chỉ điền URI, cho phép bạn tải các hình ảnh thực nếu muốn.

Ví dụ sau đây hướng dẫn SDK chỉ trả về URI.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID")
        .withNativeAdOptions(nativeAdOptions)
        .forNativeAd(
            nativeAd -> {
              List<Uri> imageUris = new ArrayList<>();
              for (Image image : nativeAd.getImages()) {
                imageUris.add(image.getUri());
              }
            })
        .build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build()

val loader =
  AdLoader.Builder(context, "AD_UNIT_ID")
    .withNativeAdOptions(nativeAdOptions)
    .forNativeAd { nativeAd ->
      val imageUris = nativeAd.images.mapNotNull { it.uri }
    }
    .build()

Chế độ kiểm soát tải trọng hình ảnh

Một số quảng cáo có một loạt hình ảnh thay vì chỉ một hình ảnh. Hãy sử dụng tính năng này để cho biết liệu ứng dụng của bạn đã sẵn sàng hiển thị tất cả hình ảnh hay chỉ một hình ảnh.

Gọi NativeAdOptions.Builder.setRequestMultipleImages() bằng giá trị boolean.

  • Theo mặc định, chế độ kiểm soát tải trọng hình ảnh bị tắt.

  • Khi bị tắt, ứng dụng của bạn sẽ hướng dẫn SDK chỉ cung cấp hình ảnh đầu tiên cho bất kỳ thành phần nào có chứa một loạt hình ảnh.

  • Khi được bật, ứng dụng của bạn cho biết rằng ứng dụng đã sẵn sàng hiển thị tất cả hình ảnh cho bất kỳ thành phần nào có nhiều hình ảnh.

Ví dụ sau đây hướng dẫn SDK trả về nhiều thành phần hình ảnh.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setRequestMultipleImages(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setRequestMultipleImages(true).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

Vị trí đặt nhãn Lựa chọn quảng cáo

Phần này trình bày chi tiết cách đặt lớp phủ Lựa chọn quảng cáo. Bạn có thể đặt vị trí của lớp phủ này ở một trong bốn góc hoặc hiển thị lớp phủ này trong một chế độ xem tuỳ chỉnh.

Chế độ kiểm soát vị trí đặt nhãn Lựa chọn quảng cáo

Chế độ kiểm soát vị trí đặt nhãn AdChoices cho phép bạn chọn góc để hiển thị biểu tượng Lựa chọn quảng cáo.

Gọi NativeAdOptions.Builder.setAdChoicesPlacement() bằng giá trị NativeAdOption.AdChoicesPlacement.

  • Nếu bạn không đặt giá trị này, vị trí đặt biểu tượng Lựa chọn quảng cáo sẽ được đặt ở góc trên cùng bên phải.

  • Nếu bạn đặt giá trị này, nhãn Lựa chọn quảng cáo sẽ được đặt ở vị trí tuỳ chỉnh theo yêu cầu.

Ví dụ sau đây minh hoạ cách đặt vị trí tuỳ chỉnh cho hình ảnh nhãn Lựa chọn quảng cáo.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

Chế độ xem tuỳ chỉnh nhãn Lựa chọn quảng cáo

Tính năng chế độ xem tuỳ chỉnh nhãn Lựa chọn quảng cáo cho phép bạn đặt biểu tượng Lựa chọn quảng cáo ở một vị trí tuỳ chỉnh. Tính năng này khác với chế độ kiểm soát vị trí đặt nhãn Lựa chọn quảng cáo (chỉ cho phép chỉ định một trong bốn góc).

Gọi NativeAdView.setAdChoicesView() bằng giá trị AdChoicesView.

Ví dụ sau đây minh hoạ cách đặt chế độ xem tuỳ chỉnh nhãn Lựa chọn quảng cáo, với biểu tượng Lựa chọn quảng cáo được hiển thị bên trong AdChoicesView.

Java

NativeAdView nativeAdView = new NativeAdView(context);
AdChoicesView adChoicesView = new AdChoicesView(context);
nativeAdView.setAdChoicesView(adChoicesView);

Kotlin

val nativeAdView = NativeAdView(context)
val adChoicesView = AdChoicesView(context)
nativeAdView.adChoicesView = adChoicesView

Điều khiển video

Phần này trình bày chi tiết cách tuỳ chỉnh trải nghiệm phát cho quảng cáo dạng video. Bạn có thể đặt trạng thái tắt tiếng ban đầu và triển khai các chế độ điều khiển phát tuỳ chỉnh.

Hành vi bắt đầu ở trạng thái tắt tiếng

Hành vi bắt đầu ở trạng thái tắt tiếng cho phép bạn tắt hoặc bật âm thanh bắt đầu của video.

Gọi VideoOptions.Builder.setStartMuted() bằng giá trị boolean

  • Theo mặc định, hành vi bắt đầu ở trạng thái tắt tiếng được bật.

  • Khi bị tắt, ứng dụng của bạn sẽ yêu cầu video bắt đầu có âm thanh.

  • Khi được bật, ứng dụng của bạn sẽ yêu cầu video bắt đầu ở trạng thái tắt tiếng.

Ví dụ sau đây cho thấy cách bắt đầu video có âm thanh không bị tắt tiếng.

Java

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

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

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

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

Chế độ điều khiển phát tuỳ chỉnh

Tính năng này cho phép bạn yêu cầu các chế độ điều khiển đầu vào video tuỳ chỉnh để phát, tạm dừng hoặc tắt tiếng video.

Gọi VideoOptions.Builder.setCustomControlsRequested() bằng giá trị boolean.

  • Theo mặc định, chế độ điều khiển phát tuỳ chỉnh bị tắt.

  • Khi bị tắt, video của bạn sẽ hiển thị các chế độ điều khiển đầu vào do SDK hiển thị.

Nếu quảng cáo có nội dung video và chế độ điều khiển tuỳ chỉnh được bật, thì bạn nên hiển thị các chế độ điều khiển tuỳ chỉnh cùng với quảng cáo, vì quảng cáo sẽ không tự hiển thị bất kỳ chế độ điều khiển nào. Sau đó, các chế độ điều khiển có thể gọi các phương thức có liên quan trên

VideoController.

Ví dụ sau đây cho thấy cách yêu cầu video có chế độ điều khiển phát tuỳ chỉnh.

Java

VideoOptions videoOptions = new VideoOptions.Builder().setCustomControlsRequested(true).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

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

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

Kiểm tra xem chế độ điều khiển tuỳ chỉnh đã được bật hay chưa

Vì bạn không biết liệu quảng cáo được trả về có cho phép chế độ điều khiển video tuỳ chỉnh hay không tại thời điểm yêu cầu, nên bạn phải kiểm tra xem quảng cáo đó đã bật chế độ điều khiển tuỳ chỉnh hay chưa.

Java

MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
  VideoController videoController = mediaContent.getVideoController();
  boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}

Kotlin

val mediaContent = nativeAd.mediaContent
if (mediaContent != null) {
  val videoController = mediaContent.videoController
  val canShowCustomControls = videoController.isCustomControlsEnabled
}

Hiển thị chế độ điều khiển video tuỳ chỉnh

Hiển thị chế độ điều khiển video tuỳ chỉnh theo các phương pháp hay nhất sau đây:

  1. Hiển thị chế độ xem điều khiển tuỳ chỉnh dưới dạng phần tử con của chế độ xem quảng cáo gốc. Phương pháp này cho phép tính toán khả năng xem của tính năng đo lường mở, coi chế độ điều khiển tuỳ chỉnh là thành phần che khuất chấp nhận được.
  2. Tránh hiển thị lớp phủ vô hình trên toàn bộ trung tâm nghe nhìn. Lớp phủ chặn các lượt nhấp vào trung tâm nghe nhìn, ảnh hưởng tiêu cực đến hiệu suất của quảng cáo gốc. Thay vào đó, hãy tạo một lớp phủ nhỏ vừa đủ để chứa các chế độ điều khiển.

Cử chỉ nhấp tuỳ chỉnh

Cử chỉ nhấp tuỳ chỉnh là một tính năng của quảng cáo gốc cho phép bạn đăng ký thao tác vuốt trên lượt xem quảng cáo dưới dạng lượt nhấp vào quảng cáo. Tính năng này hoạt động với các ứng dụng sử dụng cử chỉ vuốt để điều hướng nội dung. Hướng dẫn này trình bày cách bật cử chỉ nhấp tuỳ chỉnh trên quảng cáo gốc.

Gọi NativeAdOptions.Builder.enableCustomClickGestureDirection() bằng NativeAdOptions.SwipeGestureDirectionboolean để cho biết có cho phép thao tác nhấn dưới dạng lượt nhấp hay không.

  • Theo mặc định, cử chỉ nhấp tuỳ chỉnh bị tắt.

  • Khi bị tắt, ứng dụng của bạn sẽ hỗ trợ hành vi nhấp thông thường.

  • Khi được bật, ứng dụng của bạn sẽ hỗ trợ cử chỉ vuốt tuỳ chỉnh.

Ví dụ sau đây triển khai cử chỉ vuốt tuỳ chỉnh sang phải và giữ nguyên hành vi nhấn thông thường.

Java

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

// ca-app-pub-3940256099942544/2247696110 is a sample ad unit ID that has custom click
// gestures enabled.
AdLoader.Builder builder =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions);

Kotlin

val adOptions =
  NativeAdOptions.Builder()
    .enableCustomClickGestureDirection(NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, true)
    .build()

val builder = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions)

Theo dõi các sự kiện cử chỉ vuốt

Khi một lượt nhấp bằng cử chỉ vuốt được ghi lại, Google Mobile Ads SDK sẽ gọi phương thức onAdSwipeGestureClicked() trên AdListener, ngoài phương thức onAdClicked() hiện có.

Java

AdLoader adLoader =
    new AdLoader.Builder(context, AD_UNIT_ID)
        .withAdListener(
            new AdListener() {
              // Called when a swipe gesture click is recorded.
              @Override
              public void onAdSwipeGestureClicked() {
                // Called when a swipe gesture click is recorded.
                Log.d(TAG, "A swipe gesture click has occurred.");
              }

              @Override
              public void onAdClicked() {
                // Called when a swipe gesture click or a tap click is recorded, as
                // configured in NativeAdOptions.
                Log.d(TAG, "A swipe gesture click or a tap click has occurred.");
              }
            })
        .build();

Kotlin

val adLoader =
  AdLoader.Builder(context, AD_UNIT_ID)
    .withAdListener(
      object : AdListener() {
        override fun onAdSwipeGestureClicked() {
          // Called when a swipe gesture click is recorded.
          Log.d(TAG, "A swipe gesture click has occurred.")
        }

        override fun onAdClicked() {
          // Called when a swipe gesture click or a tap click is recorded, as
          // configured in NativeAdOptions.
          Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
        }
      }
    )
    .build()

Dàn xếp

Cử chỉ nhấp tuỳ chỉnh chỉ hoạt động trên quảng cáo gốc mà SDK quảng cáo trên thiết bị di động của Google hiển thị. Các nguồn quảng cáo yêu cầu SDK của bên thứ ba để hiển thị sẽ không phản hồi chế độ cài đặt hướng nhấp tuỳ chỉnh.