コードを少し変更するだけで、広告リクエストでネイティブ広告とバナー広告を組み合わせることができます。
前提条件
- Google Mobile Ads 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];