โฆษณาเนทีฟ

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

คำขอสำหรับโฆษณาเดียวจะส่งผลให้เกิดการเรียกไปยังหนึ่งในวิธีเหล่านั้น 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:

แสดงโฆษณา

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