맞춤 렌더링 네이티브 광고와 배너 광고 요청 결합

코드를 약간 변경하면 광고 요청에서 네이티브 광고와 배너 광고를 결합할 수 있습니다.

기본 요건

  • Google 모바일 광고 SDK 버전 7.20.0 이상
  • 시작하기 가이드 완료

광고 로드 중

맞춤 렌더링된 네이티브 광고는 GADAdLoader 객체를 통해 로드됩니다. GADAdLoader 객체는 배너 광고 또는 네이티브 광고로 이어질 수 있는 광고 요청을 실행하도록 구성할 수도 있습니다. GADAdLoader 객체를 만들 때 GADAdLoaderAdTypeNative과 같은 네이티브 광고 유형과 함께 GADAdLoaderAdTypeGAMBanneradTypes 배열 매개변수에 추가하면 배너 광고가 네이티브 광고와 경쟁하여 요청을 처리해야 함을 지정합니다.

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

노출수 수동 집계

GADAdLoader를 통해 로드된 배너 광고에서 수동 노출수 집계를 사용 설정하려면 GADAdLoader를 초기화할 때 enableManualImpressionsYES로 설정하여 GAMBannerViewOptions를 설정하세요.

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