スタートガイド

このガイドは、AdMob で iOS アプリを収益化したいが Firebase を使用していないパブリッシャー様を対象としています。Firebase をアプリに組み込む予定がある場合(または使用を検討している場合)は、このガイドの Firebase と AdMob を使用する をご覧ください。

Google Mobile Ads SDK のアプリへの統合は、広告を表示して収益を得るための第一歩です。SDK を統合したら、サポートされている広告フォーマットを 1 つ以上実装できます。

前提条件

  • Xcode 15.1 以降を使用している
  • iOS 12.0 以降をターゲットとする

Mobile Ads SDK をインポートする

Google Mobile Ads SDK は、次のいずれかの方法でインポートできます。

CocoaPods(推奨)

SDK を iOS プロジェクトにインポートする最も簡単な方法は、CocoaPods を使用することです。プロジェクトの Podfile を開き、アプリのターゲットに次の行を追加します。

pod 'Google-Mobile-Ads-SDK'

次に、コマンドラインから次のコマンドを実行します。

pod install --repo-update

CocoaPods を初めて使用する場合は、CocoaPods の公式ドキュメントで Podfile の作成方法と使用方法をご確認ください。

Swift Package Manager

Google Mobile Ads SDK のバージョン 9.0.0 以降では、Swift Package Manager がサポートされています。Swift パッケージをインポートする手順は次のとおりです。

  1. Xcode で [File] > [Add Packages...] の順に移動して、Google Mobile Ads の Swift パッケージをインストールします。

  2. 表示されたプロンプトで、Google Mobile Ads Swift パッケージ GitHub リポジトリを検索します。

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. Google Mobile Ads の Swift パッケージのバージョンを選択します。 新しいプロジェクトには、[Up to Next Major Version] を使用することをおすすめします。

完了すると、Xcode はパッケージの依存関係の解決とバックグラウンドでのダウンロードを開始します。パッケージの依存関係を追加する方法について詳しくは、Apple の記事をご覧ください。

手動ダウンロード

  1. SDK フレームワークを直接ダウンロードして抽出し、次のフレームワークを Xcode プロジェクトにインポートします。

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  2. プロジェクトのビルド設定で、[Other Linker Flags] に -ObjC リンカーフラグを追加します。

Info.plist を更新する

アプリの Info.plist ファイルを更新して、2 つのキーを追加します。

  1. GADApplicationIdentifier キーとAdMob app ID found in the AdMob UIの文字列値。

  2. Google(cstr6suwn9.skadnetwork)およびこれらの値を Google に提供した一部のサードパーティ購入者に対する SKAdNetworkIdentifier 値を含む SKAdNetworkItems キー。

スニペット全文

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</string>
<key>SKAdNetworkItems</key>
<array>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>cstr6suwn9.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4fzdc2evr5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4pfyvq9l8r.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>2fnua5tdw4.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ydx93a7ass.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>5a6flpkh64.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>p78axxw29g.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v72qych5uu.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ludvb6z3bs.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>cp8zw746q7.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3sh42y64q3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>c6k4g5qg8m.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>s39g8k73mm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3qy4746246.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>f38h382jlk.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>hs6bdukanm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v4nxqhlyqp.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>wzmmz9fp6w.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>yclnxrl5pm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>t38b2kh725.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>7ug5zh24hu.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>gta9lk7p23.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>vutu7akeur.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>y5ghdn5j9k.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>n6fk4nfna4.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v9wttpbfk9.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>n38lu8286q.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>47vhws6wlr.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>kbd757ywx3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>9t245vhmpl.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>eh6m2bh4zr.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>a2p9lx4jpn.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>22mmun2rn5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4468km3ulz.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>2u9pt9hc89.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>8s468mfl3y.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>klf5c3l5u5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ppxm28t8ap.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ecpz2srf59.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>uw77j35x4d.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>pwa73g5rt2.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>mlmmfzh3r3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>578prtvx9j.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4dzt52r2t5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>e5fvkxwrpn.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>8c4e2ghe7u.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>zq492l623r.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3rd42ekr43.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3qcr597p9d.skadnetwork</string>
  </dict>
</array>

AdMob アカウントの作成アプリの登録をまだ行っていない場合は、ここで行うことをおすすめします。

実際のアプリでは、サンプルアプリ ID を実際のAdMob アプリ ID に置き換えます。Hello World アプリで SDK を試すだけの場合は、サンプル ID を使用できます。

Mobile Ads SDK を初期化する

広告を読み込む前に、GADMobileAds.sharedInstancestartWithCompletionHandler: メソッドを呼び出します。このメソッドは SDK を初期化し、初期化の完了後(または 30 秒のタイムアウト後)に完了ハンドラをコールバックします。この処理は 1 回だけ行います(アプリの起動時に行うのが理想的です)。できるだけ早く startWithCompletionHandler: を呼び出す必要があります。

AppDelegatestartWithCompletionHandler: メソッドを呼び出す方法の例を次に示します。

AppDelegate.m の例(抜粋)

Swift

import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    GADMobileAds.sharedInstance().start(completionHandler: nil)

    return true
  }

}

Objective-C

@import GoogleMobileAds;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  [GADMobileAds.sharedInstance startWithCompletionHandler:nil];
  return YES;
}

@end

メディエーションを使用している場合は、完了ハンドラが呼び出されるまで待ってから広告を読み込むことをおすすめします。これにより、すべてのメディエーション アダプタが確実に初期化されます。

広告フォーマットを選択

これで、Mobile Ads SDK のインポートと初期化が完了し、広告を実装する準備が整いました。 AdMob にはさまざまな広告フォーマットが用意されているため、アプリのユーザー エクスペリエンスに最適なものを選択できます。

デバイス画面の上部か下部に表示される長方形の広告です。 アプリの操作中は画面に表示され続けますが、一定時間が経過すると自動的に更新されるよう設定できます。モバイル広告を初めてお使いの場合は、この広告から始めることをおすすめします。

バナー広告を実装する

インタースティシャル

ユーザーが閉じるまでアプリのインターフェース上に全画面表示される広告です。ゲームのレベルが切り替わる合間やタスクが完了した直後など、アプリの実行フローが自然に一時停止するタイミングでの使用に適しています。

インタースティシャル広告を実装する

ネイティブ

アプリのデザインに合わせてカスタマイズできる広告です。配置方法と場所を指定できるため、アプリのデザインとレイアウトが統一されます。

ネイティブ広告を実装する

特典

短い動画を視聴したり、体験プレイ広告やアンケートを操作したユーザーに特典を提供する広告。無料アプリの収益化に適している。

リワード広告を実装する