โฆษณาเนทีฟคือชิ้นงานโฆษณาที่แสดงต่อผู้ใช้ผ่านคอมโพเนนต์ UI ที่เป็นเนทีฟของแพลตฟอร์ม เรื่องราวเหล่านี้จะแสดงโดยใช้คลาสเดียวกับที่คุณใช้ในสตอรีบอร์ดอยู่แล้ว และสามารถจัดรูปแบบให้เข้ากับการออกแบบภาพของแอปได้
เมื่อโฆษณาเนทีฟโหลดขึ้น แอปจะได้รับออบเจ็กต์โฆษณาที่มีชิ้นงาน และแอปจะเป็นผู้รับผิดชอบในการแสดงโฆษณานั้นแทนที่จะเป็น SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google
พูดกว้างๆ ก็คือ การติดตั้งใช้งานโฆษณาเนทีฟให้ประสบความสำเร็จมี 2 ส่วน ได้แก่ การโหลดโฆษณาโดยใช้ SDK จากนั้นจึงแสดงเนื้อหาโฆษณาในแอป
หน้านี้แสดงวิธีใช้ SDK เพื่อโหลด โฆษณาเนทีฟ
ข้อกำหนดเบื้องต้น
- ทำตามคู่มือเริ่มต้นใช้งาน
ทดสอบด้วยโฆษณาทดสอบเสมอ
เมื่อสร้างและทดสอบแอป ให้ตรวจสอบว่าคุณใช้โฆษณาทดสอบแทนที่จะใช้โฆษณาเวอร์ชันที่ใช้งานจริง
วิธีที่ง่ายที่สุดในการโหลดโฆษณาทดสอบคือการใช้รหัสหน่วยโฆษณาทดสอบเฉพาะสำหรับโฆษณาเนทีฟบน iOS ดังนี้
ca-app-pub-3940256099942544/3986624511
โดยได้รับการกำหนดค่ามาเป็นพิเศษให้แสดงผลโฆษณาทดสอบสำหรับทุกคำขอ และคุณจะนำไปใช้ในแอปของตนเองได้ขณะเขียนโค้ด ทดสอบ และแก้ไขข้อบกพร่อง เพียงตรวจสอบว่าคุณแทนที่หน่วยโฆษณาด้วยรหัสหน่วยโฆษณาของคุณเองก่อนเผยแพร่แอป
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของโฆษณาทดสอบของ Google Mobile Ads SDK ได้ที่โฆษณาทดสอบ
โหลดโฆษณา
โฆษณาเนทีฟจะโหลดด้วยคลาส GADAdLoader
ซึ่งจะส่งข้อความไปยังผู้รับมอบสิทธิ์ตามโปรโตคอล GADAdLoaderDelegate
เริ่มต้นตัวโหลดโฆษณา
ก่อนที่คุณจะโหลดโฆษณาได้ คุณต้องเริ่มต้นตัวโหลดโฆษณา
โค้ดต่อไปนี้แสดงวิธีเริ่มต้น GADAdLoader
Swift
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
rootViewController: self,
adTypes: [ .native ],
options: [ ... ad loader options objects ... ])
adLoader.delegate = self
Objective-C
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;
คุณจะต้องมีรหัสหน่วยโฆษณา (ใช้รหัสทดสอบ) ค่าคงที่ที่จะส่งในอาร์เรย์ adTypes
เพื่อระบุรูปแบบโฆษณาเนทีฟที่ต้องการขอ และตัวเลือกที่ต้องการตั้งค่าในพารามิเตอร์ options
ดูรายการค่าที่เป็นไปได้สำหรับพารามิเตอร์ options
ได้ในหน้าการตั้งค่าตัวเลือกโฆษณาเนทีฟ
อาร์เรย์ adTypes
ควรมี
ค่าคงที่นี้
ใช้การมอบสิทธิ์ตัวโหลดโฆษณา
ผู้รับมอบสิทธิ์โหลดโฆษณาต้องใช้โปรโตคอลสำหรับประเภทโฆษณาของคุณโดยเฉพาะ
สำหรับ โฆษณาเนทีฟ โปรโตคอล GADNativeAdLoaderDelegate
จะรวมข้อความที่ส่งถึงผู้รับมอบสิทธิ์เมื่อโฆษณาเนทีฟโหลดแล้ว
Swift
public func adLoader(_ adLoader: GADAdLoader,
didReceive nativeAd: GADNativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd;
ส่งคำขอแสดงโฆษณา
เมื่อเริ่มต้น GADAdLoader
แล้ว ให้เรียกใช้เมธอด loadRequest:
เพื่อขอโฆษณา ดังนี้
Swift
adLoader.load(GADRequest())
Objective-C
[self.adLoader loadRequest:[GADRequest request]];
เมธอด loadRequest:
ใน GADAdLoader
จะยอมรับออบเจ็กต์ GADRequest
เดียวกันกับแบนเนอร์และโฆษณาคั่นระหว่างหน้า คุณใช้ออบเจ็กต์คำขอเพื่อเพิ่มข้อมูลการกำหนดเป้าหมายได้ เช่นเดียวกับที่คุณทำกับโฆษณาประเภทอื่นๆ
โหลดโฆษณาหลายรายการ (ไม่บังคับ)
หากต้องการโหลดโฆษณาหลายรายการในคำขอเดียว ให้ตั้งค่าออบเจ็กต์ GADMultipleAdsAdLoaderOptions
เมื่อเริ่มต้น GADAdLoader
Swift
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
rootViewController: self,
adTypes: [ .native ],
options: [ multipleAdOptions ])
Objective-C
GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
[[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
มีการจำกัดจำนวนโฆษณาต่อคำขอไว้ที่ 5 รายการ และไม่รับประกันว่า SDK จะส่งกลับโฆษณาตามจำนวนที่ขอ
โฆษณา Google ที่แสดงผลจะมีความแตกต่างกันทั้งหมด อย่างไรก็ตาม เราไม่รับประกันว่าโฆษณาจากพื้นที่โฆษณาที่จองไว้หรือผู้ซื้อบุคคลที่สามจะไม่ซ้ำกัน
อย่าใช้คลาส GADMultipleAdsAdLoaderOptions
หากคุณใช้สื่อกลาง เนื่องจากขณะนี้คำขอโฆษณาเนทีฟหลายรายการใช้ไม่ได้กับรหัสหน่วยโฆษณาที่กำหนดค่าไว้สำหรับสื่อกลาง
พิจารณาว่าการโหลดเสร็จสิ้นเมื่อใด
หลังจากที่แอปเรียกใช้ loadRequest:
แอปจะได้รับผลลัพธ์ของคำขอโดยใช้การโทรเพื่อทำสิ่งต่อไปนี้
adLoader:didFailToReceiveAdWithError:
ในGADAdLoaderDelegate
adLoader:didReceiveNativeAd:
ในGADNativeAdLoaderDelegate
คำขอสำหรับโฆษณาเดียวจะทำให้เกิดการเรียก 1 ครั้งไปยังหนึ่งในวิธีเหล่านั้น
คำขอสำหรับโฆษณาหลายรายการจะส่งผลให้มีการเรียกกลับอย่างน้อย 1 ครั้งไปยังวิธีการข้างต้น แต่จะไม่เกินจำนวนโฆษณาสูงสุดที่ขอ
นอกจากนี้ GADAdLoaderDelegate
ยังเสนอการเรียกกลับ adLoaderDidFinishLoading
อีกด้วย เมธอดการมอบสิทธิ์นี้จะระบุว่าตัวโหลดโฆษณาโหลดโฆษณาเสร็จแล้ว และจะไม่มีการรายงานโฆษณาหรือข้อผิดพลาดอื่นๆ สำหรับคำขอดังกล่าว ต่อไปนี้คือตัวอย่างวิธีใช้โฆษณาขณะโหลดโฆษณาเนทีฟหลายรายการพร้อมกัน
Swift
class ViewController: UIViewController, GADNativeAdLoaderDelegate {
var adLoader: GADAdLoader!
override func viewDidLoad() {
super.viewDidLoad()
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
rootViewController: self,
adTypes: [ .native ],
options: [ multipleAdOptions ])
adLoader.delegate = self
adLoader.load(GADRequest())
}
func adLoader(_ adLoader: GADAdLoader,
didReceive nativeAd: GADNativeAd) {
// A native ad has loaded, and can be displayed.
}
func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
// The adLoader has finished loading ads, and a new request can be sent.
}
}
Objective-C
@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
[[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
self.adLoader.delegate = self;
[self.adLoader loadRequest:[GADRequest request]];
}
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd {
// A native ad has loaded, and can be displayed.
}
- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
// The adLoader has finished loading ads, and a new request can be sent.
}
@end
การจัดการคำขอที่ล้มเหลว
โปรโตคอลข้างต้นขยายโปรโตคอล GADAdLoaderDelegate
ซึ่งกำหนดข้อความที่ส่งเมื่อโฆษณาโหลดไม่สำเร็จ
Swift
public func adLoader(_ adLoader: GADAdLoader,
didFailToReceiveAdWithError error: NSError)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didFailToReceiveAdWithError:(NSError *)error;
รับการแจ้งเตือนเกี่ยวกับเหตุการณ์โฆษณาเนทีฟ
หากต้องการรับการแจ้งเตือนเหตุการณ์ที่เกี่ยวข้องกับการโต้ตอบกับโฆษณาเนทีฟ ให้ตั้งค่าพร็อพเพอร์ตี้ผู้รับมอบสิทธิ์ของโฆษณาเนทีฟ ดังนี้
Swift
nativeAd.delegate = self
Objective-C
nativeAd.delegate = self;
จากนั้นติดตั้งใช้งาน
GADNativeAdDelegate
เพื่อรับการติดต่อจากผู้รับมอบสิทธิ์ต่อไปนี้
Swift
func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
// The native ad was shown.
}
func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
// The native ad was clicked on.
}
func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
// The native ad will present a full screen view.
}
func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
// The native ad will dismiss a full screen view.
}
func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
// The native ad did dismiss a full screen view.
}
func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
// 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:
ระบุไว้
แสดงโฆษณา
เมื่อโหลดโฆษณาแล้ว ที่เหลือก็แค่แสดงต่อผู้ใช้ โปรดไปที่คู่มือโฆษณาเนทีฟขั้นสูงเพื่อดูวิธี