שילוב בקשות למודעות מותאמות ולבקשות למודעות באנר מותאמות אישית

בעזרת כמה שינויים בקוד, אפשר לשלב מודעות מותאמות ומודעות באנר בבקשות להצגת מודעות.

דרישות מוקדמות

טעינת מודעה

מודעות מותאמות שעברו עיבוד בהתאמה אישית נטענות באמצעות אובייקטים של GADAdLoader. אפשר גם להגדיר את האובייקט GADAdLoader כך שישלח בקשות להצגת מודעות שיכולות להניב מודעת באנר או מודעה מותאמת. כשיוצרים את האובייקט GADAdLoader, הוספה של GADAdLoaderAdTypeGAMBanner לפרמטר המערך adTypes, יחד עם סוגי מודעות מותאמות כמו GADAdLoaderAdTypeNative, מציינת שמודעות באנר צריכות להתחרות במודעות מותאמות כדי למלא את הבקשה.

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;

בנוסף, ה-delegate של טוען המודעות צריך לציין את הגדלים של מודעות הבאנר שצריך לבקש, על ידי מענה להודעה 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];