โฆษณาเนทีฟ

เลือกแพลตฟอร์ม: Android iOS Flutter Unity

โฆษณาเนทีฟคือชิ้นงานโฆษณาที่แสดงต่อผู้ใช้ผ่านคอมโพเนนต์ UI ที่เป็นเนทีฟของแพลตฟอร์ม โดยจะแสดงโดยใช้คลาสเดียวกันกับที่คุณใช้ในสตอรีบอร์ดอยู่แล้ว และสามารถจัดรูปแบบให้ตรงกับการออกแบบภาพของแอปได้

เมื่อโฆษณาเนทีฟโหลด แอปจะได้รับออบเจ็กต์โฆษณาที่มีชิ้นงานของโฆษณา และแอป (ไม่ใช่ Google Mobile Ads SDK) จะเป็นผู้รับผิดชอบ ในการแสดงโฆษณา

โดยทั่วไปแล้ว การใช้โฆษณาเนทีฟให้ประสบความสำเร็จมี 2 ส่วน ได้แก่ การโหลดโฆษณาโดยใช้ SDK แล้วแสดงเนื้อหาโฆษณาในแอป

หน้านี้แสดงวิธีใช้ SDK เพื่อโหลดโฆษณาเนทีฟ

ข้อกำหนดเบื้องต้น

ทดสอบด้วยโฆษณาทดสอบเสมอ

เมื่อสร้างและทดสอบแอป โปรดใช้โฆษณาทดสอบแทน โฆษณาจริงที่ใช้งานจริง

วิธีที่ง่ายที่สุดในการโหลดโฆษณาทดสอบคือการใช้รหัสหน่วยโฆษณาทดสอบเฉพาะสำหรับ โฆษณาเนทีฟใน iOS

ca-app-pub-3940256099942544/3986624511

เราได้กำหนดค่าไว้เป็นพิเศษเพื่อแสดงโฆษณาทดสอบสำหรับทุกคำขอ และคุณสามารถ ใช้ในแอปของคุณเองขณะเขียนโค้ด ทดสอบ และแก้ไขข้อบกพร่อง เพียงตรวจสอบว่าคุณได้ แทนที่ด้วยรหัสหน่วยโฆษณาของคุณเองก่อนเผยแพร่แอป

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีทำงานของโฆษณาทดสอบของ Google Mobile Ads SDK ได้ที่ โฆษณาทดสอบ

โหลดโฆษณา

โฆษณาเนทีฟจะโหลดด้วยคลาส GADAdLoader ซึ่งจะส่งข้อความไปยังผู้รับมอบสิทธิ์ตามโปรโตคอล GADAdLoaderDelegate

เริ่มต้นเครื่องมือโหลดโฆษณา

คุณต้องเริ่มต้นใช้งาน AdLoader ก่อนจึงจะโหลดโฆษณาได้ โค้ดต่อไปนี้แสดงวิธีเริ่มต้น GADAdLoader

Swift

adLoader = AdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",     // The UIViewController parameter is optional.     rootViewController: rootViewController,     adTypes: [ .native ],     options: [ ... ad loader options objects ... ]) adLoader.delegate = self 

Objective-C

self.adLoader = [[GADAdLoader alloc]       initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"     // The UIViewController parameter is nullable.     rootViewController:rootViewController                adTypes:@[ GADAdLoaderAdTypeNative ]                options:@[ ... ad loader options objects ... ]]; self.adLoader.delegate = self; 

คุณจะต้องมีรหัสหน่วยโฆษณา (คุณใช้รหัสทดสอบได้) ค่าคงที่ที่จะส่งในอาร์เรย์ adTypes เพื่อระบุรูปแบบโฆษณาเนทีฟที่ต้องการขอ และตัวเลือกที่ต้องการตั้งค่าในพารามิเตอร์ options ดูรายการค่าที่เป็นไปได้สำหรับพารามิเตอร์ options ได้ในหน้าการตั้งค่าตัวเลือกโฆษณาเนทีฟ

adTypes อาร์เรย์ควรมีค่าคงที่ต่อไปนี้

ใช้ตัวแทนการโหลดโฆษณา

ผู้มอบสิทธิ์ของ AdLoader ต้องใช้โปรโตคอลที่เฉพาะเจาะจงกับประเภทโฆษณาของคุณ สำหรับโฆษณาเนทีฟ โปรโตคอล GADNativeAdLoaderDelegate จะมีข้อความ ที่ส่งไปยังผู้รับมอบสิทธิ์เมื่อโฆษณาเนทีฟโหลดแล้ว

Swift

public func adLoader(_ adLoader: AdLoader,             didReceive nativeAd: NativeAd) 

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader     didReceiveNativeAd:(GADNativeAd *)nativeAd; 

ส่งคำขอแสดงโฆษณา

เมื่อเริ่มต้น GADAdLoader แล้ว ให้เรียกใช้เมธอด loadRequest: เพื่อ ขอโฆษณา

Swift

adLoader.load(Request()) 

Objective-C

[self.adLoader loadRequest:[GADRequest request]]; 

เมธอด loadRequest: ใน GADAdLoader ยอมรับออบเจ็กต์ GADRequest เดียวกันกับแบนเนอร์และโฆษณาคั่นระหว่างหน้า คุณสามารถใช้ออบเจ็กต์คำขอเพื่อเพิ่ม ข้อมูลการกำหนดเป้าหมายได้เช่นเดียวกับ โฆษณารูปแบบอื่นๆ

โหลดโฆษณาหลายรายการ (ไม่บังคับ)

หากต้องการโหลดโฆษณาหลายรายการในคำขอเดียว ให้ตั้งค่าออบเจ็กต์ GADMultipleAdsAdLoaderOptions เมื่อเริ่มต้น GADAdLoader

Swift

let multipleAdOptions = MultipleAdsAdLoaderOptions() multipleAdOptions.numberOfAds = 5; adLoader = AdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",     // The UIViewController parameter is optional.     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"     // The UIViewController parameter is nullable.     rootViewController:rootViewController                adTypes:@[ GADAdLoaderAdTypeNative ]                options:@[ multipleAdsOptions ]]; 

จำนวนโฆษณาต่อคำขอจะจำกัดไว้ที่ 5 รายการ และไม่มีการรับประกันว่า SDK จะแสดงโฆษณาตามจำนวนที่ขออย่างแน่นอน

โฆษณา Google ที่แสดงจะแตกต่างกันทั้งหมด แม้ว่าโฆษณาจาก พื้นที่โฆษณาที่สงวนไว้หรือผู้ซื้อบุคคลที่สามจะไม่รับประกันว่าจะไม่ซ้ำกัน

อย่าใช้คลาส GADMultipleAdsAdLoaderOptions หากคุณใช้สื่อกลาง เนื่องจากปัจจุบันคำขอโฆษณาเนทีฟหลายรายการใช้ไม่ได้กับรหัสหน่วยโฆษณาที่ ได้รับการกำหนดค่าสำหรับสื่อกลาง

การพิจารณาว่าการโหลดเสร็จสิ้นเมื่อใด

หลังจากที่แอปเรียกใช้ loadRequest: แล้ว แอปจะรับผลลัพธ์ของคำขอได้โดยใช้ การเรียกใช้ต่อไปนี้

คำขอโฆษณารายการเดียวจะทำให้เกิดการเรียกใช้เมธอดใดเมธอดหนึ่งดังกล่าว 1 ครั้ง

คำขอโฆษณาหลายรายการจะทำให้เกิดการเรียกกลับอย่างน้อย 1 ครั้งไปยังเมธอดข้างต้น แต่ไม่เกินจำนวนโฆษณาสูงสุดที่ขอ

นอกจากนี้ GADAdLoaderDelegate ยังมีadLoaderDidFinishLoading การโทรกลับ เมธอดตัวแทนนี้บ่งชี้ว่า AdLoader โหลด โฆษณาเสร็จแล้ว และจะไม่มีการรายงานโฆษณาหรือข้อผิดพลาดอื่นๆ สำหรับคำขอ ต่อไปนี้คือ ตัวอย่างวิธีใช้เมื่อโหลดโฆษณาเนทีฟหลายรายการพร้อมกัน

Swift

class ViewController: UIViewController, NativeAdLoaderDelegate {    var adLoader: GADAdLoader!    override func viewDidLoad() {     super.viewDidLoad()      let multipleAdOptions = MultipleAdsAdLoaderOptions()     multipleAdOptions.numberOfAds = 5;     adLoader = AdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",         // The UIViewController parameter is optional.         rootViewController: rootViewController,         adTypes: [ .native ],         options: [ multipleAdOptions ])      adLoader.delegate = self     adLoader.load(Request())   }    func adLoader(_ adLoader: AdLoader,        didReceive nativeAd: NativeAd) {     // A native ad has loaded, and can be displayed.   }    func adLoaderDidFinishLoading(_ adLoader: AdLoader) {     // 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"       // The UIViewController parameter is nullable.       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: AdLoader,     didFailToReceiveAdWithError error: NSError) 

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader     didFailToReceiveAdWithError:(NSError *)error; 

รับการแจ้งเตือนเกี่ยวกับเหตุการณ์โฆษณาเนทีฟ

หากต้องการรับการแจ้งเตือนเกี่ยวกับเหตุการณ์ที่เกี่ยวข้องกับการโต้ตอบโฆษณาเนทีฟ ให้ตั้งค่าพร็อพเพอร์ตี้ delegate ของโฆษณาเนทีฟ

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:

  • จำกัดการแคชโฆษณาเนทีฟเฉพาะสิ่งที่จำเป็น เช่น เมื่อแคชล่วงหน้า ให้แคชเฉพาะโฆษณาที่มองเห็นได้ทันทีบนหน้าจอ โฆษณาเนทีฟ ใช้หน่วยความจำมาก และการแคชโฆษณาเนทีฟโดยไม่ทำลายโฆษณา จะทำให้มีการใช้หน่วยความจำมากเกินไป

  • ทำลายโฆษณาเนทีฟเมื่อไม่ได้ใช้งานแล้ว

แสดงโฆษณา

เมื่อโหลดโฆษณาแล้ว สิ่งที่เหลืออยู่คือการแสดงโฆษณาต่อผู้ใช้ โปรดไปที่คู่มือขั้นสูงเกี่ยวกับโฆษณาเนทีฟเพื่อดูวิธี