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