โหลดโฆษณาเนทีฟ

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

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

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

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

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

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

ก่อนดำเนินการต่อ ตั้งค่า Google Mobile Ads SDK

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

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

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

/21775744923/example/native

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

ดูรายละเอียดเกี่ยวกับโฆษณาทดสอบGoogle Mobile Ads SDKได้ที่ หัวข้อเปิดใช้โฆษณาทดสอบ

โหลดโฆษณา

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

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

เริ่มต้นใช้งานตัวโหลดโฆษณา

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

Swift

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  // To receive native ads, the ad loader's delegate must
  // conform to the NativeAdLoaderDelegate protocol.
  adTypes: [.native],
  // Use nil for default options.
  options: nil)
// Set the delegate before making an ad request.
adLoader.delegate = self

แทนที่ nativeAdUnitID ด้วยรหัสหน่วยโฆษณา

Objective-C

self.adLoader =
    [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                       // The UIViewController parameter is optional.
                       rootViewController:self
                                  // To receive native ads, the ad loader's delegate must
                                  // conform to the NativeAdLoaderDelegate protocol.
                                  adTypes:@[ GADAdLoaderAdTypeNative ]
                                  // Use nil for default options.
                                  options:nil];
// Set the delegate before making an ad request.
self.adLoader.delegate = self;

แทนที่ kNativeAdUnitID ด้วยรหัสหน่วยโฆษณา

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

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

ติดตั้งใช้งานผู้รับมอบสิทธิ์ของตัวโหลดโฆษณา

ผู้รับมอบสิทธิ์ของตัวโหลดโฆษณาต้องติดตั้งใช้งานโปรโตคอลที่เฉพาะเจาะจงกับประเภทโฆษณา สำหรับโฆษณาเนทีฟ โปรโตคอล 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.
}

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

Swift

func adLoader(_ adLoader: AdLoader, didReceive customNativeAd: CustomNativeAd) {
  // To be notified of events related to the custom native ad interactions, set the delegate
  // property of the native ad
  customNativeAd.delegate = self

  // TODO: Display the custom native ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveCustomNativeAd:(GADCustomNativeAd *)customNativeAd {
  // To be notified of events related to the custom native ad interactions, set the delegate
  // property of the native ad
  customNativeAd.delegate = self;

  // TODO: Display the custom native ad.
}

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

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

Swift

adLoader.load(AdManagerRequest())

Objective-C

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

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

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

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

Swift

let multipleAdOptions = MultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5
adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  adTypes: [.native],
  options: [multipleAdOptions])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdOptions = [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdOptions.numberOfAds = 5;

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                                   // The UIViewController parameter is optional.
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ multipleAdOptions ]];

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

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

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

กำหนดเวลาที่การโหลดเสร็จสิ้น

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

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

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

นอกจากนี้ GADAdLoaderDelegate ยังมีการเรียกกลับ 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:

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

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

แสดงโฆษณา

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