ตั้งค่าฟีเจอร์เนทีฟขั้นสูง

เลือกแพลตฟอร์ม: Android (เบต้า) เลือกใหม่ Android iOS

โฆษณาเนทีฟมีฟีเจอร์ขั้นสูงมากมายที่ช่วยให้คุณปรับแต่งเพิ่มเติมและสร้างประสบการณ์การใช้งานโฆษณาที่ดีที่สุด คู่มือนี้แสดงวิธีใช้ฟีเจอร์ขั้นสูงของโฆษณาเนทีฟ

ข้อกำหนดเบื้องต้น

การควบคุมชิ้นงาน

ส่วนนี้จะอธิบายรายละเอียดเกี่ยวกับวิธีปรับแต่งชิ้นงานครีเอทีฟโฆษณาในโฆษณาเนทีฟ คุณมีตัวเลือกในการระบุสัดส่วนภาพที่ต้องการสำหรับชิ้นงานสื่อ และวิธีดาวน์โหลดและแสดงชิ้นงานรูปภาพ

ตัวควบคุมสัดส่วนภาพที่ต้องการของสื่อ

ตัวควบคุมสัดส่วนภาพของสื่อช่วยให้คุณระบุสัดส่วนภาพที่ต้องการสำหรับครีเอทีฟโฆษณาได้

เรียกใช้ NativeAdRequest.Builder.setMediaAspectRatio() ด้วยค่า NativeAd.NativeMediaAspectRatio

  • เมื่อไม่ได้ตั้งค่า โฆษณาที่แสดงผลอาจมีสัดส่วนภาพของสื่อใดก็ได้

  • เมื่อตั้งค่า คุณจะปรับปรุงประสบการณ์ของผู้ใช้ได้โดยการระบุประเภทสัดส่วนภาพที่ต้องการ

ตัวอย่างต่อไปนี้จะสั่งให้ SDK แสดงผลรูปภาพหรือวิดีโอที่มีสัดส่วนภาพที่เฉพาะเจาะจง

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

การควบคุมการดาวน์โหลดรูปภาพ

การควบคุมการดาวน์โหลดรูปภาพช่วยให้คุณตัดสินใจได้ว่า SDK จะแสดงผลชิ้นงานรูปภาพหรือเฉพาะ URI

เรียกใช้ NativeAdRequest.Builder.disableImageDownloading()

  • การควบคุมการดาวน์โหลดรูปภาพจะปิดอยู่โดยค่าเริ่มต้น

  • เมื่อปิดใช้ GMA Next-Gen SDK จะป้อนข้อมูลทั้งรูปภาพและ URI ให้คุณ

  • เมื่อเปิดใช้ SDK จะป้อนข้อมูลเฉพาะ URI แทน ซึ่งช่วยให้คุณดาวน์โหลดรูปภาพจริงได้ตามต้องการ

ตัวอย่างต่อไปนี้จะสั่งให้ SDK แสดงผลเฉพาะ 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);

การควบคุมเพย์โหลดรูปภาพ

โฆษณาบางรายการมีรูปภาพหลายรูปแทนที่จะมีเพียงรูปเดียว ใช้ฟีเจอร์นี้เพื่อระบุว่าแอปของคุณพร้อมที่จะแสดงรูปภาพทั้งหมดหรือเพียงรูปเดียว

  • การควบคุมเพย์โหลดรูปภาพจะปิดอยู่โดยค่าเริ่มต้น

  • เมื่อปิดใช้ แอปจะสั่งให้ SDK แสดงผลเฉพาะรูปภาพแรกสำหรับชิ้นงานที่มีรูปภาพหลายรูป

  • เมื่อเปิดใช้ แอปจะระบุว่าพร้อมที่จะแสดงรูปภาพทั้งหมดสำหรับชิ้นงานที่มีรูปภาพมากกว่า 1 รูป

ตัวอย่างต่อไปนี้จะสั่งให้ SDK แสดงผลชิ้นงานรูปภาพหลายรายการ

ตำแหน่งโฆษณา AdChoices

ส่วนนี้จะอธิบายรายละเอียดเกี่ยวกับวิธีวางตำแหน่งการวางซ้อน AdChoices คุณมีตัวเลือกในการตั้งค่าตำแหน่งให้วางไว้ที่มุมใดมุมหนึ่งใน 4 มุม หรือแสดงผลภายในมุมมองที่กำหนดเอง

ตัวควบคุมตำแหน่ง AdChoices

ตัวควบคุมตำแหน่ง AdChoices ช่วยให้คุณเลือกมุมที่จะแสดงผลไอคอน AdChoices ได้

เรียกใช้ NativeAdRequest.Builder.setAdChoicesPlacement() ด้วยค่า NativeAdRequest.AdChoicesPlacement

  • หากไม่ได้ตั้งค่า ระบบจะตั้งค่าตำแหน่งไอคอน AdChoices เป็นด้านขวาบน

  • หากตั้งค่า ระบบจะวาง AdChoices ไว้ในตำแหน่งที่กำหนดเองตามที่ขอ

ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่าตำแหน่งรูปภาพ AdChoices ที่กำหนดเอง

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

มุมมองที่กำหนดเองของ AdChoices

ฟีเจอร์มุมมองที่กำหนดเองของ AdChoices ช่วยให้คุณวางตำแหน่งไอคอน AdChoices ในตำแหน่งที่กำหนดเองได้ ซึ่งแตกต่างจากตัวควบคุมตำแหน่ง AdChoices ที่อนุญาตให้ระบุได้เพียงมุมใดมุมหนึ่งใน 4 มุมเท่านั้น

เรียกใช้ NativeAdView.setAdChoicesView() ด้วยค่า AdChoicesView

ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่ามุมมอง AdChoices ที่กำหนดเอง โดยแสดงผลไอคอน AdChoices ภายใน 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);
}

การควบคุมวิดีโอ

ส่วนนี้จะอธิบายรายละเอียดเกี่ยวกับวิธีปรับแต่งประสบการณ์การเล่นโฆษณาวิดีโอ คุณมีตัวเลือกในการตั้งค่าสถานะปิดเสียงเริ่มต้นและใช้ตัวควบคุมการเล่นที่กำหนดเอง

ลักษณะการทำงานของการปิดเสียงเริ่มต้น

ลักษณะการทำงานของการปิดเสียงเริ่มต้นช่วยให้คุณปิดหรือเปิดเสียงเริ่มต้นของวิดีโอได้

เรียกใช้ VideoOptions.Builder.setStartMuted() ด้วยค่า boolean และเรียกใช้ NativeAdOptions.Builder.setVideoOptions()

  • ลักษณะการทำงานของการปิดเสียงเริ่มต้นจะเปิดใช้อยู่โดยค่าเริ่มต้น

  • เมื่อปิดใช้ แอปจะขอให้วิดีโอเริ่มเล่นพร้อมเสียง

  • เมื่อเปิดใช้ แอปจะขอให้วิดีโอเริ่มเล่นโดยปิดเสียง

ตัวอย่างต่อไปนี้แสดงวิธีเริ่มวิดีโอโดยเปิดเสียง

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

ตัวควบคุมการเล่นที่กำหนดเอง

ฟีเจอร์นี้ช่วยให้คุณขอตัวควบคุมอินพุตวิดีโอที่กำหนดเองเพื่อเล่น หยุดชั่วคราว หรือปิดเสียงวิดีโอได้

หากต้องการตั้งค่าสถานะปิดเสียงเริ่มต้นของโฆษณา ให้เรียกใช้ VideoOptions.Builder.setCustomControlsRequested()

  • ตัวควบคุมการเล่นที่กำหนดเองจะปิดอยู่โดยค่าเริ่มต้น

  • เมื่อปิดใช้ วิดีโอจะแสดงตัวควบคุมอินพุตที่แสดงผลโดย SDK

หากโฆษณามีเนื้อหาวิดีโอและเปิดใช้ตัวควบคุมที่กำหนดเอง คุณควรแสดงตัวควบคุมที่กำหนดเองพร้อมกับโฆษณา เนื่องจากโฆษณาจะไม่แสดงตัวควบคุมใดๆ ด้วยตัวเอง จากนั้นตัวควบคุมจะเรียกใช้เมธอดที่เกี่ยวข้องใน

VideoOptions.Builder.setCustomControlsRequested()

ตัวอย่างต่อไปนี้แสดงวิธีขอวิดีโอที่มีตัวควบคุมการเล่นที่กำหนดเอง

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

ตรวจสอบว่าเปิดใช้ตัวควบคุมที่กำหนดเองอยู่หรือไม่

เนื่องจากระบบไม่ทราบในเวลาที่ส่งคำขอว่าโฆษณาที่แสดงผลจะอนุญาตตัวควบคุมวิดีโอที่กำหนดเองหรือไม่ คุณจึงต้องตรวจสอบว่าได้เปิดใช้ตัวควบคุมที่กำหนดเองไว้หรือไม่

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

แสดงผลตัวควบคุมวิดีโอที่กำหนดเอง

แสดงผลตัวควบคุมวิดีโอที่กำหนดเองโดยใช้แนวทางปฏิบัติแนะนำต่อไปนี้

  1. แสดงผลมุมมองตัวควบคุมที่กำหนดเองเป็นองค์ประกอบย่อยของมุมมองโฆษณาเนทีฟ วิธีนี้ช่วยให้การคำนวณการมองเห็นโฆษณาด้วย Open Measurement พิจารณาตัวควบคุมที่กำหนดเองเป็นการกีดขวางที่เป็นมิตร
  2. หลีกเลี่ยงการแสดงผลการวางซ้อนที่มองไม่เห็นเหนือการดูสื่อทั้งหมด การวางซ้อนจะบล็อกการคลิกในมุมมองสื่อ ซึ่งส่งผลเสียต่อประสิทธิภาพของโฆษณาเนทีฟ ให้สร้างการวางซ้อนขนาดเล็กที่มีขนาดใหญ่พอดีกับตัวควบคุมแทน

ท่าทางสัมผัสการคลิกที่กำหนดเอง

ท่าทางสัมผัสการคลิกที่กำหนดเองเป็นฟีเจอร์โฆษณาเนทีฟที่ช่วยให้ระบบลงทะเบียนการปัดในมุมมองโฆษณาเป็นการคลิกโฆษณาได้ ฟีเจอร์นี้ออกแบบมาให้ทำงานร่วมกับแอปที่ใช้ท่าทางสัมผัสการปัดเพื่อการนำทางเนื้อหา คู่มือนี้แสดงวิธีเปิดใช้ท่าทางสัมผัสการคลิกที่กำหนดเองในโฆษณาเนทีฟ

เรียกใช้ NativeAdRequest.Builder.enableCustomClickGestureDirection() ด้วยค่า NativeAd.SwipeGestureDirection และค่า boolean

ตัวอย่างต่อไปนี้จะใช้ท่าทางสัมผัสการปัดที่กำหนดเองไปทางขวาและรักษารูปแบบการทำงานของแท็บปกติไว้

  • ท่าทางสัมผัสการคลิกที่กำหนดเองจะปิดอยู่โดยค่าเริ่มต้น

  • เมื่อปิดใช้ แอปจะรองรับลักษณะการทำงานของการคลิกปกติ

  • เมื่อเปิดใช้ แอปจะรองรับท่าทางสัมผัสการปัดที่กำหนดเอง

ตัวอย่างต่อไปนี้จะใช้ท่าทางสัมผัสการปัดที่กำหนดเองไปทางขวาและรักษารูปแบบการทำงานของแท็บปกติไว้

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

รอเหตุการณ์ท่าทางสัมผัสการปัด

หากต้องการรอเหตุการณ์ท่าทางสัมผัสการปัด ให้เรียกใช้ NativeAd.setAdEventCallback() ด้วย NativeAdEventCallback และ ใช้เมธอด 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);

สื่อกลาง

ท่าทางสัมผัสการคลิกที่กำหนดเองจะทำงานได้เฉพาะกับโฆษณาเนทีฟที่แสดงผลโดย Google Mobile Ads SDK แหล่งที่มาของโฆษณาที่ ต้องใช้ SDK ของบุคคลที่สามในการ แสดงผลจะไม่ตอบสนองต่อการตั้งค่าทิศทางการคลิกที่กำหนดเอง