Kết hợp yêu cầu quảng cáo biểu ngữ và quảng cáo gốc hiển thị tuỳ chỉnh

Bạn có thể kết hợp quảng cáo gốc và quảng cáo biểu ngữ trong các yêu cầu quảng cáo bằng cách thực hiện một vài thay đổi đối với mã.

Điều kiện tiên quyết

Tải quảng cáo

Quảng cáo gốc được kết xuất tuỳ chỉnh được tải thông qua GADAdLoader các đối tượng. Bạn cũng có thể định cấu hình đối tượng GADAdLoader để đưa ra các yêu cầu quảng cáo có thể dẫn đến quảng cáo biểu ngữ hoặc quảng cáo gốc. Việc thêm GADAdLoaderAdTypeGAMBanner vào tham số mảng adTypes, cùng với các loại quảng cáo gốc như GADAdLoaderAdTypeNative khi tạo đối tượng GADAdLoader sẽ chỉ định rằng quảng cáo biểu ngữ phải cạnh tranh với quảng cáo gốc để đáp ứng yêu cầu.

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

Khi yêu cầu quảng cáo biểu ngữ thông qua GADAdLoader, thực thể đại diện của trình tải quảng cáo phải tuân thủ giao thức GAMBannerAdLoaderDelegate. Giao thức này bao gồm một thông báo được gửi khi quảng cáo biểu ngữ đã tải:

Swift

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

Objective-C

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

Thực thể đại diện của trình tải quảng cáo cũng phải chỉ định kích thước quảng cáo biểu ngữ cần yêu cầu bằng cách phản hồi thông báo validBannerSizesForAdLoader như minh hoạ bên dưới.

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)))
  ];
}

Đặt kích thước quảng cáo nhỏ hơn hoặc bằng kích thước màn hình thiết bị. Để xác định kích thước màn hình tối đa trên iOS 26 trở lên, hãy sử dụng thuộc tính UIWindowScene.effectiveGeometry.coordinateSpace. Trên iOS 18 trở xuống, hãy sử dụng thuộc tính UIWindowScene.coordinateSpace. Để biết thông tin chi tiết về các hạn chế về kích thước, hãy xem bài viết Khắc phục sự cố về lượt hiển thị không được đáp ứng trong Ad Manager.

Phương pháp tính số lần hiển thị theo cách thủ công

Để bật phương pháp tính số lượt hiển thị theo cách thủ công trên quảng cáo biểu ngữ được tải thông qua GADAdLoader, hãy đặt GAMBannerViewOptions với enableManualImpressions được đặt thành YES khi khởi chạy 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 ]];

Nếu quảng cáo biểu ngữ tải, bạn có thể gọi recordManualImpression khi xác định rằng một quảng cáo đã được trả về thành công và đang hiển thị trên màn hình để tự kích hoạt một lượt hiển thị:

Swift

bannerView.recordImpression()

Objective-C

[self.bannerView recordImpression];