코드를 약간만 변경하면 광고 요청에 네이티브 광고와 배너 광고를 결합할 수 있습니다.
기본 요건
- Google 모바일 광고 SDK 버전 7.20.0 이상
- 시작 가이드에 따라 필요한 과정을 완료합니다.
광고 로드
맞춤 렌더링 네이티브 광고는
GADAdLoader
객체를 통해 로드됩니다. 배너 또는 네이티브 광고가 표시될 수 있는 광고를 요청하도록
GADAdLoader
객체를 구성할 수도 있습니다. GADAdLoader
객체를
만들 때 GADAdLoaderAdTypeNative
등의 네이티브 광고 유형과 함께
GADAdLoaderAdTypeGAMBanner
를 adTypes
배열 매개변수에
추가하면 배너 광고가 네이티브 광고와 경쟁하여
요청을 처리하도록 지정됩니다.
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
를 초기화할 때 enableManualImpressions
를 YES
로 설정하여 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];