โฆษณาเนทีฟคือชิ้นงานโฆษณาที่แสดงต่อผู้ใช้ผ่านคอมโพเนนต์ UI ที่เป็นเนทีฟของแพลตฟอร์ม โดยจะแสดงโดยใช้คลาสเดียวกับที่คุณใช้ในสตอรีบอร์ดอยู่แล้ว และสามารถจัดรูปแบบให้ตรงกับการออกแบบภาพของแอปได้
เมื่อโฆษณาเนทีฟโหลด แอปจะได้รับออบเจ็กต์โฆษณาที่มีชิ้นงานของโฆษณา และแอป (ไม่ใช่ Google Mobile Ads SDK) จะเป็นผู้รับผิดชอบในการแสดงชิ้นงานเหล่านั้น
โดยทั่วไปแล้ว การติดตั้งใช้งานโฆษณาเนทีฟให้ประสบความสำเร็จมี 2 ส่วน ได้แก่ การโหลดโฆษณาโดยใช้ SDK และการแสดงเนื้อหาโฆษณาในแอป
หน้านี้แสดงวิธีใช้ SDK เพื่อโหลดโฆษณาเนทีฟ
ข้อกำหนดเบื้องต้น
ตั้งค่า Google Mobile Ads SDK ก่อนดำเนินการต่อ
ทดสอบด้วยโฆษณาทดสอบเสมอ
เมื่อสร้างและทดสอบแอป โปรดใช้โฆษณาทดสอบแทนโฆษณาจริงที่ใช้งานจริง
วิธีที่ง่ายที่สุดในการโหลดโฆษณาทดสอบคือการใช้รหัสหน่วยโฆษณาทดสอบเฉพาะสำหรับโฆษณาเนทีฟบน iOS ดังนี้
ca-app-pub-3940256099942544/3986624511
ซึ่งได้รับการกำหนดค่าเป็นพิเศษให้แสดงโฆษณาทดสอบสำหรับทุกคำขอ และคุณสามารถใช้ในแอปของคุณเองขณะเขียนโค้ด ทดสอบ และแก้ไขข้อบกพร่องได้ อย่าลืมแทนที่ด้วยรหัสหน่วยโฆษณาของคุณเองก่อนเผยแพร่แอป
ดูรายละเอียดเกี่ยวกับโฆษณาทดสอบของ Google Mobile Ads SDK ได้ที่เปิดใช้โฆษณาทดสอบ
โหลดโฆษณา
โฆษณาเนทีฟจะโหลดด้วยคลาส GADAdLoader ซึ่งจะส่งข้อความไปยังผู้รับมอบสิทธิ์ตามโปรโตคอล GADAdLoaderDelegate
เริ่มต้นตัวโหลดโฆษณา
คุณต้องเริ่มต้นตัวโหลดโฆษณาก่อนจึงจะโหลดโฆษณาได้
โค้ดต่อไปนี้แสดงวิธีเริ่มต้น GADAdLoader
Swift
แทนที่ nativeAdUnitID ด้วยรหัสหน่วยโฆษณา
Objective-C
แทนที่ kNativeAdUnitID ด้วยรหัสหน่วยโฆษณา
คุณจะต้องมีรหัสหน่วยโฆษณา (ใช้รหัสทดสอบได้) ค่าคงที่เพื่อส่งในอาร์เรย์ adTypes เพื่อระบุรูปแบบเนทีฟที่ต้องการขอ และตัวเลือกที่ต้องการตั้งค่าในพารามิเตอร์ options ดูรายการค่าที่เป็นไปได้สำหรับพารามิเตอร์ options ได้ในหน้าการตั้งค่าตัวเลือกโฆษณาเนทีฟ
อาร์เรย์ adTypes ควรมีค่าคงที่นี้ :
ใช้ตัวแทนตัวโหลดโฆษณา
ผู้รับมอบสิทธิ์ตัวโหลดโฆษณาต้องใช้โปรโตคอลเฉพาะสำหรับประเภทโฆษณาของคุณ
สำหรับโฆษณาเนทีฟ โปรโตคอล GADNativeAdLoaderDelegate จะมีข้อความที่ส่งไปยังผู้รับมอบสิทธิ์เมื่อโฆษณาเนทีฟโหลดแล้ว
Swift
func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
// Set the delegate to receive notifications for interactions with the native ad.
nativeAd.delegate = self
// TODO: Display the native ad.
}
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {
// Set the delegate to receive notifications for interactions with the native ad.
nativeAd.delegate = self;
// TODO: Display the native ad.
}
ส่งคำขอแสดงโฆษณา
เมื่อ GADAdLoader เริ่มต้นแล้ว ให้เรียกใช้เมธอด loadRequest: เพื่อขอโฆษณา
Swift
adLoader.load(Request())
Objective-C
[self.adLoader loadRequest:[GADRequest request]];
เมธอด loadRequest: ใน GADAdLoader จะยอมรับออบเจ็กต์ GADRequest เดียวกันกับแบนเนอร์และโฆษณาคั่นระหว่างหน้า คุณสามารถใช้ออบเจ็กต์คำขอเพื่อเพิ่มข้อมูลการกำหนดเป้าหมายได้เช่นเดียวกับที่ทำกับโฆษณาประเภทอื่นๆ
โหลดโฆษณาหลายรายการ (ไม่บังคับ)
หากต้องการโหลดโฆษณาหลายรายการในคำขอเดียว ให้ตั้งค่าออบเจ็กต์ GADMultipleAdsAdLoaderOptions เมื่อเริ่มต้น GADAdLoader
Swift
Objective-C
จำนวนโฆษณาต่อคำขอจะจำกัดอยู่ที่ 5 รายการ และไม่รับประกันว่า SDK จะแสดงโฆษณาตามจำนวนที่ขอ
โฆษณา Google ที่แสดงผลจะแตกต่างกันทั้งหมด แม้ว่าจะไม่มีการรับประกันว่าโฆษณาจากพื้นที่โฆษณาที่จองไว้หรือผู้ซื้อบุคคลที่สามจะไม่ซ้ำกัน
อย่าใช้คลาส GADMultipleAdsAdLoaderOptions หากคุณใช้สื่อกลาง เนื่องจากคำขอโฆษณาเนทีฟหลายรายการใช้ไม่ได้กับรหัสหน่วยโฆษณาที่กำหนดค่าไว้สำหรับสื่อกลาง
ระบุว่าการโหลดเสร็จสิ้นเมื่อใด
หลังจากแอปเรียกใช้ loadRequest: แล้ว แอปจะได้รับผลลัพธ์ของคำขอโดยใช้การเรียกไปยังเมธอดต่อไปนี้
adLoader:didFailToReceiveAdWithError:ในGADAdLoaderDelegateadLoader:didReceiveNativeAd:ในGADNativeAdLoaderDelegate
คำขอโฆษณาเดียวจะส่งผลให้มีการเรียกใช้เมธอดใดเมธอดหนึ่งดังกล่าว 1 ครั้ง
คำขอโฆษณาหลายรายการจะส่งผลให้มีการเรียกกลับไปยังเมธอดข้างต้นอย่างน้อย 1 ครั้ง แต่ไม่เกินจำนวนโฆษณาสูงสุดที่ขอ
นอกจากนี้ GADAdLoaderDelegate ยังมี Callback adLoaderDidFinishLoading ด้วย เมธอดตัวแทนนี้บ่งบอกว่าตัวโหลดโฆษณาโหลดโฆษณาเสร็จแล้ว และจะไม่มีการรายงานโฆษณาหรือข้อผิดพลาดอื่นๆ สำหรับคำขอนี้ ต่อไปนี้คือตัวอย่างวิธีใช้เมื่อโหลดโฆษณาเนทีฟหลายรายการพร้อมกัน
Swift
func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
// The adLoader has finished loading ads.
}
Objective-C
- (void)adLoaderDidFinishLoading:(GADAdLoader *)adLoader {
// The adLoader has finished loading ads.
}
จัดการคำขอที่ไม่สำเร็จ
โปรโตคอลจะขยายโปรโตคอล GADAdLoaderDelegate ซึ่งกำหนดข้อความที่ส่งเมื่อโหลดโฆษณาไม่สำเร็จ
Swift
func adLoader(_ adLoader: AdLoader, didFailToReceiveAdWithError error: any Error) {
// The adLoader failed to receive an ad.
}
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader didFailToReceiveAdWithError:(NSError *)error {
// The adLoader failed to receive an ad.
}
รับการแจ้งเตือนเกี่ยวกับเหตุการณ์โฆษณาเนทีฟ
หากต้องการรับการแจ้งเตือนเกี่ยวกับเหตุการณ์ที่เกี่ยวข้องกับการโต้ตอบกับโฆษณาเนทีฟ ให้ตั้งค่าพร็อพเพอร์ตี้ผู้รับมอบสิทธิ์ของโฆษณาเนทีฟ ดังนี้
Swift
nativeAd.delegate = self
Objective-C
nativeAd.delegate = self;
จากนั้นใช้
GADNativeAdDelegate
เพื่อรับการเรียกใช้ตัวแทนต่อไปนี้
Swift
func nativeAdDidRecordImpression(_ nativeAd: NativeAd) {
// The native ad was shown.
}
func nativeAdDidRecordClick(_ nativeAd: NativeAd) {
// The native ad was clicked on.
}
func nativeAdWillPresentScreen(_ nativeAd: NativeAd) {
// The native ad will present a full screen view.
}
func nativeAdWillDismissScreen(_ nativeAd: NativeAd) {
// The native ad will dismiss a full screen view.
}
func nativeAdDidDismissScreen(_ nativeAd: NativeAd) {
// The native ad did dismiss a full screen view.
}
func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
// The native ad will cause the app to become inactive and
// open a new app.
}
Objective-C
- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
// The native ad was shown.
}
- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
// The native ad was clicked on.
}
- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
// The native ad will present a full screen view.
}
- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
// The native ad will dismiss a full screen view.
}
- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
// The native ad did dismiss a full screen view.
}
- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
// The native ad will cause the app to become inactive and
// open a new app.
}
แนวทางปฏิบัติแนะนำ
โปรดปฏิบัติตามกฎต่อไปนี้เมื่อโหลดโฆษณา
แอปที่ใช้โฆษณาเนทีฟในรายการควรแคชรายการโฆษณาล่วงหน้า
เมื่อแคชโฆษณาล่วงหน้า ให้ล้างแคชและโหลดซ้ำหลังจากผ่านไป 1 ชั่วโมง
อย่าเรียก
loadRequest:อีกครั้งในGADAdLoaderจนกว่าคำขอก่อนหน้าจะโหลดเสร็จ ซึ่งสังเกตได้จากadLoaderDidFinishLoading:จำกัดการแคชโฆษณาเนทีฟไว้เฉพาะที่จำเป็นเท่านั้น เช่น เมื่อทำการแคชล่วงหน้า ให้แคชเฉพาะโฆษณาที่มองเห็นได้ทันทีบนหน้าจอ โฆษณาเนทีฟใช้หน่วยความจำที่ใช้มาก และการแคชโฆษณาเนทีฟโดยไม่ทำลายจะส่งผลให้มีการใช้หน่วยความจำมากเกินไป
ทำลายโฆษณาเนทีฟเมื่อไม่ได้ใช้งานแล้ว
แสดงโฆษณา
เมื่อโหลดโฆษณาแล้ว สิ่งที่เหลืออยู่คือการแสดงโฆษณาต่อผู้ใช้ ดูข้อมูลเพิ่มเติมได้ที่เนทีฟขั้นสูงหรือโฆษณาเนทีฟแบบเต็มหน้าจอ