Google Mobile Ads SDK のアプリへの統合は、広告を表示して収益を得るための第一歩です。SDK を組み込んだら、サポート対象広告フォーマットの実装作業に進めます。
前提条件
- Xcode 16.0 以降を使用していること
- iOS 12.0 以降をターゲットに設定していること
Mobile Ads SDK をインポートする
次のいずれかの方法で Google Mobile Ads SDK をインポートします。
Swift Package Manager
プロジェクトにパッケージの依存関係を追加するには、次の手順を行います。
Xcode で File > Add Package Dependencies... を開き、Google Mobile Ads の Swift パッケージをインストールします。
表示されたプロンプトで、Google Mobile Ads の Swift パッケージの GitHub リポジトリ(下記)を検索します。
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
使用する Google Mobile Ads の Swift パッケージのバージョンを選択します。新しいプロジェクトの場合は [Up to Next Major Version] を選択することをおすすめします。
CocoaPods
続行する前に、CocoaPods の使用で Podfile の作成方法と使用方法をご確認ください。
CocoaPods を使用する手順は次のとおりです。
プロジェクトの Podfile を開き、アプリの
target
ビルド構成に次の行を追加します。pod 'Google-Mobile-Ads-SDK'
ターミナルで次のコマンドを実行します。
pod install --repo-update
手動ダウンロード
Google Mobile Ads SDK をダウンロードし、次のフレームワークを Xcode プロジェクトに
Embed & Sign
します。GoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
プロジェクトのビルド設定で:
- Runpath Search Paths に
/usr/lib/swift
パスを追加します。 - Other Linker Flags に
-ObjC
リンカーフラグを追加します。
- Runpath Search Paths に
Info.plist を更新する
アプリの Info.plist
ファイルを更新し、次の 2 つのキーを追加します。
アド マネージャー アプリ ID の文字列値を含む
GADApplicationIdentifier
キー。アド マネージャーの UI で確認できます。形式はca-app-pub-################~##########
です。Google の
SKAdNetworkIdentifier
値(cstr6suwn9.skadnetwork
)を含むSKAdNetworkItems
キー。これらの値を Google に提供したサードパーティの購入者を選択します。
スニペットを完成させる
<key>GADApplicationIdentif<ier/ke<y> !-- Sample Ad Manager app ID: ca-app-pub-3940256099942544~1458002>5<11 -- string>SAMP<LE_APP_ID</string> key>S<KAdNet<workItems</key> a<rray> dict> k<ey>SKAd<NetworkIdentifier/key> < string><cstr6suwn<9.skadnetw<ork/string> /dict><; dict&g<t; key>SKAdNetworkIden<tifier/key&<gt; s<tring>4<fzdc2evr5.skadnetwork/str<ing> </dict> dict> key&<gt;SKAdNetw<orkIdenti<fier/key&g<t; string>2fnua5td<w4.skadnet<work/string> /dict> < dict> < key><;SKAdNetwo<rkIdentifier/key> <string><ydx93a7ass.skadnetwork/string<> /dic<t> d<ict> < key>SKAdNetworkIdent<ifier/key&<gt; string>p78axxw29g.<skadnetwork</string&g<t; /dict<> dict> key&g<t;SKAdNetw<orkIdentifier/key> str<ing>v72q<ych5uu.sk<adnetwork/<string> /dict> <dict> < key>SKAdNetworkIdentifi<er/key> < strin<g>ludvb<6z3bs.skadnetwork/string&<gt; /dic<t> dict> key>S<KAdNetworkI<dentifier</key> < string>cp8zw746q7.s<kadnetwork</string> /dict> dic<t> k<ey>SKA<dNetworkId<entifier/key> stri<ng>3sh4<2y64q3.skadnetwork/string>< /dict><; dict&<gt; ke<y>SKAdNetworkIdentifie<r/key> < string>c6k4g5qg8m.skad<network/str<ing> < /dict>< dict> key>SK<AdNetworkI<dentifier/key> string&<gt;s39g8k73<mm.skadne<twork/stri<ng> /dict> dict<> k<ey>SKAdNetworkIdentifier/k<ey> <string><;3qy474624<6.skadnetwork/string> < /dict><; dict> key>SKAdN<etworkIdent<ifier/key<> s<tring>f38h382jlk.skadn<etwork/str<ing> /dict> dict><; key&g<t;SKAdNet<workIdenti<fier/key> string&g<t;hs6bduka<nm.skadnetwork/string> /<dict> <dict> < key><;SKAdNetworkIdentifier/ke<y> <string>mlmmfzh3r3.skadnetw<ork/string&<gt; /di<ct> d<ict> key>SKAdNe<tworkIdent<ifier/key> string>v<4nxqhlyqp.s<kadnetwor<k/string&g<t; /dict> dict>< key&g<t;SKAdNetworkIdentifier/key&g<t; stri<ng>wzm<mz9fp6w.sk<adnetwork/string> /d<ict> <dict> key>SKAdNetwo<rkIdentifie<r/key>< strin<g>su67r6k2v3.skadnetwo<rk/string&<gt; /dict> dict> < key>SK<AdNetwork<Identifier</key> string>yc<lnxrl5pm.s<kadnetwork/string> /dict<> dict<> <key>SKA<dNetworkIdentifier/key><; stri<ng>t38b2kh725.skadnetwork/<string> < /dict&g<t; dict&<gt; key>SKAdNetwor<kIdentifie<r/key> string>7ug5z<h24hu.skadn<etwork/st<ring> < /dict> dict> < key>SK<AdNetworkIdentifier/key> < string&g<t;gta9lk7<p23.skadne<twork/string> /dict&<gt; dict<> key>SKAdNetworkId<entifier/ke<y> < string><;vutu7akeur.skadnetwork/s<tring> < /dict> dict> ke<y>SKAdNe<tworkIden<tifier/key<> string>y5ghdn<5j9k.skadn<etwork/string> /dict>< dict>< key&<gt;SKAdNet<workIdentifier/key> < string&g<t;v9wttpbfk9.skadnetwork/stri<ng> /d<ict> < dict> < key>SKAdNetworkIde<ntifier/ke<y> string>n38lu8286<q.skadnetwo<rk/string<> /di<ct> dict> key<>SKAdNe<tworkIdentifier/key> s<tring>47<vhws6wlr.<skadnetwor<k/string> /dict> < dict>< key>SKAdNetworkIdenti<fier/key><; str<ing>kbd<757ywx3.skadnetwork/strin<g> /d<ict> dict> key><;SKAdNetwor<kIdentifi<er/key>< string>9t245vhmpl<.skadnetwo<rk/string> /dict> d<ict> < key>S<KAdNetwork<Identifier/key> st<ring>a2<p9lx4jpn.skadnetwork/string&g<t; /dict&<gt; dic<t> <key>SKAdNetworkIdentif<ier/key><; string>22mmun2rn5.sk<adnetwork/s<tring>< /dict&g<t; dict> key><SKAdNetwor<kIdentifier/key> strin<g>44jx67<55aq.skad<network/st<ring> /dict> di<ct> < key>SKAdNetworkIdentifier</key> < string&<gt;k674qke<vps.skadnetwork/string><; /dict&<gt; dict> key>SKA<dNetworkIde<ntifier/k<ey> < string>4468km3ulz.ska<dnetwork/s<tring> /dict> dict&<gt; key<>SKAdN<etworkIden<tifier/key> string<>2u9pt9<hc89.skadnetwork/string> < /dict> < dict><; key&<gt;SKAdNetworkIdentifier/<key> < string>8s468mfl3y.skadne<twork/strin<g> /<dict> < dict> key>SKAd<NetworkIde<ntifier/key> string><;klf5c3l5u5<.skadnetw<ork/string<> /dict> dict&g<t; key<>SKAdNetworkIdentifier/key<> st<ring>p<pxm28t8ap.<skadnetwork/string> </dict> < dict> key>SKAdNet<workIdentif<ier/key&g<t; str<ing>kbmxgpxpgc.skadnet<work/strin<g> /dict> dict> < key><SKAdNetwo<rkIdentifi<er/key> string><uw77j35x4d<.skadnetwork/string> /di<ct> di<ct> < key>S<KAdNetworkIdentifier/key&<gt; st<ring>578prtvx9j.skadnetwor<k/string><; /di<ct> 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 アプリに送られるため、初期化に必要な時間が長くなる可能性があります。
Mobile Ads SDK を初期化する
広告を読み込む前に、GADMobileAds.sharedInstance
で start()
メソッドを呼び出します。このメソッドは SDK を初期化し、初期化が完了(または 30 秒間のタイムアウトが経過)した時点で完了ハンドラをコールバックします。できるだけ早く start()
を呼び出してください。
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];
広告フォーマットを選択する
Mobile Ads SDK がインポートされて初期化が完了したら、いよいよ広告を実装します。アド マネージャーにはさまざまな広告フォーマットが用意されており、アプリのユーザー エクスペリエンスに合わせて最適なものを選択できます。
バナー
バナー広告ユニットには、アプリのレイアウト内の一部分を使用する長方形の広告が表示されます。設定した時間が経過すると自動的に更新されます。そのため、アプリで同じ画面を表示していてもユーザーには定期的に新しい広告が表示されます。また、バナー広告ユニットは最も簡単に実装できる広告フォーマットでもあります。
インタースティシャル
インタースティシャル広告ユニットでは、アプリに全画面広告が表示されます。この広告ユニットは、アプリの流れが自然に途切れるタイミングや画面の切り替え時(ゲームアプリでレベルをクリアした後など)に配置します。
ネイティブ
ネイティブ広告は、広告見出しや行動を促すフレーズなどのアセットをアプリに表示する方法を自由にカスタマイズできる広告フォーマットです。広告のスタイルを自分で設定することで、コンテンツの邪魔にならないように広告を表示し、ユーザー エクスペリエンスを向上させることができます。
Google アド マネージャーでは、ネイティブ広告を実装する方法として、ネイティブ スタイルとカスタム レンダリングによる標準ネイティブ広告の 2 種類が用意されています。
ネイティブ スタイルは、ネイティブ広告の実装を簡素化するために設計されているため、このフォーマットにまだ慣れていないユーザーにとって最適な選択肢です。カスタム レンダリングは、より自由に内容を構成できるよう設計されています。
ネイティブ スタイルを実装する ネイティブ広告を実装する(カスタム レンダリング)
特典
リワード広告ユニットを使用すると、ゲームをプレイしたり、アンケートに答えたり、動画を視聴したりしたユーザーに報酬として、コイン、追加ライフ、ポイントなどのアプリ内アイテムを進呈できます。広告ユニットごとに異なる報酬を設定し、ユーザーが受け取る報酬の値やアイテムを指定できます。
リワード インタースティシャル
リワード インタースティシャルは、アプリの画面が変わる自然なタイミングで自動的に表示される広告に対して報酬(例: コイン、追加ライフ)を提供できる、新しいタイプのインセンティブ広告フォーマットです。
リワード広告とは異なり、ユーザーはリワード インタースティシャルを表示するためにオプトインする必要はありません。
リワード広告のオプトイン プロンプトの代わりに、リワード インタースティシャルでは、報酬について通知し、ユーザーが希望する場合にはオプトアウトできる選択肢を提示する導入画面が必要です。
アプリ起動
アプリ起動時広告は、ユーザーがアプリを開いたときや、アプリに戻ったときに表示される広告フォーマットです。広告は読み込み画面にオーバーレイ表示されます。