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 iOS Android (Cũ)

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 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 tài sản truyền thông và cách tải xuống cũng như hiển thị thành phần hình ảnh.

Các chế độ điều khiển 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 thông số này, quảng cáo được trả về có thể có tỷ lệ khung hình bất kỳ.

  • Khi đặt, 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(
  "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();

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

Chế độ kiểm soát 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ỉ trả về URI.

Gọi NativeAdRequest.Builder.disableImageDownloading().

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

  • Khi bạn tắt, GMA Next-Gen SDK sẽ điền sẵ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 hình ảnh thực tế xuống theo ý muốn.

Ví dụ sau đây hướng dẫn SDK chỉ trả về 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);

Các 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 ứ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, các chế độ kiểm soát tải trọng hình ảnh sẽ bị tắt.

  • Khi bạn tắt chế độ này, ứ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 chuỗi 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 Lựa chọn quảng cáo

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

Chế độ kiểm soát vị trí của biểu tượng Lựa chọn quảng cáo

Chế độ kiểm soát vị trí Lựa chọn quảng cáo 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, thì vị trí của biểu tượng Lựa chọn quảng cáo sẽ được đặt ở trên cùng bên phải.

  • Nếu bạn đặt, biểu tượng 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í hình ảnh Lựa chọn quảng cáo tuỳ chỉnh.

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

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

Tính năng chế độ xem tuỳ chỉnh 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. Điều này khác với các chế độ kiểm soát vị trí của AdChoices, 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 Lựa chọn quảng cáo tuỳ chỉnh, trong đó 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 các chế độ điều khiển phát tuỳ chỉnh.

Hành vi tắt tiếng khi bắt đầu

Hành vi bắt đầu 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() với giá trị boolean và gọi NativeAdOptions.Builder.setVideoOptions().

  • Hành vi bắt đầu tắt tiếng được bật theo mặc định.

  • Khi bạn tắt chế độ này, ứng dụng của bạn sẽ yêu cầu video bắt đầu bằng âm thanh.

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

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

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

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

Nhờ đó, bạn có thể 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.

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

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

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

Nếu quảng cáo có nội dung video và các 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 liên quan trên

VideoOptions.Builder.setCustomControlsRequested().

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

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

Kiểm tra xem bạn đã bật chế độ kiểm soát tuỳ chỉnh hay chưa

Vì tại thời điểm yêu cầu, bạn không biết liệu quảng cáo được trả về có cho phép các 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 đó 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ị các nút điều khiển video tuỳ chỉnh

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

  1. Hiển thị chế độ xem các chế độ điều khiển tuỳ chỉnh dưới dạng chế độ xem con của chế độ xem quảng cáo gốc. Phương pháp này cho phép các phép tính khả năng xem của tính năng đo lường mở coi các chế độ điều khiển 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ộ chế độ xem nội dung nghe nhìn. Lớp phủ chặn lượt nhấp vào chế độ xem nội dung nghe nhìn, ảnh hưởng tiêu cực đến hiệu suất 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 nút điều khiển.

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

Thao tác nhấp tuỳ chỉnh là một tính năng 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 thao tác nhấp tuỳ chỉnh trên quảng cáo gốc.

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

  • Theo mặc định, cử chỉ nhấp tuỳ chỉnh sẽ 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ác 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 adRequest =
  NativeAdRequest.Builder(AD_UNIT_ID, listOf(NativeAdType.NATIVE))
    .enableCustomClickGestureDirection(
      SwipeGestureDirection.RIGHT,
      /* customClickGestureAllowTaps= */ true,
    )
    .build()

Java

NativeAdRequest adRequest =
    new NativeAdRequest.Builder(AD_UNIT_ID, List.of(NativeAdType.NATIVE))
        .enableCustomClickGestureDirection(
            SwipeGestureDirection.RIGHT, /* customClickGestureAllowTaps= */ true)
        .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

Thao tác nhấp tuỳ chỉnh chỉ hoạt động trên những 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ị. Những 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 dẫn nhấp tuỳ chỉnh.