โฆษณาเนทีฟมีฟีเจอร์ขั้นสูงมากมายที่ช่วยให้คุณปรับแต่งเพิ่มเติมและสร้างประสบการณ์การใช้งานโฆษณาที่ดีที่สุดได้ คู่มือนี้แสดงวิธีใช้ฟีเจอร์ขั้นสูงของโฆษณาเนทีฟ
ข้อกำหนดเบื้องต้น
- ผสานรวมรูปแบบโฆษณาเนทีฟ
การควบคุมเนื้อหา
การควบคุมสัดส่วนภาพของสื่อที่ต้องการ
การควบคุมสัดส่วนภาพของสื่อช่วยให้คุณระบุค่ากําหนดสําหรับสัดส่วนภาพของครีเอทีฟโฆษณาได้
เรียก NativeAdOptions.Builder.setMediaAspectRatio()
ด้วยค่า NativeAdOptions.MediaAspectRatio
หากไม่ได้ตั้งค่าไว้ โฆษณาที่แสดงผลอาจมีสัดส่วนภาพของสื่อใดก็ได้
เมื่อตั้งค่าแล้ว คุณจะปรับปรุงประสบการณ์ของผู้ใช้ได้โดยระบุประเภทสัดส่วนภาพที่ต้องการ
ตัวอย่างต่อไปนี้จะสั่งให้ SDK แสดงผลรูปภาพหรือวิดีโอที่มีสัดส่วนภาพตามที่ต้องการ
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.build();
การควบคุมการดาวน์โหลดรูปภาพ
การควบคุมการดาวน์โหลดรูปภาพช่วยให้คุณตัดสินใจได้ว่าจะให้ SDK แสดงชิ้นงานรูปภาพหรือ URI เท่านั้น
เรียกใช้NativeAdOptions.Builder.setReturnUrlsForImageAssets()
ที่มีค่า boolean
การควบคุมการดาวน์โหลดรูปภาพจะปิดอยู่โดยค่าเริ่มต้น
เมื่อปิดใช้ Google Mobile Ads SDK จะป้อนข้อมูลทั้งรูปภาพและ URI ให้คุณ
เมื่อเปิดใช้ SDK จะป้อนข้อมูล URI เท่านั้น ซึ่งจะช่วยให้คุณดาวน์โหลดรูปภาพจริงได้ตามต้องการ
ตัวอย่างต่อไปนี้จะสั่งให้ SDK แสดงเฉพาะ URI
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setReturnUrlsForImageAssets(true)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.forNativeAd(nativeAd -> {
List<Uri> imageUris = new ArrayList<>();
for (Image image : nativeAd.getImages()) {
imageUris.add(image.getUri());
}
})
.build();
การควบคุมเพย์โหลดรูปภาพ
โฆษณาบางรายการมีชุดรูปภาพแทนที่จะเป็นแค่รูปภาพเดียว ใช้ฟีเจอร์นี้เพื่อระบุว่าแอปของคุณพร้อมแสดงรูปภาพทั้งหมดหรือเพียงรูปเดียว
เรียกใช้NativeAdOptions.Builder.setRequestMultipleImages()
ที่มีค่า boolean
การควบคุมเพย์โหลดรูปภาพจะปิดอยู่โดยค่าเริ่มต้น
เมื่อปิดใช้ แอปจะสั่งให้ SDK แสดงเฉพาะรูปภาพแรกสำหรับชิ้นงานที่มีชุด
เมื่อเปิดใช้ แอปจะระบุว่าพร้อมแสดงรูปภาพทั้งหมดสำหรับชิ้นงานที่มีมากกว่า 1 รายการ
ตัวอย่างต่อไปนี้จะสั่งให้ SDK แสดงผลชิ้นงานรูปภาพหลายรายการ
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setRequestMultipleImages(true)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.build();
ตําแหน่ง AdChoices
การควบคุมตําแหน่งตัวเลือกโฆษณาอื่นๆ
ตัวควบคุมตําแหน่งตัวเลือกโฆษณาอื่นๆ ช่วยให้คุณเลือกมุมที่จะแสดงผลไอคอนตัวเลือกโฆษณาอื่นๆ ได้
เรียก NativeAdOptions.Builder.setAdChoicesPlacement()
ด้วยค่า NativeAdOption.AdChoicesPlacement
หากไม่ได้ตั้งค่า ระบบจะตั้งค่าตำแหน่งไอคอนตัวเลือกโฆษณาอื่นๆ ไว้ที่ด้านขวาบน
หากตั้งค่าไว้ ระบบจะวาง AdChoices ในตำแหน่งที่กำหนดเองตามคำขอ
ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่าตําแหน่งรูปภาพ AdChoices ที่กําหนดเอง
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.build();
มุมมองที่กำหนดเองของ AdChoices
ฟีเจอร์มุมมองที่กำหนดเองของตัวเลือกโฆษณาอื่นๆ ช่วยให้คุณวางไอคอนตัวเลือกโฆษณาอื่นๆ ในตำแหน่งที่กำหนดเองได้ ซึ่งแตกต่างจากการควบคุมตําแหน่ง AdChoices ที่อนุญาตให้ระบุได้เฉพาะที่มุมใดมุมหนึ่งจาก 4 มุมเท่านั้น
เรียกNativeAdView.setAdChoicesView()
ด้วยค่า AdChoicesView
ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่ามุมมองตัวเลือกโฆษณาอื่นๆ ที่กําหนดเอง โดยมีการแสดงผลไอคอนตัวเลือกโฆษณาอื่นๆ ภายใน AdChoicesView
public void onNativeAdLoaded(NativeAd ad) {
NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
AdChoicesView adChoicesView = new AdChoicesView(this);
nativeAdView.setAdChoicesView(adChoicesView);
}
การควบคุมวิดีโอ
ลักษณะการเริ่มปิดเสียง
ลักษณะการเริ่มเล่นแบบปิดเสียงช่วยให้คุณปิดหรือเปิดใช้เสียงเริ่มต้นของวิดีโอได้
เรียกใช้VideoOptions.Builder.setStartMuted()
ที่มีค่า boolean
ระบบจะเปิดใช้ลักษณะการทำงานเริ่มต้นที่ปิดเสียงไว้โดยค่าเริ่มต้น
เมื่อปิดใช้ แอปจะขอให้วิดีโอเริ่มต้นด้วยเสียง
เมื่อเปิดใช้ แอปจะขอให้วิดีโอเริ่มต้นด้วยการปิดเสียง
ตัวอย่างต่อไปนี้แสดงวิธีเริ่มวิดีโอโดยที่เสียงไม่ได้ปิดอยู่
VideoOptions videoOptions = new VideoOptions.Builder()
.setStartMuted(false)
.build();
NativeAdOptions adOptions = new NativeAdOptions.Builder()
.setVideoOptions(videoOptions)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(adOptions).build();
ตัวควบคุมการเล่นที่กำหนดเอง
ซึ่งจะช่วยให้คุณขอการควบคุมอินพุตวิดีโอที่กำหนดเองเพื่อเล่น หยุดชั่วคราว หรือปิดเสียงวิดีโอได้
เรียกใช้VideoOptions.Builder.setCustomControlsRequested()
ที่มีค่า boolean
ตัวควบคุมการเล่นที่กำหนดเองจะปิดอยู่โดยค่าเริ่มต้น
เมื่อปิดใช้ วิดีโอจะแสดงตัวควบคุมอินพุตที่ผ่านการจัดการแสดงผลของ SDK
- หากโฆษณามีเนื้อหาวิดีโอและเปิดใช้การควบคุมที่กำหนดเอง คุณควรแสดงการควบคุมที่กำหนดเองพร้อมกับโฆษณา เนื่องจากโฆษณาจะไม่แสดงการควบคุมใดๆ เอง จากนั้นตัวควบคุมจะเรียกใช้เมธอดที่เกี่ยวข้องใน
VideoController
ตัวอย่างต่อไปนี้แสดงวิธีขอวิดีโอที่มีการควบคุมการเล่นที่กำหนดเอง
VideoOptions videoOptions = new VideoOptions.Builder()
.setCustomControlsRequested(true)
.build();
NativeAdOptions adOptions = new NativeAdOptions.Builder()
.setVideoOptions(videoOptions)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(adOptions).build();
ตรวจสอบว่าได้เปิดใช้การควบคุมที่กำหนดเองหรือไม่
เนื่องจากไม่ทราบ ณ เวลาส่งคำขอว่าโฆษณาที่แสดงผลจะอนุญาตตัวควบคุมวิดีโอที่กำหนดเองหรือไม่ คุณจึงต้องตรวจสอบว่าโฆษณาเปิดใช้ตัวควบคุมที่กำหนดเองหรือไม่
Java
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
VideoController videoController = mediaContent.getVideoController();
boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}
}
Kotlin
NativeAd.OnNativeAdLoadedListener { ad ->
val mediaContent = ad.mediaContent
if (mediaContent != null) {
val videoController = mediaContent.videoController
val canShowCustomControls = videoController.isCustomControlsEnabled
}
}
แสดงผลตัวควบคุมวิดีโอที่กําหนดเอง
แสดงผลตัวควบคุมวิดีโอที่กำหนดเองโดยใช้แนวทางปฏิบัติแนะนำต่อไปนี้
- แสดงผลมุมมองการควบคุมที่กำหนดเองเป็นมุมมองย่อยของมุมมองโฆษณาเนทีฟ วิธีนี้ช่วยให้การคำนวณความสามารถในการแสดงโฆษณาของ Open Measurement พิจารณาการควบคุมที่กําหนดเองเป็นสิ่งกีดขวางที่ยอมรับได้
- หลีกเลี่ยงการแสดงผลการวางซ้อนที่มองไม่เห็นเหนือมุมมองสื่อทั้งหมด การวางซ้อนบล็อกการคลิกในมุมมองสื่อ ซึ่งส่งผลเสียต่อประสิทธิภาพโฆษณาเนทีฟ แต่ให้สร้างการวางซ้อนขนาดเล็กที่ใหญ่พอที่จะใส่ตัวควบคุมได้
ท่าทางสัมผัสการคลิกที่กำหนดเอง
ท่าทางสัมผัสการคลิกที่กำหนดเองคือฟีเจอร์โฆษณาเนทีฟที่ช่วยให้ระบบบันทึกการปัดในการดูโฆษณาเป็นการคลิกโฆษณา โดยออกแบบมาให้ทำงานร่วมกับแอปที่ใช้ท่าทางสัมผัสในการไปยังส่วนต่างๆ ของเนื้อหา คู่มือนี้แสดงวิธีเปิดใช้ท่าทางสัมผัสการคลิกที่กําหนดเองในโฆษณาเนทีฟ
เรียกใช้ NativeAdOptions.Builder.enableCustomClickGestureDirection()
ที่มี NativeAdOptions.SwipeGestureDirection
และ boolean
เพื่อระบุว่าคุณต้องการอนุญาตให้ใช้การแตะเป็นการคลิกหรือไม่
ระบบจะปิดใช้ท่าทางสัมผัสการคลิกที่กำหนดเองไว้โดยค่าเริ่มต้น
เมื่อปิดใช้ แอปจะรองรับลักษณะการคลิกปกติ
เมื่อเปิดใช้ แอปจะรองรับท่าปัดที่กำหนดเอง
ตัวอย่างต่อไปนี้ใช้ท่าทางสัมผัสการปัดที่กำหนดเองไปทางขวาและรักษาลักษณะการทํางานของแท็บตามปกติ
NativeAdOptions adOptions = new NativeAdOptions
.Builder()
.enableCustomClickGestureDirection(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.
AdLoader.Builder builder = new AdLoader
.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(adOptions);
รอรับเหตุการณ์ท่าทางสัมผัสด้วยการปัด
เมื่อบันทึกการคลิกด้วยท่าทางปัด Google Mobile Ads SDK จะเรียกใช้เมธอด onAdSwipeGestureClicked()
ใน AdListener
นอกเหนือจากเมธอด onAdClicked()
ที่มีอยู่
AdLoader adLoader = builder
.withAdListener(
new AdListener() {
// Called when a swipe gesture click is recorded.
@Override
public void onAdSwipeGestureClicked() {
Log.d(TAG, "A swipe gesture click has occurred.")
}
// Called when a swipe gesture click or a tap click is recorded, as
// configured in NativeAdOptions.
@Override
public void onAdClicked() {
Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
}
})
.build();
สื่อกลาง
ท่าทางสัมผัสการคลิกที่กำหนดเองจะใช้ได้กับโฆษณาเนทีฟที่ SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google แสดงผลเท่านั้น แหล่งที่มาของโฆษณาที่ต้องใช้ SDK ของบุคคลที่สามสําหรับการแสดงผลจะไม่ตอบสนองต่อการตั้งค่าทิศทางการคลิกที่กําหนดเอง