การรวมคำขอโฆษณาเนทีฟที่แสดงผลที่กำหนดเองและโฆษณาแบนเนอร์

คุณสามารถรวมโฆษณาเนทีฟและโฆษณาแบนเนอร์ไว้ในคำขอโฆษณาได้โดยทำการเปลี่ยนแปลงโค้ดเพียงเล็กน้อย

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

การโหลดโฆษณา

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

Swift

adLoader = GADAdLoader(adUnitID: "/21775744923/example/native-and-banner",
    rootViewController: self,
    adTypes: [.native, .gamBanner],
    options: [... ad loader options objects ...])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/21775744923/example/native-and-banner"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative, GADAdLoaderAdTypeGAMBanner ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

GAMBannerAdLoaderDelegate

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

Swift

public func adLoader(_ adLoader: GADAdLoader,
    didReceive GAMBannerView: GAMBannerView)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveGAMBannerView:(GAMBannerView *)bannerView;

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

Swift

public func validBannerSizes(for adLoader: GADAdLoader) -> [NSValue] {
  return [NSValueFromGADAdSize(GADAdSizeBanner),
    NSValueFromGADAdSize(GADAdSizeMediumRectangle),
    NSValueFromGADAdSize(GADAdSizeFromCGSize(CGSize(width: 120, height: 20)))]
}

Objective-C

- (NSArray *)validBannerSizesForAdLoader:(GADAdLoader *)adLoader {
  return @[
    @(GADAdSizeBanner),
    @(GADAdSizeMediumRectangle),
    @(GADAdSizeFromCGSize(CGSizeMake(120, 20)))
  ];
}

กำหนดขนาดโฆษณาให้เล็กกว่าหรือเท่ากับขนาดหน้าจอของอุปกรณ์ หากต้องการกำหนดขนาดหน้าจอสูงสุดใน iOS 26 ขึ้นไป ให้ใช้ UIWindowScene.effectiveGeometry.coordinateSpace พร็อพเพอร์ตี้ หากใช้ iOS 18 ลงมา ให้ใช้พร็อพเพอร์ตี้ UIWindowScene.coordinateSpace ดูรายละเอียดเกี่ยวกับข้อจำกัดด้านขนาดได้ที่ แก้ปัญหาการแสดงผลที่ไม่ได้รับโฆษณาใน Ad Manager

การนับจำนวนการแสดงผลด้วยตนเอง

หากต้องการเปิดใช้การนับจำนวนการแสดงผลด้วยตนเอง ในโฆษณาแบนเนอร์ที่โหลดผ่าน GADAdLoader ให้ตั้งค่า GAMBannerViewOptions โดยตั้งค่า enableManualImpressions เป็น YES เมื่อเริ่มต้น GADAdLoader

Swift

let bannerViewOptions = GAMBannerViewOptions()
bannerViewOptions.enableManualImpressions = true
adLoader = GADAdLoader(
  adUnitID: "/21775744923/example/native-and-banner", rootViewController: self,
  adTypes: [.native, .gamBanner], options: [bannerViewOptions])

Objective-C

GAMBannerViewOptions *bannerViewOptions = [[GAMBannerViewOptions alloc] init];
bannerViewOptions.enableManualImpressions = YES;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/21775744923/example/native-and-banner"
    rootViewController:self
               adTypes:@[ GADAdLoaderAdTypeNative, GADAdLoaderAdTypeGAMBanner ]
               options:@[ bannerViewOptions ]];

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

Swift

bannerView.recordImpression()

Objective-C

[self.bannerView recordImpression];