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

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

기본 요건

  • Google 모바일 광고 SDK 버전 7.20.0 이상
  • 시작 가이드에 따라 필요한 과정을 완료합니다.

광고 로드

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

Swift

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

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/6499/example/nativeandbanner"
    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: "/6499/example/nativeandbanner", rootViewController: self,
  adTypes: [.native, .gamBanner], options: [bannerViewOptions])

Objective-C

GAMBannerViewOptions *bannerViewOptions = [[GAMBannerViewOptions alloc] init];
bannerViewOptions.enableManualImpressions = YES;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/6499/example/nativeandbanner"
    rootViewController:self
               adTypes:@[ GADAdLoaderAdTypeNative, GADAdLoaderAdTypeGAMBanner ]
               options:@[ bannerViewOptions ]];

배너 광고가 로드되면 광고가 반환되어 화면에 표시되는 것이 확인되면 recordManualImpression를 호출하여 노출을 수동으로 실행할 수 있습니다.

Swift

bannerView.recordImpression()

Objective-C

[self.bannerView recordImpression];