カスタムSDK連携 AdMob iOS
はじめに
Ad Generationの「カスタムタグ」設定にて、Ad Generation SDKからAdMobのSDKを呼び出し、AdMobの広告を表示できます。
更新履歴
-
2025-10-16 ADGAdMob.xcframework 12.12.0をリリース
- AdMob 12.12.0対応. 最小サポート Xcode 16.3〜
-
2025-10-01 ADGAdMob.xcframework 12.11.0をリリース
- AdMob 12.11.0対応. 最小サポート Xcode 16.3〜
-
2025-08-04 ADGAdMob.xcframework 12.8.0をリリース
- ※ AdMob 12.8.0対応. 最小サポート Xcode 16.2〜
-
2025-06-04 ADGAdMob.xcframework 12.5.0をリリース
- ※ AdMob 12.5.0対応. 最小サポート Xcode 16.2〜
-
2025-05-27 ADGAdMob.xcframework 12.4.0をリリース
- ※ AdMob 12.4.0対応. 最小サポート Xcode 16.2〜
-
2025-04-15 ADG-AdMob-iOS-Adapter v12.2.0をSPM(Swift Package Manager)配布を開始
アップデートした際は、表示確認および、連携先の広告レポート数値などを確認し、問題がないことをご確認後にアプリのリリースをお願いいたします
前提条件
- Xcode 16.4
+ - iOS 13.0
+
実装の流れ
- Ad Generation SDKをプロジェクトに追加します。
- AdMob SDKをプロジェクトに追加します。
- Info.plistの設定を行います。
- Ad Generationの広告表示の実装をします。
- SDK連携にあたっての共通作業を行います。
1. Ad Generation SDKをプロジェクトに追加する
1-1. Swift Package Managerを使用する
- XcodeのメニューからFile > Add Packages....を選択する。
- ダイアログ右上にある検索窓にリポジトリのURLを入力して検索します。
次のURLを追加します。
https://github.com/AdGeneration/ADG-AdMob-iOS-Adapter.git
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
3-1. ADG-AdMob-iOS-Adapterは、Dependency Ruleの Up to Next Major Version は、12.12.0 < 13.0.0 の範囲で指定できます
3-2. またはバージョンを指定する場合は Dependency Ruleに Exact Version 12.12.0 を指定します
3-3. 依存するADG SDKのバージョンは 2.33.0以上 3.0.0 未満
3-4. 依存するGoogle Mobile Ads SDKのバージョンは 12.12.0
【重要】SPMでインストール後、Other Linker Flagsに -ObjC を設定する必要があります。設定されていない場合、AdMob広告はロードされません
4. Add to Projectから追加するプロジェクトを選択して、右下のAdd Packageをクリック
1-2. CocoaPodsを使用する
-
次の行をプロジェクトのPodfileに追加します。
pod 'Google-Mobile-Ads-SDK', '12.12.0'
pod 'AdGeneration'
pod 'AdGeneration-Adapter-AdMob' -
pod installを実行します。
手動でインストールする場合
手動でインストールする
- Ad Generation SDK (ADG.xcframework)
追加方法は、iOS SDK Getting Started/バナー広告 をご参照ください。 - Ad Generation AdMob Adapter (ADGAdMob.xcframework)
AdMob Adapter ダウンロードよりダウンロードし、プロジェクトに追加してください。 - AdMob SDK (GoogleMobileAds.xcframework)
Google Mobile Ads SDKのv7.42.0以降は下記もあわせて追加が必要となります。- GoogleAppMeasurement.xcframework
- GoogleUtilities.xcframework
- nanopb.xcframework
追加方法は、AdMobドキュメントをご参照ください。
手動で追加する場合は、以下のframeworkの参照追加が必要になります。
- AudioToolbox
- AVFoundation
- MessageUI
- StoreKit
- SafariServices
- GLKit
- OpenGLES
- CoreMotion
- CoreVideo
2. Info.plistの設定を行う
Google Mobile Ads SDKのv7.42.0以降はInfo.plistに以下を追加してください。
この手順はv7.42.0以降必須になります。
下記をInfo.plistに記述していない場合、アプリ起動時にクラッシュが発生いたしますのでご注意ください。
-
GADApplicationIdentifier
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</string>
※上記の例に表示されているAdMobアプリIDではなく、実際のAdMobアプリIDを使用してください。
-
GADIsAdManagerApp
<key>GADIsAdManagerApp</key>
<true/>
詳細はこちらを確認してください。
3. Ad Generationの広告表示の実装をする
4. SDK連携にあたっての共通作業を行う
アドネットワークのSDKと連携するための注意事項や共通して対応いただく必要がございます。各アドネットワークのSDKを導入する前に以下をご確認ください。
アドネットワークのSDKと連携する際の注意事項および共通手順
AdMob SDK version 7.69.0以前のフォーマット
ネイティブ広告(アドバンス)について
AdMobの公式リファレンスは以下になります。
ADGManagerViewControllerReceiveAd:mediationNativeAd: の delegate メソッドには GADNativeAd が返却されます(GADNativeContentAd/GADNativeAppInstallAd は v7.46.0 以降廃止されています)。
参照するために GoogleMobileAds の import を追加してください。
ネイティブ広告オブジェクトを取得後に任意のレイアウトを組み立て、[ADGManagerViewController getNativeMediationView:] を呼び出して Ad Generation SDK の拡張ビューを受け取ります。
戻り値のビューを画面に追加し、必要に応じて setAutomaticallyRemoveOnReload: などを使ってローテーション時に自動破棄されるようにしてください。
実装例
- Swift
- Objective-C
func adgManagerViewControllerReceiveAd(
_ adgManagerViewController: ADGManagerViewController,
mediationNativeAd: Any
) {
guard let nativeAd = mediationNativeAd as? GADNativeAd else {
// 想定外のオブジェクトの場合は何もせず終了
return
}
// 受信したネイティブ広告を任意の nib / view でレイアウトする
let nativeAdView = createGADNativeAdView(nativeAd)
// Ad Generation SDKにViewを登録し、機能追加済みのViewを受け取る
if let mediationView = adgManagerViewController.getNativeMediationView(nativeAdView) {
adgManagerViewController.setAutomaticallyRemoveOnReload(mediationView)
adContainerView.addSubview(mediationView) // adContainerViewは広告を配置する任意のUIView
}
}
- (void)ADGManagerViewControllerReceiveAd:(ADGManagerViewController *)adgManagerViewController
mediationNativeAd:(id)mediationNativeAd
{
if (![mediationNativeAd isKindOfClass:[GADNativeAd class]]) {
// 想定外のオブジェクトの場合は何もせず終了
return;
}
GADNativeAd *nativeAd = (GADNativeAd *)mediationNativeAd;
// 受信したネイティブ広告を任意のUIViewにレイアウト
UIView *nativeAdView = [self createGADNativeAdView:nativeAd];
// Ad Generation SDKの拡張ビューを取得してから画面に設置
UIView *mediationView = [adgManagerViewController getNativeMediationView:nativeAdView];
if (mediationView) {
[adgManagerViewController setAutomaticallyRemoveOnReload:mediationView];
[self.adContainerView addSubview:mediationView]; // adContainerViewは広告を配置する任意のUIView
}
}
※AdMobのネイティブ広告をご利用の場合は、返却されるのは GADNativeAd のみです。旧 GADNativeContentAd / GADNativeAppInstallAd を想定したコードは不要です。
ネイティブ広告(GADNativeAd)の実装方法
GADNativeAd を受け取るために以下をご確認いただき、実装をしてください。
- Google Mobile Ads SDK(GoogleMobileAds.xcframework)がv7.28.0以降であること
- Ad Generation AdMob Adapter (ADGAdMob.xcframework)がv1.0.2以降であること
- 広告リクエスト(
loadRequest())コール前にsetIsUnifiedNativeAdフラグにYESを設定していること
スマートバナーについて
スマートバナーとは、AdMobで提供されているバナー広告の幅を端末幅まで自動で拡大する機能です。
Ad Generation SDKからスマートバナーを有効にするには以下のようにexpandframeをYESに指定してください。
また、 広告を表示するadViewにしているViewは、水平方向が中央に配置されるよう実装してください。
- Swift
- Objective-C
adg.expandframe = YES
self.adg.expandframe = YES
Google Mobile Ads SDK version 8.0.0以降のネイティブ広告について
ネイティブ広告オブジェクトはGADNativeAd クラスです。
参照するために、該当クラスに GoogleMobileAds のimportを追加してください。
ネイティブ広告オブジェクト取得後、お客様側でレイアウトを構築していただき、
Ad Generation SDKに対してネイティブ広告のViewを登録するために [ADGManagerViewController getNativeMediationView:] を実行してください。
[ADGManagerViewController getNativeMediationView:] にて返却されたViewを、画面へaddいただき、広告の表示をおこなってください。
実装例
弊社広告枠のカスタム配信設定にて、AdMobのネイティブ広告を設定済みの広告枠IDをセットしてリクエストしていることを前提とし、
AdMobのネイティブ広告が正常に受信した場合、下記デリゲートに通知されます。
- Objective-C
- (void)ADGManagerViewControllerReceiveAd:(ADGManagerViewController *)adgManagerViewController mediationNativeAd:(id)mediationNativeAd {
UIView *nativeAdView = nil;
if ([mediationNativeAd isKindOfClass:[GADNativeAd class]]) {
GADNativeAd *nativeAd = (GADNativeAd *)mediationNativeAd;
//ネイティブ広告のレイアウト作成処理
nativeAdView = [self createGADNativeAd:nativeAd];
}
if (nativeAdView) {
//Ad Generation SDKにViewをセットして登録する
[adg getNativeMediationView:nativeAdView];
}
}
広告View構築時のご注意
広告のレイアウト構築時につきまして、AdMobのレギュレーションがございます。
公式のネイティブ広告のポリシーとガイドラインにて、
広告レイアウトやタップ領域についての記述がございますので、ご確認ください。
コンテンツ マッピングの設定
コンテンツ マッピングを導入すると、コンテンツに基づくターゲティングを実施できます。
詳細はこちらを確認してください。
Ad Generation SDKからコンテンツマッピングを有効にするには以下のように setContentUrlからURLを指定してください。
- Swift
- Objective-C
adg.contentUrl = "URL"
[self.adg setcontentUrl:@"URL"];
テスト用ID
テスト広告の表示に使用するAd Genrationの広告枠IDです。
このIDをセットしたままアプリをリリースしないようご注意ください。
| サイズ | テストID | 配信広告1 | 配信広告2 |
|---|---|---|---|
| バナー | 43468 | AdMob | テスト広告 |
| ネイティブ(Advanced/Content/Unified ※1) | 46153 | AdMob | テスト広告 |
| ネイティブ(Advanced/AppInstall/Unified ※1) | 46154 | AdMob | テスト広告 |
| ネイティブ(Advanced/Contents/AppInstall/Unified ※1) | 46470 | AdMob | テスト広告 |