โฆษณาเนทีฟคือเนื้อหาโฆษณาที่แสดงแก่ผู้ใช้ผ่านคอมโพเนนต์ UI ซึ่ง อยู่ในแพลตฟอร์มนี้ โฆษณาเหล่านี้แสดงโดยใช้มุมมองประเภทเดียวกันกับ ซึ่งคุณสร้างเค้าโครงไว้แล้ว และสามารถจัดรูปแบบให้ตรงกับ ในการออกแบบรูปลักษณ์ของแอป
เมื่อโฆษณาเนทีฟโหลด แอปจะได้รับออบเจ็กต์โฆษณาที่มีชิ้นงานอยู่ และแอปแทน SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google ทำหน้าที่แสดงแทน
พูดกว้างๆ ก็คือการใช้โฆษณาเนทีฟให้ประสบความสำเร็จแบ่งออกเป็น 2 ส่วน ดังนี้ โหลดโฆษณาโดยใช้ SDK แล้วแสดงเนื้อหาโฆษณาในแอป
หน้านี้แสดงวิธีใช้ SDK เพื่อโหลด โฆษณาเนทีฟ เคล็ดลับ: ดูข้อมูลเพิ่มเติมเกี่ยวกับโฆษณาเนทีฟในโฆษณาเนทีฟ Playbook
นอกจากนี้ คุณยังสามารถดูเรื่องราวความสำเร็จของลูกค้าได้ดังนี้ กรณีศึกษา 1, กรณีศึกษา 2
ข้อกำหนดเบื้องต้น
- ทำตามคู่มือเริ่มต้นใช้งานให้เสร็จสมบูรณ์
ทดสอบด้วยโฆษณาทดสอบเสมอ
เมื่อสร้างและทดสอบแอป โปรดตรวจสอบว่าคุณใช้โฆษณาทดสอบแทน โฆษณาเวอร์ชันที่ใช้งานจริง
วิธีที่ง่ายที่สุดในการโหลดโฆษณาทดสอบคือการใช้รหัสหน่วยโฆษณาทดสอบโดยเฉพาะของเรา สำหรับโฆษณาเนทีฟบน Android
ca-app-pub-3940256099942544/2247696110
โดยได้รับการกำหนดค่าเป็นพิเศษให้ส่งคืนโฆษณาทดสอบให้กับทุกคำขอ และคุณสามารถ ใช้ในแอปของคุณเองขณะเขียนโค้ด ทดสอบ และแก้ไขข้อบกพร่อง เพียงตรวจสอบให้แน่ใจว่าคุณ แทนที่ด้วยรหัสหน่วยโฆษณาของคุณเองก่อนที่จะเผยแพร่แอป
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของโฆษณาทดสอบของ Google Mobile Ads SDK โปรดดู ทดสอบโฆษณา
โหลดโฆษณา
โฆษณาเนทีฟจะโหลดด้วย
AdLoader
ชั้นเรียน
ซึ่งมี
Builder
เพื่อปรับแต่งในระหว่างการสร้างได้ เพิ่ม Listener ใน AdLoader
เมื่อคุณสร้างโฆษณา แอปจะระบุประเภทของโฆษณาเนทีฟที่แอปพร้อม
ได้รับ จากนั้น AdLoader
จะขอเฉพาะประเภทเหล่านั้น
สร้าง AdLoader
โค้ดต่อไปนี้แสดงวิธีสร้าง AdLoader
ที่โหลดโฆษณาเนทีฟได้
โฆษณา:
Java
AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// Show the ad.
}
})
.withAdListener(new AdListener() {
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Handle the failure by logging, altering the UI, and so on.
}
})
.withNativeAdOptions(new NativeAdOptions.Builder()
// Methods in the NativeAdOptions.Builder class can be
// used here to specify individual options settings.
.build())
.build();
Kotlin
val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110}")
.forNativeAd { ad : NativeAd ->
// Show the ad.
}
.withAdListener(object : AdListener() {
override fun onAdFailedToLoad(adError: LoadAdError) {
// Handle the failure.
}
})
.withNativeAdOptions(NativeAdOptions.Builder()
// Methods in the NativeAdOptions.Builder class can be
// used here to specify individual options settings.
.build())
.build()
forNativeAd()
มีหน้าที่เตรียม AdLoader
สำหรับรูปแบบ NativeAd
เมื่อโฆษณาโหลดสำเร็จ onNativeAdLoaded()
ของออบเจ็กต์ Listener
เมธอด
ตั้งค่า AdListener ด้วย AdLoader (ไม่บังคับ)
เมื่อสร้าง AdLoader
พารามิเตอร์
withAdListener
ตั้งค่าฟังก์ชัน
AdListener
สำหรับ
ตัวโหลด เมธอดนี้รับ AdListener
เป็นพารามิเตอร์โดดเดี่ยว ซึ่งจะได้รับ
Callback จาก AdLoader
เมื่อเหตุการณ์ในวงจรโฆษณาเกิดขึ้น
Java
.withAdListener(new AdListener() {
// AdListener callbacks can be overridden here.
})
Kotlin
.withAdListener(object : AdListener() {
// AdListener callbacks can be overridden here.
})
ส่งคำขอแสดงโฆษณา
เมื่อคุณสร้าง AdLoader
เสร็จแล้ว ก็ถึงเวลาใช้แอปพลิเคชันนี้เพื่อขอโฆษณา
ซึ่งทำได้ 2 วิธี ได้แก่ loadAd()
และ loadAds()
loadAd()
วิธีการนี้จะส่งคำขอสำหรับโฆษณาเดียว
Java
adLoader.loadAd(new AdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdRequest.Builder().build())
loadAds()
วิธีนี้จะส่งคำขอสำหรับโฆษณาหลายรายการ (ไม่เกินห้ารายการ):
Java
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
adLoader.loadAds(AdRequest.Builder().build(), 3)
ทั้ง 2 วิธีจะ
AdRequest
เป็นพารามิเตอร์แรก นี่เหมือนเดิม
มี AdRequest
คลาสที่แบนเนอร์และโฆษณาคั่นระหว่างหน้าใช้
และคุณสามารถใช้วิธีการของคลาส AdRequest
เพื่อ
เพิ่มข้อมูลการกําหนดเป้าหมาย
กับรูปแบบโฆษณาอื่นๆ
โหลดโฆษณาหลายรายการ (ตัวเลือก)
เมธอด loadAds()
ต้องใช้พารามิเตอร์เพิ่มเติม นั่นคือจํานวนโฆษณาที่ SDK ดังกล่าว
ควรพยายามโหลดคำขอ จำนวนนี้จำกัดไว้ที่ 5
ไม่ได้รับประกันว่า SDK จะส่งคืนโฆษณาตามจำนวนที่ขออย่างถูกต้อง
โฆษณา Google ที่แสดงผลจะแตกต่างกันไป แม้ว่าโฆษณาจาก พื้นที่โฆษณาที่จองไว้หรือผู้ซื้อบุคคลที่สามจะไม่รับประกันว่าข้อเสนอจะซ้ำกัน
อย่าใช้เมธอด loadAds()
หากคุณใช้สื่อกลางเป็นคำขอ
ในปัจจุบัน โฆษณาเนทีฟหลายรายการไม่ทำงานสำหรับรหัสหน่วยโฆษณาที่
สำหรับสื่อกลางแล้ว
Callback
หลังจากโทรหา loadAd()
แล้ว ระบบจะเรียกกลับไปยังหมายเลขที่กำหนดไว้ก่อนหน้า
วิธี Listener เพื่อส่งออบเจ็กต์โฆษณาเนทีฟหรือรายงานข้อผิดพลาด
หลังจากโทรหา loadAds()
จะมีการเรียกกลับดังกล่าวหลายครั้ง (อย่างน้อย 1 ครั้ง
และไม่เกินจำนวนโฆษณาที่ขอ) แอปที่ขอโฆษณาหลายรายการ
ควรเรียก AdLoader.isLoading()
ในการใช้งาน Callback เพื่อ
ให้พิจารณาว่าขั้นตอนการโหลดเสร็จสิ้นแล้วหรือไม่
นี่คือตัวอย่างที่แสดงวิธีตรวจสอบ isLoading()
ใน
onNativeAdLoaded()
ติดต่อกลับ:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
...
// some code that displays the ad.
...
if (adLoader.isLoading()) {
// The AdLoader is still loading ads.
// Expect more adLoaded or onAdFailedToLoad callbacks.
} else {
// The AdLoader has finished loading ads.
}
}
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd {
...
// some code that displays the ad.
...
if (adLoader.isLoading) {
// The AdLoader is still loading ads.
// Expect more adLoaded or onAdFailedToLoad callbacks.
} else {
// The AdLoader has finished loading ads.
}
}.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)
ปล่อยทรัพยากร
อย่าลืมใช้เมธอด destroy()
กับโฆษณาเนทีฟที่โหลด รุ่นนี้
ใช้ประโยชน์จากทรัพยากรต่างๆ และป้องกันการรั่วไหลของหน่วยความจำ
ตรวจสอบว่าได้ทำลายการอ้างอิง NativeAd
ทั้งหมดในกิจกรรม
onDestroy()
วิธี
ใน Callback onNativeAdLoaded
โปรดตรวจสอบว่าได้ทำลายข้อมูลที่มีอยู่
โฆษณาเนทีฟที่จะถูกยกเลิกการอ้างอิง
การตรวจสอบคีย์อื่นคือหากกิจกรรมถูกทำลายแล้ว หากเป็นเช่นนั้น ให้เรียกใช้ destroy()
ใน
โฆษณาที่แสดงและส่งคืนทันที:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed()` is a method on Activity.
if (isDestroyed()) {
nativeAd.destroy();
return;
}
...
}
}).build();
Kotlin
lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd { nativeAd ->
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed` is a method on Activity.
if (isDestroyed) {
nativeAd.destroy()
return@forNativeAd
}
...
}.build()
แนวทางปฏิบัติแนะนำ
ทำตามกฎเหล่านี้ขณะโหลดโฆษณา
แอปที่ใช้โฆษณาเนทีฟในรายการควรแคชรายการโฆษณาไว้ล่วงหน้า
เมื่อแคชโฆษณาล่วงหน้า ให้ล้างแคชและโหลดซ้ำหลังจากผ่านไป 1 ชั่วโมง
ไม่ต้องโทรหา
loadAd()
หรือloadAds()
ในAdLoader
จนถึงวันแรก โหลดคำขอเสร็จ
การเร่งฮาร์ดแวร์สำหรับโฆษณาวิดีโอ
เพื่อให้โฆษณาวิดีโอแสดง ในการดูโฆษณาเนทีฟได้สำเร็จ ฮาร์ดแวร์ การเร่งความเร็ว ต้องเปิดใช้งาน
การเร่งฮาร์ดแวร์จะเปิดใช้โดยค่าเริ่มต้น แต่บางแอปอาจเลือกให้ ปิดใช้ หากการตั้งค่านี้มีผลกับแอปของคุณ เราขอแนะนำให้เปิดใช้ฮาร์ดแวร์ การเร่งความเร็วสำหรับคลาสกิจกรรมที่ใช้โฆษณา
การเปิดใช้การเร่งฮาร์ดแวร์
หากแอปทำงานไม่ถูกต้องเมื่อเปิดการเร่งฮาร์ดแวร์
ทั่วโลก คุณสามารถควบคุมแต่ละกิจกรรมได้ด้วย หากต้องการเปิดใช้หรือ
ปิดใช้การเร่งฮาร์ดแวร์ ใช้แอตทริบิวต์ 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>
ดู การเร่งความเร็ว HW guideสำหรับ ข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกในการควบคุมการเร่งฮาร์ดแวร์ หมายเหตุ คุณจะไม่สามารถเปิดใช้การเร่งฮาร์ดแวร์หากการดูโฆษณาแต่ละรายการ กิจกรรมถูกปิดใช้ ดังนั้นกิจกรรมจะต้องเร่งฮาร์ดแวร์ เปิดอยู่
แสดงโฆษณา
เมื่อคุณโหลดโฆษณาแล้ว ที่เหลือก็คือการแสดงโฆษณาแก่ผู้ใช้ของคุณ ไปที่เนทีฟขั้นสูง เพื่อดูวิธีการ