คุณสามารถรวมโฆษณาเนทีฟและโฆษณาแบนเนอร์ไว้ในคำขอโฆษณาได้โดยทำการเปลี่ยนแปลงโค้ดเพียงเล็กน้อย
ข้อกำหนดเบื้องต้น
- Google Mobile Ads SDK เวอร์ชัน 7.20.0 ขึ้นไป
- ตั้งค่า Google Mobile Ads SDK
การโหลดโฆษณา
ระบบจะโหลดโฆษณาเนทีฟที่แสดงผลโดยกำหนดเองผ่าน
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];