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

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

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

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

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

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

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

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

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

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

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

/21775744923/example/native

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

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

โหลดโฆษณา

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

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

เริ่มต้น AdLoader

คุณต้องเริ่มต้นใช้งาน AdLoader ก่อนจึงจะโหลดโฆษณาได้ โค้ดต่อไปนี้แสดงวิธีเริ่มต้น 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 รายการ

ใช้ตัวแทน AdLoader

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

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.
}

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

หากต้องการรับการแจ้งเตือนเกี่ยวกับเหตุการณ์ที่เกี่ยวข้องกับการโต้ตอบโฆษณาเนทีฟ ให้ตั้งค่าพร็อพเพอร์ตี้ 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:

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

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

แสดงโฆษณา

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