広告を配信して収益を得るには、iOS アプリに Google Mobile Ads SDK を統合します。プロジェクトを準備するには、広告をリクエストする前に Google Mobile Ads SDK をインポートして初期化します。
このガイドでは、Google Mobile Ads SDK のインポートと初期化、広告フォーマットの選択について説明します。
前提条件
続行する前に、次の点をご確認ください。
- Xcode 16.0 以降を使用していること。
- iOS 13.0 以降をターゲットとしていること。
Google Mobile Ads SDK をインポートする
Google Mobile Ads SDK をインポートするには、次のいずれかのセクションの手順を完了してください。
Swift Package Manager
プロジェクトにパッケージの依存関係を追加するには、次の手順を行います。
- Xcode を開きます。
- [File] > [Add Package Dependencies...] の順に移動します。
Google Mobile Ads SDK の Swift パッケージをインストールします。
表示されたプロンプトで、Google Mobile Ads の Swift パッケージの GitHub リポジトリ(下記)を検索します。
https://github.com/googleads/swift-package-manager-google-mobile-ads.git使用する Google Mobile Ads SDK の Swift パッケージのバージョンを選択します。新しいプロジェクトの場合は [Up to Next Major Version] を選択することをおすすめします。
CocoaPods
CocoaPods を使用する手順は次のとおりです。
プロジェクトの Podfile を開き、アプリの
targetビルド設定に次の行を追加します。pod 'Google-Mobile-Ads-SDK'
ターミナルで以下を実行します。
pod install --repo-update
手動ダウンロード
Google Mobile Ads SDK を手動でダウンロードには、次の手順を行います。
- Google Mobile Ads SDK をダウンロードします。
googlemobileadssdkios.zipパッケージを展開します。Xcode プロジェクトに次のフレームワークを追加します。
GoogleMobileAds.xcframeworkUserMessagingPlatform.xcframework
ターゲットの [General] 設定で、[Frameworks, Libraries, and Embedded Content] に移動します。
GoogleMobileAds.xcframeworkとUserMessagingPlatform.xcframeworkが [Embed & Sign] に設定されていることを確認します。プロジェクトのビルド設定で、次の手順を実行します。
- [Runpath Search Paths] に
/usr/lib/swiftパスを追加します。 - [Other Linker Flags] に
-ObjCリンカーフラグを追加します。
- [Runpath Search Paths] に
Info.plist ファイルを更新する
アプリの Info.plist ファイルに次のキーを追加します。
アド マネージャーの管理画面で確認できるアド マネージャー アプリ ID の文字列値を含む、
ca-app-pub-################~##########の形式のGADApplicationIdentifierキー。SKAdNetworkItemsキー。このキーには、Google のcstr6suwn9.skadnetworkと一部のサードパーティ購入者のSKAdNetworkIdentifier値が含まれます。
サンプルコードの全文
<key>GADApplicationIdentifier</key>
<!-- Sample Ad Manager app ID: ca-app-pub-3940256099942544~1458002511 -->
<string>SAMPLE_APP_ID</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>2fnua5tdw4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ydx93a7ass.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>wg4vff78zm.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>mlmmfzh3r3.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>su67r6k2v3.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>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>a2p9lx4jpn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>22mmun2rn5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>44jx6755aq.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>k674qkevps.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>kbmxgpxpgc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>uw77j35x4d.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>tl55sbb4fm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>c3frkrj4fj.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>3rd42ekr43.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>97r2b46745.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qcr597p9d.skadnetwork</string>
</dict>
</array>SAMPLE_APP_ID は、ご自身のアド マネージャー アプリ ID に置き換えてください。テスト中は、前の例に示したサンプルアプリ ID を使用してください。
アプリの初期化を高速化するには、収益グループを特定のアプリにリンクします。収益グループが iOS をターゲットとしているものの、アプリにリンクされていない場合、そのグループはアカウント内のすべての iOS アプリに送信されます。この方法では、パフォーマンスが低下する可能性があります。
Google Mobile Ads SDK を初期化する
広告を読み込む前に、GADMobileAds.sharedInstance プロパティから start() メソッドを呼び出して Google Mobile Ads SDK を初期化します。このメソッドは、Google Mobile Ads SDK とメディエーション アダプタの処理が完了した後、または 30 秒経過した後に、完了ハンドラを呼び出します。
次の例では、Google Mobile Ads SDK を初期化します。
Swift
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
SwiftUI
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
Objective-C
// Initialize the Google Mobile Ads SDK.
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
初期化時に、startWithCompletionHandler: メソッドを呼び出すと、Google Mobile Ads SDK によって広告がプリロードされたり、サードパーティの SDK が初期化されたりする場合があります。欧州経済領域(EEA)、英国、またはスイス内のユーザーから同意を得る必要がある場合は、リクエスト固有のフラグを設定します。リクエスト固有のフラグを設定する必要がある場合は、Google Mobile Ads SDK を初期化する前に必ずフラグを設定してください。詳しくは、ターゲティングをご覧ください。
広告フォーマットを選択する
Google Mobile Ads SDK をインポートしたら、実装する広告フォーマットを選択できます。
アド マネージャーでは、次の広告フォーマットを使用できます。
| 広告フォーマット | 説明 | ドキュメント |
|---|---|---|
| バナー | アプリ レイアウトの一部分に長方形の広告を表示します。この広告は、設定した間隔で自動的に更新されます。ユーザーが同じ画面に留まっているとき、これらの広告が一定の間隔で表示されます。 | バナー広告を設定する |
| インタースティシャル | アプリに全画面広告を表示します。この広告は、アプリの流れが自然に途切れるタイミングや画面の切り替え時(ゲームアプリでレベルをクリアした後など)に配置されます。 | インタースティシャル広告 |
| ネイティブ | アプリで広告見出しや行動を促すフレーズなどのアセットをカスタマイズできます。広告をカスタマイズすると、アプリのビジュアル デザインに合わせた広告を作成できます。 | ネイティブ広告を読み込む |
| リワード | ユーザーは、ゲームをプレイする、アンケートに回答する、または動画を視聴することによって、コインやポイントなどのアプリ内報酬を獲得します。広告ユニットに対して報酬を設定し、ユーザーが受け取る報酬の値やアイテムを指定できます。 | リワード広告 |
| リワード インタースティシャル | アプリの画面が変わるタイミングで表示される広告に対して報酬(例: コイン、追加ライフ)を提供できます。 | リワード インタースティシャル広告 |
| アプリ起動 | ユーザーがアプリを開いたとき、またはアプリに戻ったときに表示されます。広告は読み込み画面に重ねて表示されます。 | アプリ起動時広告 |