# iOS SDK Getting Started / バナー広告
# はじめに
開発環境にXcodeを使用することを前提とします。
# 2025-09-24 v2.33.0アップデート内容 (opens new window)
- OM SDK 1.5.6に対応しました
- その他、内部処理を改善しました
# 2025-08-27 v2.32.0アップデート内容 (opens new window)
- iOS 26に対応しました、最小サポート Xcode 16.3〜
- ネイティブ広告において、動画広告が表示されない不具合を修正しました
- その他、内部処理を改善しました
# 2025-07-07 v2.31.0アップデート内容 (opens new window)
- 内部処理を改善しました
# 2025-06-04 v2.30.2アップデート内容 (opens new window)
- 広告計測処理の修正
- 一部の場合に、動画の再生・停止が正しく行われない問題の修正
- UnityAdsのインターステーシャル広告が勝手に表示されてしまう問題を修正
# 対応バージョン
- Xcode 16.3以降
- iOS 12.0以降
# 導入の流れ
- SDKをダウンロードします
- 例を参考に広告表示の実装を行います
参考
- App Transport Security(ATS)対応については「iOS SDK導入時のApp Transport Security(ATS)対応について」を御覧ください
- 【重要】Xcode12以降の環境の場合、あわせて、AppTrackingTransparency対応について / SKAdNetwork対応について を御覧いただき、ご対応をお願いいたします
# 1. SDKをダウンロードする
# CocoaPodsを使用する
次の行をプロジェクトのPodfileに追加します
pod 'AdGeneration'pod installを実行します
# Swift Package Managerを使用する
- XcodeのメニューからFile > Add Packages....を選択する。
- ダイアログ右上にある検索窓にリポジトリのURLを入力して検索します。
次のURLを追加します。https://github.com/AdGeneration/ADG-iOS-SDK https://github.com/googleads/swift-package-manager-google-mobile-ads.git
3-1. adg-ios-sdkは、Dependency Ruleに Up to Next Major Version を選択
3-2. swift-package-manager-google-mobile-adsのパッケージのDependency Ruleに Exact Version 12.2.0 を指定
4. Add to Projectから追加したいプロジェクトを選択して、右下のAdd Packageをクリック
手動でインストールする場合
# 手動でインストールする
- SDKをダウンロードする
こちらから最新バージョンのADG.xcframework.zipをダウンロードしてください。
ダウンロード (opens new window)
- プロジェクトにSDKを追加する
ダウンロードしたZIPファイルを解凍し、ADG.xcframeworkをプロジェクトナビゲータの任意の場所にドラッグ&ドロップするか、右クリック > Add Files to ... を選択し、"Copy items if needed"にチェックがついていることを確認して、Finishを押します。

- ADG.xcframeworkのEmbedを設定する
v2.23.0以降の場合
該当アプリのターゲット > General > Frameworks, Libraries, and Embedded Content > ADG.xcframework を"Embed & Sign"に設定してください。
ご注意
v2.23.0以降の場合、"Do Not Embed"を設定するとアプリ起動時にクラッシュします。必ず"Embed & Sign"を設定してください。
v2.22.2以前の場合
該当アプリのターゲット > General > Frameworks, Libraries, and Embedded Content > ADG.xcframework を"Do Not Embed"に設定してください。
- Ad Generation SDKが依存しているフレームワークを追加する
Xcodeのプロジェクトナビゲータからプロジェクトファイルを選択し、 該当アプリのターゲット > General > Frameworks, Libraries, and Embedded Content の+ボタンから、各SDKが使用するフレームワークを追加してください。
- SystemConfiguration.framework
- CoreTelephony.framework
- AVFoundation.framework
- CoreMedia.framework
- MediaPlayer.framework
- SafariServices.framework
- WebKit.framework
- StoreKit.framework
- AdSupport.framework (Optionalで追加)
v2.26.1以前の場合は以下のフレームワークも追加してください。
- CoreLocation.framework (Optionalで追加)
- v2.23.0以降、Optionalとなりました。CoreLocation.frameworkを利用する場合は位置情報の扱いについてもご参照ください
参考
v2.27.0からCoreLocation.frameworkは不要となりました。

- リソースファイルをプロジェクトに追加する(〜v2.22.2)
ご注意: v2.23.0以降について
ADG-Resources.bundle は動画広告のアイコンやインタースティシャル広告のボタンなど、画像やxibのリソースなどを内包したリソースファイルのパッケージとなります。
v2.23.0以降では、 ADG-Resources.bundle は削除されており、本手順は不要となります。
ADG.framework/ADG-Resources.bundleをXcodeのプロジェクトナビゲータの任意の場所にドラッグ&ドロップするか、右クリック > Add Files to ... を選択し、"Copy items if needed"にチェックがついていることを確認して、Finishを押します。


- Other Linker Flagsの設定
該当アプリのターゲット > Build Settings > Linking - General > Other Linker Flags に"-ObjC"を追加してください。

# 2. 広告表示を実装する
広告を配置するViewを作成します。以下の例では下部中央を指定しています。
AutoLayoutの制約は、広告のサイズに合わせて設定してください。

- 広告を表示するViewControllerで
ADG/ADG.hをインポートします - 広告表示用のView(サンプルコードでは
adViewが該当します)をViewController#viewに追加、またはStoryBoardにて追加します
※広告リクエスト前に追加してください ADGManagerViewControllerクラスのインスタンスを生成します- 広告リクエストを行います
viewDidAppearで広告のローテーション再開を行います
※画面切り替えで本処理を走らせたくない場合は、バックグラウンドからの復帰時に行ってくださいADGManagerViewControllerDelegateを実装してください
:::: tabs
::: tab Swift
import UIKit
import ADG
class BannerAdsSwiftViewController: UIViewController {
@IBOutlet weak var adView: UIView!
private var adg: ADGManagerViewController?
override func viewDidLoad() {
super.viewDidLoad()
/*
locationID: 管理画面から払い出された広告枠ID
adType: 枠サイズ
adType_Sp: 320x50
adType_Large: 320x100
adType_Rect: 300x250
adType_Tablet: 728x90
adType_Free: 自由設定
rootViewController: 広告を配置するViewController
*/
adg = ADGManagerViewController(locationID: "48547", adType: .adType_Sp, rootViewController: self)
adg?.addAdContainerView(self.adView) // 広告Viewを配置するViewを指定
adg?.delegate = self
adg?.loadRequest() // 広告リクエスト
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// 画面復帰時のローテーション再開
adg?.resumeRefresh()
}
}
extension BannerAdsSwiftViewController: ADGManagerViewControllerDelegate {
func adgManagerViewControllerReceiveAd(_ adgManagerViewController: ADGManagerViewController) {
print("Received an ad.")
}
func adgManagerViewControllerFailed(toReceiveAd adgManagerViewController: ADGManagerViewController, code: kADGErrorCode) {
print("Failed to receive an ad.")
// エラー時のリトライは特段の理由がない限り必ず記述するようにしてください。
switch code {
case .adgErrorCodeNeedConnection, // ネットワーク不通
.adgErrorCodeExceedLimit, // エラー多発
.adgErrorCodeNoAd: // 広告レスポンスなし
break
default:
adgManagerViewController.loadRequest()
}
}
func adgManagerViewControllerDidTapAd(_ adgManagerViewController: ADGManagerViewController) {
print("Did tap ad.")
}
}
:::
::: tab Objective-C
#import <ADG/ADG.h>
#import "BannerAdsObjCViewController.h"
@interface BannerAdsObjCViewController () <ADGManagerViewControllerDelegate>
@property (weak, nonatomic) IBOutlet UIView *adView;
@property (nonatomic) ADGManagerViewController *adg;
@end
@implementation BannerAdsObjCViewController
- (void)viewDidLoad {
[super viewDidLoad];
/*
locationID: 管理画面から払い出された広告枠ID
adType: 枠サイズ
kADG_AdType_Sp: 320x50
kADG_AdType_Large: 320x100
kADG_AdType_Rect: 300x250
kADG_AdType_Tablet: 728x90
kADG_AdType_Free: 自由設定
rootViewController: 広告を配置するViewController
*/
self.adg = [[ADGManagerViewController alloc] initWithLocationID:@"48547"
adType:kADG_AdType_Sp
rootViewController:self];
[self.adg addAdContainerView:self.adView]; // 広告Viewを配置するViewを指定
self.adg.delegate = self;
[self.adg loadRequest]; // 広告リクエスト
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// 画面復帰時のローテーション再開
[self.adg resumeRefresh];
}
- (void)ADGManagerViewControllerReceiveAd:(ADGManagerViewController *)adgManagerViewController {
NSLog(@"Received an ad.");
}
- (void)ADGManagerViewControllerFailedToReceiveAd:(ADGManagerViewController *)adgManagerViewController
code:(kADGErrorCode)code {
NSLog(@"Failed to receive an ad.");
// エラー時のリトライは特段の理由がない限り必ず記述するようにしてください。
switch (code) {
case kADGErrorCodeNeedConnection: // ネットワーク不通
case kADGErrorCodeExceedLimit: // エラー多発
case kADGErrorCodeNoAd: // 広告レスポンスなし
break;
default:
[adgManagerViewController loadRequest];
break;
}
}
- (void)ADGManagerViewControllerDidTapAd:(ADGManagerViewController *)adgManagerViewController{
NSLog(@"Did tap ad.");
}
@end
:::
::::
# 各メソッドの仕様やオプションについて
iOSリファレンスをご参照ください。
# 注意事項
# バナー広告Viewの配置位置について
adOrigin に広告Viewを配置する際の親Viewに対する相対位置を指定してください。
# テストIDについて
広告の掲載イメージを確認したい場合は、テストIDを使用してください。
テスト用の広告枠ID一覧
ご注意
テストIDをセットしたままアプリをリリースしないようにしてください。
# 位置情報の扱いについて
# v2.27.0以降の場合
v2.27.0からCoreLocation.frameworkに依存しなくなりました。この変更に伴い、Ad Generation SDKが位置情報を取得することはしません。
広告リクエストに位置情報を付与したい場合は、ご自身で位置情報取得ロジックを実装していただき、 ADGSettings.location クラスプロパティにセットしてください。位置情報が更新されるたびにセットし直す必要があります。
- (CLLocation *) updateLocation {
// 位置情報取得ロジックを実装してください
}
...
CLLocation *location = [self updateLocation];
// Ad Generation SDKに位置情報(緯度・経度)を設定
ADGSettings.location = [ADGLocation locationWithLatitude:location.coordinate.latitude
longitude:location.coordinate.longitude];
# v2.26.1以前の場合
ユーザが位置情報に関する権限をアプリに付与し、Ad Generation SDKにて位置情報取得の設定をONにしている場合、位置情報を広告リクエストに付与します。
v2.13.0以降、位置情報取得の初期設定をOFFに変更しております。有効にする方法等、詳しくはこちらをご覧ください。
iOS/Android 位置情報の扱いについて
また、位置情報サービスを使用される場合、マーケットの規約に従い、ユーザへの通知および同意をお願いいたします。