メインコンテンツまでスキップ

iOS SDK Getting Started / バナー広告

はじめに

開発環境にXcodeを使用することを前提とします。

2026-01-13 v2.34.1アップデート内容

  • ワイプアドが表示されないバグを修正しました

2025-12-09 v2.34.0アップデート内容

以下のAPIを削除しました

  • ADGLink クラス
  • ADGVideo クラス
  • ADGNativeAd#link プロパティ
  • ADGNativeAd#video プロパティ
  • ADGNativeAd#jstracker プロパティ

以下のAPIを非推奨にしました

  • ADGManagerViewController#rootViewController プロパティ
    • rootViewController を設定するためには、 ADGManagerViewController#initWithLocationID:adType:rootViewController: イニシャライザを代わりに使用してください。
  • kADGErrorCodeReceivedFiller エラーコード
    • 代替はありません。

以下のAPIを変更しました

  • ADGConstants クラスの kADGErrorCodetoString メソッドを kADGErrorCodeToString にリネームしました。

その他の変更点

  • 広告をタップしても App Store 画面が開かれないことがあるバグを修正しました。
  • その他、内部処理を改善しました。

2025-09-24 v2.33.0アップデート内容

  • OM SDK 1.5.6に対応しました
  • その他、内部処理を改善しました

2025-08-27 v2.32.0アップデート内容

  • iOS 26に対応しました、最小サポート Xcode 16.3〜
  • ネイティブ広告において、動画広告が表示されない不具合を修正しました
  • その他、内部処理を改善しました

2025-07-07 v2.31.0アップデート内容

  • 内部処理を改善しました

2025-06-04 v2.30.2アップデート内容

  • 広告計測処理の修正
  • 一部の場合に、動画の再生・停止が正しく行われない問題の修正
  • UnityAdsのインターステーシャル広告が勝手に表示されてしまう問題を修正

アドネットワークのSDKと連携する際の注意事項及び共通手順

対応バージョン

  • Xcode 16.4以降
  • iOS 12.0以降

導入の流れ

  1. SDKをダウンロードします
  2. 例を参考に広告表示の実装を行います
参考情報

1. SDKをダウンロードする

CocoaPodsを使用する

  1. 次の行をプロジェクトのPodfileに追加します:
pod 'AdGeneration'
  1. pod install を実行します

Swift Package Managerを使用する

  1. XcodeのメニューからFile > Add Packages....を選択する
  2. ダイアログ右上にある検索窓にリポジトリのURLを入力して検索します 次のURLを追加します:
https://github.com/AdGeneration/ADG-iOS-SDK
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
  1. パッケージの設定
    • adg-ios-sdkは、Dependency Ruleに Up to Next Major Version を選択
    • swift-package-manager-google-mobile-adsのパッケージのDependency Ruleに Exact Version 12.2.0 を指定
  2. Add to Projectから追加したいプロジェクトを選択して、右下のAdd Packageをクリック
手動でインストールする
  1. SDKをダウンロードする

    こちらから最新バージョンのADG.xcframework.zipをダウンロードしてください。 ダウンロード

  2. プロジェクトにSDKを追加する

    ダウンロードしたZIPファイルを解凍し、ADG.xcframeworkをプロジェクトナビゲータの任意の場所にドラッグ&ドロップするか、右クリック > Add Files to ... を選択し、"Copy items if needed"にチェックがついていることを確認して、Finishを押します。

SDKファイルの追加

  1. 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"に設定してください。

  1. 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.27.0からCoreLocation.frameworkは不要となりました。

  1. リソースファイルをプロジェクトに追加する(〜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を押します。

リソースファイルの追加1

リソースファイルの追加2

  1. Other Linker Flagsの設定

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

IMG

2. 広告表示を実装する

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

広告Viewの配置例

  1. 広告を表示するViewControllerで ADG/ADG.h をインポートします
  2. 広告表示用のView(サンプルコードでは adView が該当します)を ViewController#view に追加、またはStoryBoardにて追加します
    注記

    広告リクエスト前に追加してください

  3. ADGManagerViewController クラスのインスタンスを生成します
  4. 広告リクエストを行います
  5. viewDidAppear で広告のローテーション再開を行います
    ヒント

    画面切り替えで本処理を走らせたくない場合は、バックグラウンドからの復帰時に行ってください

  6. ADGManagerViewControllerDelegate を実装してください
adType_Free のサイズ指定

adType_Free を使用する場合は、必ず adSize もしくは setFrame で広告サイズを指定してください。

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()
}
}

// MARK: - ADGManagerViewControllerDelegate
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.")
}
}
#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];
}

#pragma mark - ADGManagerViewControllerDelegate

- (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 位置情報の扱いについて

また、位置情報サービスを使用される場合、マーケットの規約に従い、ユーザへの通知および同意をお願いいたします。