โฆษณาเนทีฟคือชิ้นงานโฆษณาที่แสดงต่อผู้ใช้ผ่านคอมโพเนนต์ UI ที่เป็นเนทีฟของแพลตฟอร์ม โฆษณาจะแสดงโดยใช้มุมมองประเภทเดียวกับที่คุณใช้สร้างเลย์เอาต์อยู่แล้ว และสามารถจัดรูปแบบให้ตรงกับการออกแบบภาพของแอปได้
เมื่อโฆษณาเนทีฟโหลด แอปจะได้รับออบเจ็กต์โฆษณาที่มีชิ้นงานของโฆษณา และแอป (ไม่ใช่ Google Mobile Ads SDK (Legacy)) จะเป็นผู้รับผิดชอบในการแสดงชิ้นงานเหล่านั้น
โดยทั่วไปแล้ว การติดตั้งใช้งานโฆษณาเนทีฟให้ประสบความสำเร็จมี 2 ส่วน ได้แก่ การโหลดโฆษณาโดยใช้ SDK และการแสดงเนื้อหาโฆษณาในแอป
หน้านี้แสดงวิธีใช้ SDK เพื่อโหลดโฆษณาเนทีฟ
ข้อกำหนดเบื้องต้น
ตั้งค่า Google Mobile Ads SDK (Legacy) ก่อนดำเนินการต่อ
ทดสอบด้วยโฆษณาทดสอบเสมอ
เมื่อสร้างและทดสอบแอป โปรดใช้โฆษณาทดสอบแทนโฆษณาจริงที่ใช้งานจริง
วิธีที่ง่ายที่สุดในการโหลดโฆษณาทดสอบคือการใช้รหัสหน่วยโฆษณาทดสอบเฉพาะสำหรับโฆษณาเนทีฟใน Android ดังนี้
/21775744923/example/native
ซึ่งได้รับการกำหนดค่าเป็นพิเศษให้แสดงโฆษณาทดสอบสำหรับทุกคำขอ และคุณสามารถใช้ในแอปของคุณเองขณะเขียนโค้ด ทดสอบ และแก้ไขข้อบกพร่องได้ อย่าลืมแทนที่ด้วยรหัสหน่วยโฆษณาของคุณเองก่อนเผยแพร่แอป
ดูรายละเอียดเกี่ยวกับโฆษณาทดสอบของ Google Mobile Ads SDK (Legacy) ได้ที่เปิดใช้โฆษณาทดสอบ
โหลดโฆษณา
โฆษณาเนทีฟจะโหลดด้วยคลาส AdLoader ซึ่งมีคลาส Builder ของตัวเองเพื่อปรับแต่งในระหว่างการสร้าง เมื่อสร้าง AdLoader แอปจะระบุประเภทของโฆษณาเนทีฟที่พร้อมรับโดยการเพิ่ม Listener ลงใน AdLoader จากนั้น AdLoader จะขอเฉพาะประเภทเหล่านั้น
สร้าง AdLoader
โค้ดต่อไปนี้แสดงวิธีสร้าง AdLoader ที่โหลดโฆษณาเนทีฟได้
Java
Kotlin
แทนที่ AD_UNIT_ID ด้วยรหัสอุปกรณ์ทดสอบ
เมธอด forNativeAd() มีหน้าที่เตรียม AdLoader สำหรับรูปแบบ NativeAd
เมื่อโหลดโฆษณาสำเร็จ ระบบจะเรียกใช้เมธอด onNativeAdLoaded() ของออบเจ็กต์ Listener
ตั้งค่า AdListener ด้วย AdLoader (ไม่บังคับ)
เมื่อสร้าง AdLoader ฟังก์ชัน withAdListener จะตั้งค่า AdListener สำหรับตัวโหลด เมธอดนี้ใช้ AdListener เป็นพารามิเตอร์เดียว ซึ่งจะรับ Callback จาก AdLoader เมื่อเกิดเหตุการณ์ในวงจรของโฆษณา
Java
adLoaderBuilder.withAdListener(
// Override AdListener callbacks here.
new AdListener() {});
Kotlin
adLoaderBuilder.withAdListener(
// Override AdListener callbacks here.
object : AdListener() {}
)
ส่งคำขอแสดงโฆษณา
เมื่อสร้าง AdLoader เสร็จแล้ว ก็ถึงเวลาใช้เพื่อขอโฆษณา
ซึ่งทำได้ 2 วิธี ได้แก่ loadAd() และ loadAds()
loadAd()
วิธีนี้จะส่งคำขอโฆษณาเดียว
Java
adLoader.loadAd(new AdManagerAdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdManagerAdRequest.Builder().build())
loadAds()
วิธีนี้จะส่งคำขอโฆษณาหลายรายการ (สูงสุด 5 รายการ) ดังนี้
Java
// Load three native ads.
adLoader.loadAds(new AdManagerAdRequest.Builder().build(), 3);
Kotlin
// Load three native ads.
adLoader.loadAds(AdManagerAdRequest.Builder().build(), 3)
ทั้ง 2 วิธีจะใช้ออบเจ็กต์ AdManagerAdRequest เป็นพารามิเตอร์แรก ซึ่งเป็นคลาส AdManagerAdRequest เดียวกันกับที่ใช้โดยแบนเนอร์และโฆษณาคั่นระหว่างหน้า และคุณสามารถใช้เมธอดของคลาส AdManagerAdRequest เพื่อเพิ่มข้อมูลการกำหนดเป้าหมายได้เช่นเดียวกับที่ทำกับรูปแบบโฆษณาอื่นๆ
โหลดโฆษณาหลายรายการ (ไม่บังคับ)
เมธอด loadAds() จะใช้พารามิเตอร์เพิ่มเติม ซึ่งก็คือจำนวนโฆษณาที่ SDK ควรพยายามโหลดสำหรับคำขอ จำนวนนี้จำกัดไว้ที่ 5 รายการ และไม่รับประกันว่า SDK จะแสดงโฆษณาตามจำนวนที่ขอ
โฆษณา Google ที่แสดงผลจะแตกต่างกันทั้งหมด แม้ว่าจะไม่มีการรับประกันว่าโฆษณาจากพื้นที่โฆษณาที่จองไว้หรือผู้ซื้อบุคคลที่สามจะไม่ซ้ำกัน
อย่าใช้เมธอด loadAds() หากคุณใช้สื่อกลาง เนื่องจากคำขอโฆษณาเนทีฟหลายรายการใช้ไม่ได้กับรหัสหน่วยโฆษณาที่กำหนดค่าไว้สำหรับสื่อกลาง
Callback
หลังจากเรียกใช้ loadAd() ระบบจะเรียกกลับไปยังเมธอด Listener ที่กำหนดไว้ก่อนหน้านี้เพียงครั้งเดียวเพื่อส่งออบเจ็กต์โฆษณาเนทีฟหรือรายงานข้อผิดพลาด
ทรัพยากรสำหรับการเปิดตัว
อย่าลืมใช้เมธอด destroy() กับโฆษณาเนทีฟที่โหลดแล้ว ซึ่งจะช่วยปล่อยทรัพยากรที่ใช้และป้องกันไม่ให้หน่วยความจำรั่วไหล
ยืนยันว่าการอ้างอิง NativeAd ทั้งหมดถูกทำลายในเมธอด onDestroy() ของกิจกรรม
ใน Callback onNativeAdLoaded ให้ตรวจสอบว่าได้ทำลายโฆษณาเนทีฟที่มีอยู่ซึ่งจะถูกยกเลิกการอ้างอิง
การตรวจสอบที่สำคัญอีกอย่างหนึ่งคือการตรวจสอบว่ากิจกรรมถูกทำลายหรือไม่ และหากถูกทำลาย ให้เรียกใช้ destroy() ในโฆษณาที่แสดงผลและแสดงผลทันที
Java
nativeAd.destroy();
Kotlin
nativeAd.destroy()
แนวทางปฏิบัติแนะนำ
โปรดปฏิบัติตามกฎต่อไปนี้เมื่อโหลดโฆษณา
แอปที่ใช้โฆษณาเนทีฟในรายการควรแคชรายการโฆษณาล่วงหน้า
เมื่อแคชโฆษณาล่วงหน้า ให้ล้างแคชและโหลดซ้ำหลังจากผ่านไป 1 ชั่วโมง
- อย่าเรียกใช้
loadAd()ในAdLoaderจนกว่าคำขอแรกจะโหลดเสร็จ
จำกัดการแคชโฆษณาเนทีฟไว้เฉพาะที่จำเป็นเท่านั้น เช่น เมื่อทำการแคชล่วงหน้า ให้แคชเฉพาะโฆษณาที่มองเห็นได้ทันทีบนหน้าจอ โฆษณาเนทีฟใช้หน่วยความจำที่ใช้มาก และการแคชโฆษณาเนทีฟโดยไม่ทำลายจะส่งผลให้มีการใช้หน่วยความจำมากเกินไป
ทำลายโฆษณาเนทีฟเมื่อไม่ได้ใช้งานแล้ว
การเร่งฮาร์ดแวร์สำหรับโฆษณาวิดีโอ
คุณต้องเปิดใช้การเร่งฮาร์ดแวร์เพื่อให้โฆษณาวิดีโอแสดงในมุมมองโฆษณาเนทีฟได้สำเร็จ
การเร่งฮาร์ดแวร์จะเปิดใช้โดยค่าเริ่มต้น แต่บางแอปอาจเลือกปิดใช้ หากแอปของคุณเป็นเช่นนี้ เราขอแนะนำให้เปิดใช้การเร่งฮาร์ดแวร์สำหรับคลาส Activity ที่ใช้โฆษณา
การเปิดใช้การเร่งฮาร์ดแวร์
หากแอปทำงานไม่ถูกต้องเมื่อเปิดการเร่งฮาร์ดแวร์ทั่วโลก คุณสามารถควบคุมการเร่งฮาร์ดแวร์สำหรับกิจกรรมแต่ละรายการได้ด้วย หากต้องการเปิดหรือปิดใช้การเร่งฮาร์ดแวร์ ให้ใช้แอตทริบิวต์ android:hardwareAccelerated สำหรับองค์ประกอบ <application> และ <activity> ใน AndroidManifest.xml ตัวอย่างต่อไปนี้เปิดใช้การเร่งฮาร์ดแวร์สำหรับทั้งแอป แต่ปิดใช้สำหรับกิจกรรมเดียว
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกในการควบคุมการเร่งฮาร์ดแวร์ได้ที่คู่มือการเร่งฮาร์ดแวร์ โปรดทราบว่าคุณไม่สามารถเปิดใช้การเร่งฮาร์ดแวร์สำหรับโฆษณาเดี่ยวได้หากกิจกรรมถูกปิดใช้ ดังนั้นกิจกรรมนั้นๆ จะต้องเปิดใช้การเร่งฮาร์ดแวร์
แสดงโฆษณา
เมื่อโหลดโฆษณาแล้ว สิ่งที่เหลืออยู่คือการแสดงโฆษณาต่อผู้ใช้ ดูข้อมูลเพิ่มเติมได้ที่เนทีฟขั้นสูงหรือโฆษณาเนทีฟแบบเต็มหน้าจอ