Unityを使ってアプリ開発を行っている方であれば、誰でも広告を実装したいと思うはず。
今日は一般的に実装する広告として用いられる「GoogleAdMob(アドモブ)」の導入方法を解説していきます。
アプリ開発は順調でも広告実装が非常にやっかいなハードルになるので、ぜひ参考にしてトライしてみてください。
ソースコードも置いておきますが各バージョンなど開発環境によっても動作の違いは出てしまいますので、あくまで参考程度になるかと思います。
目次
AdMob導入手順はざっくり以下の通り
- AdMobにアプリを登録する
- AdMobパッケージをダウンロード
- パッケージをUnityにインポート
- アプリIDをUnityに設定する
- AdMobで広告を作成
- コードを書いて広告を実装
①AdMobにアプリを登録する
GoogleAdMobにログインし、サイドバーからアプリを追加していきます。
アプリをリリースするプラットフォームを選択します。
アプリ名を決めます。
ここで決めたアプリ名は正式な名前ではなく、AdMobのページで管理する際の名前になるので自分が分かればOKです。
アプリを追加できたらここまでは完了!
②AdMobパッケージをダウンロード
こちらからパッケージをダウンロードします。
画面をすこしスクロールして、Assetsから最新のものをダウンロードしてください。
③パッケージをUnityにインポート
Unityを開いて、画面上部から、
Assets > Import Package > Custom Package… の順でクリック。
先程ダウンロードしてきたパッケージを選択し、Openをクリック。
※画像では前項目のバージョンと異なっていますが、ダウンロードしたものを選択すればOKです
全てにチェックが入っていることを確認し、Importをクリック。
なんか出てきたら「Yes」をクリック。
うまくインポートできれば、以下の2つがProjectのAssetsの中に追加されます。
- ExternalDependencyManager
- GoogleMobileAds
※ここでエラーにぶち当たったら
パッケージをUnityにインポートすると頻繁にエラーに遭遇するようになります。こんな感じのエラーとか。
こうなったら以下を試してみてください。
まず、画面上部から Unity > Preferences…をクリック。
こんな画面が出てきますので、以下画像の赤枠で囲った部分のチェックを外して戻すという作業をしてみてください。よく分からないのですがこれで直ったりするんですよね。
チェックを操作したら、
Assets > External Dependency Manager > Android Resolver > Resolve
この順でクリック。
Successとなったら今度は、
Assets > External Dependency Manager > Android Resolver > Force Resolve
こちらをクリック。
エラー無く通ればとりあえず解決です。
根本的な解決にはなっていないと思うので、詳しい解決策が分かったら別の記事にします。
④アプリIDをUnityに設定する
次に、AdMobで作ったアプリIDをUnityに設定します。
Assets > Google Mobile Ads > Settings… をクリック。
インスペクターに設定画面が出てくるので、AdMobからアプリIDをコピーして貼り付けます。
アプリIDの調べ方
上記で入力するアプリIDはAdMobから取得できます。
アプリ > すべてのアプリを表示
今回広告を入れたいアプリのIDをコピー。
コピーしたら、Unity側に貼り付けましょう。
⑤AdMobで広告を作成
AdMobで広告を作成しておきます。
AdMobには複数の広告の種類があるのですが、今回はどのアプリにも使いやすいバナー広告を例にします。
まずAdMobで広告を作成します。
画像の文字が小さくてすみませんが、対象のアプリが選択されていることを確認した上で「広告ユニットを追加」をクリックしてください。
いろいろありますが、今回は「バナー」を使います。選択をクリックしてください。
広告に分かりやすい名前を付けて「広告ユニット作成」をクリック。(広告の種類を分かりやすくしましょう)
これで広告の作成は完了。
広告IDはプログラムを書く際に使うので、控えておきましょう。(後からの確認もできます)
⑥コードを書いて広告を実装
最後に、プログラムを書いて広告を実装していきます。
Unityでスクリプトを作成し、以下のコードをコピペしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | using UnityEngine; using System.Collections; using GoogleMobileAds.Api; public class AdMobBanner : MonoBehaviour { private BannerView bannerView; public static AdMobBanner instance; public void Start() { if (instance == null) { instance = this; DontDestroyOnLoad(this.gameObject); } else { Destroy(this.gameObject); } // Google AdMob Initial MobileAds.Initialize(initStatus => { }); this.RequestBanner(); } private void RequestBanner() { #if UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/6300978111"; // 試験用 //string adUnitId = "ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx"; // リリース用 #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/2934735716"; // 試験用 //string adUnitId = "ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx"; // リリース用 #else string adUnitId = "unexpected_platform"; #endif // Create a 320x50 banner at the bottom of the screen. bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom); // Create an empty ad request. AdRequest request = new AdRequest.Builder().Build(); // Load the banner with the request. bannerView.LoadAd(request); } } |
上記コード32行目と36行目を本番用の広告IDに書き換え、リリース直前まではコメントアウトしておいてください。
動作確認には31行目、35行目のIDをそのまま使います。
動作確認中に本番用のIDに切り替えることはAdMobでの違反になりますので注意してください。
また、ご自身のアプリに応じたエラーハンドリング等も追加することをおすすめしますが、上記のままでも動きます。
コードを作れたらUnityのヒエラルキーに空のオブジェクト作り、上記のスクリプトをアタッチしてあげれば完了です!!
ビルドして実機確認し、テスト用の広告が表示されていればOK!
※ビルド時にエラーが発生する場合
上記手順でビルドエラーが発生する場合は以下の記事を参考にしてください。