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

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

โฆษณาเนทีฟคือชิ้นงานโฆษณาที่แสดงต่อผู้ใช้ผ่านคอมโพเนนต์ 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

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 ควรมีค่าคงที่นี้ :

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

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

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 ยังมี 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:

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

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

แสดงโฆษณา

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