코드를 약간만 변경하면 광고 요청에서 네이티브 광고와 배너 광고를 결합할 수 있습니다.
기본 요건
- Google 모바일 광고 SDK 버전 7.20.0 이상
- 시작하기 가이드에 따라 필요한 과정을 완료합니다.
광고 로드
맞춤 렌더링 네이티브 광고는 GADAdLoader
객체를 통해 로드됩니다. GADAdLoader
객체를 구성하여 배너 또는 네이티브 광고를 생성할 수 있는 광고 요청을 할 수도 있습니다. GADAdLoader
객체를 생성할 때 adTypes
배열 매개변수에 GADAdLoaderAdTypeGAMBanner
를 추가하면 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;
광고 로더 위임자는 아래와 같이 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: "/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];