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 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à 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 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 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 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 mọi thành phần có chứa 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 mọi thành phần 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 khung 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 nhãn 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();

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

Tính năng khung 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 bạn 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 khung 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 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 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 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ì quảng cáo sẽ không tự 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 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 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 bật hay chưa

Vì bạn không biết tại thời điểm yêu cầu 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, nên bạn phải kiểm tra xem quảng cáo đó đã bật chế độ kiểm soát tuỳ chỉnh hay chưa.

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 những phương pháp hay nhất sau đây:

  1. Hiển thị khung hiển thị chế độ kiểm soát tuỳ chỉnh dưới dạng phần tử con của khung hiển thị quảng cáo gốc. Phương pháp này cho phép tính năng đo lường mở về khả năng xem xét chế độ kiểm soát tuỳ chỉnh dưới dạng 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 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 chế độ kiểm soát.

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 khung 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 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 NativeAdRequest.Builder.enableCustomClickGestureDirection() bằng giá trị NativeAd.SwipeGestureDirection và giá trị boolean.

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

Kotlin

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

// You can use the following sample ad unit ID to test custom click gestures.
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();

// You can use the following sample ad unit ID to test custom click gestures.
NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "/21775744923/example/native",
  List.of(NativeAd.NativeAdType.NATIVE))
  .withNativeAdOptions(adOptions)
  .build();

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

Để theo dõi các sự kiện cử chỉ 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

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.