# 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のインターステーシャル広告が勝手に表示されてしまう問題を修正

連携ADNW一覧

# 対応バージョン

  • Xcode 16.3以降
  • iOS 12.0以降

# 導入の流れ

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

参考

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

# CocoaPodsを使用する

  1. 次の行をプロジェクトのPodfileに追加します

    pod 'AdGeneration'
    
  2. 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
    

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をクリック

手動でインストールする場合

# 手動でインストールする

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

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

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

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

img

  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は不要となりました。

img

  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を押します。

img

img

  1. Other Linker Flagsの設定

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

IMG

# 2. 広告表示を実装する

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

img

  1. 広告を表示するViewControllerで ADG/ADG.h をインポートします
  2. 広告表示用のView(サンプルコードでは adView が該当します)を ViewController#view に追加、またはStoryBoardにて追加します
    ※広告リクエスト前に追加してください
  3. ADGManagerViewController クラスのインスタンスを生成します
  4. 広告リクエストを行います
  5. viewDidAppear で広告のローテーション再開を行います
    ※画面切り替えで本処理を走らせたくない場合は、バックグラウンドからの復帰時に行ってください
  6. 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 位置情報の扱いについて

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

Last Updated: 9/24/2025, 7:52:43 AM