Thiết lập các tính năng nâng cao của quảng cáo gốc

Chọn nền tảng: Android (beta) Mới chọn 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à tạo 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 NativeAdRequest.Builder.setMediaAspectRatio() bằng giá trị NativeAd.NativeMediaAspectRatio.

  • 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 của nội dung nghe nhìn bất kỳ.

  • 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 trả về hình ảnh hoặc video có tỷ lệ khung hình cụ thể.

Kotlin

val adRequest = NativeAdRequest.Builder(
  "/21775744923/example/native",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
  .build()

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "/21775744923/example/native",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
  .build();

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 NativeAdRequest.Builder.disableImageDownloading().

  • 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, GMA Next-Gen 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.

Kotlin

val adRequest = NativeAdRequest.Builder(
    "/21775744923/example/native",
    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(
  "/21775744923/example/native",
  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);

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.

  • 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 loạt ả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.

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 thành phần hiển thị 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 NativeAdRequest.Builder.setAdChoicesPlacement() bằng giá trị NativeAdRequest.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 Lựa chọn quảng cáo.

Kotlin

val adRequest = NativeAdRequest.Builder(
  "/21775744923/example/native",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
  .build()

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "/21775744923/example/native",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
  .build();

Thành phần hiển thị tuỳ chỉnh cho nhãn Lựa chọn quảng cáo

Tính năng thành phần hiển thị tuỳ chỉnh cho 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 thành phần hiển thị tuỳ chỉnh cho 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.

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);
}

Đ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 chế độ kiểm soát chế độ 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 và gọi NativeAdOptions.Builder.setVideoOptions().

  • 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.

Kotlin

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

val adRequest = NativeAdRequest.Builder(
  "/21775744923/example/native",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

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

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "/21775744923/example/native",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Chế độ kiểm soát chế độ phát tuỳ chỉnh

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

Để đặt trạng thái tắt tiếng khi bắt đầu quảng cáo, hãy gọi VideoOptions.Builder.setCustomControlsRequested().

  • Theo mặc định, chế độ kiểm soát chế độ phát tuỳ chỉnh bị tắt.

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

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

VideoOptions.Builder.setCustomControlsRequested().

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

Kotlin

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

val adRequest = new NativeAdRequest.Builder(
  "/21775744923/example/native",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

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

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "/21775744923/example/native",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Kiểm tra xem chế độ kiểm soát tuỳ chỉnh có được bật hay không

Vì không biết liệu quảng cáo được trả về có cho phép chế độ kiểm soát 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 đó có bật chế độ kiểm soát tuỳ chỉnh hay không.

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();
        }
      }
    }
  };

Hiển thị chế độ kiểm soát video tuỳ chỉnh

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

  1. Hiển thị thành phần hiển thị chế độ kiểm soát tuỳ chỉnh dưới dạng thành phần con của thành phần hiển thị 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ế độ kiểm soát tuỳ chỉnh là thành phần che khuất thân thiện.
  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ế độ kiểm soát.

Thao tác nhấp tuỳ chỉnh

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

Gọi NativeAdRequest.Builder.enableCustomClickGestureDirection() bằng giá trị NativeAd.SwipeGestureDirection và giá trị boolean.

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

  • Theo mặc định, thao tác 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ợ thao tác vuốt tuỳ chỉnh.

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

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(
  "/21775744923/example/native",
  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(
  "/21775744923/example/native",
  List.of(NativeAd.NativeAdType.NATIVE))
  .withNativeAdOptions(adOptions)
  .build();

Theo dõi các sự kiện thao tác vuốt

Để theo dõi các sự kiện thao tác vuốt, hãy gọi NativeAd.setAdEventCallback() bằng NativeAdEventCallback và triển khai phương thức 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);

Dàn xếp

Thao tác 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ị không phản hồi chế độ cài đặt hướng nhấp tuỳ chỉnh.