[Unity] AdMob 広告をAndroidに実装する

Android用のUnityアプリに、AdMob広告を設定する方法について。無料でアプリをリリースすると、しがらみが少なく、仕様変更も気になりませんね。

 

Unity 2019.1.8f1
Android 3.4.1




Google Mobile Ads Unity Plugin

 
相変わらずなのですが、AndroidやAdMobの変更でUnityもいろいろとやり方が変わっています。 
ここでは、シンプルにAdMobeのバナーを貼る方法を試してみます。

その前に、AdMobに登録する必要があります。IDなどをゲットしておきましょう
AdMob に申し込む
 

 

PluginのImport

 
GoogleのページにあるAdMobの設定方法 Get Started これに沿って進めていきます。また、Bannerの作成はバナー広告に沿ってやてみましょう。
 
最初にGoogle Mobile Ads Unity Plugin が必要なので以下のサイトからダウンロードしてください。バージョンによる差分がよくありますので注意してください。
PlugIn Download
 

 
GoogleMobileAds-XXX.unitypackage をダウンロードします
 
Unity のプロジェクトから「Assets」「Import Package」「Custom Package…」
 
admob-android_03
 
ダウンロードしたGoogleMobileAds-XXX.unitypackage を選択します
 
admob-android_04
 
全てチェックが入ったままで「Import」をクリックします。

 

Mobile Ads SDK を追加

 
Android Platform Switch:
「File」「Build Settings」から
Sceneを保存して「Add Open Scenes」でチェックを入れます。
 
「Android」を選択して「Switch Platform」をクリックして
プラットフォームをスイッチします。
 
admob-android_05
 
「Assets」「Play Services Resolver」「Android Resolver」 「Resolve」 を選択します。

Unity Play Services Resolverにより依存関係がAssets/Plugins/Android ディレクトリにコピーされます。

これにより、「Asset」「Plugins」「Android」以下に *.jar, *.aar がコピーされます。
 
admob-android_06
 
これができていない場合はメニューの「Asset」から
「Play Services Resolver」「Android Resolver」「Force Resolve」を試してみます。
 
admob-android_07
 
これができないと広告が出ないので、他にエラーが出ていないか確認してください。

 

AdMobアプリIDを設定

 
「Assets」「Google Mobile Ads」「Settings」を選択

GoogleMobileAdsSettingsが開くので、「Google AdMob」のEnabled チェックボックスをオンにしてAdMob を有効にします。

また、Android に AdMob アプリ ID を入力します。(下の例はテスト用のIDを入れています)

 

スクリプトの作成

 
Googleのサポートページの情報をもとに以下のような簡単なスクリプトファイルを作成します。

C#ファイルを作成してコードを記述
 
AdMob.cs

 
アプリIDと広告ユニットIDはAdMobのコンソールから取得、無い場合はとりあえずテスト用のIDを使って設定の確認はできます。
 
アプリID: ca-app-pub-9999999999999~99999999 のように「〜」が間にある
 
admob-ios_04
 
広告ユニットID: ca-app-pub-9999999999999/99999999 のように「/」がある
 
admob-ios_05
 
「GameObject」「Create Empty」で空のObjectを作りこのスクリプトをドラッグ&ドロップします。
 
admob-android_08
 
Trouble Shooting:
最近気づいたのですが、Mac環境だと問題が少ない。逆にWindowsの場合toolsを変えたり、このAdMobのエラーもWindowsに多い気がします。
 
Switch Platform を実行した時に
Resolution failed
というエラーが小さく下に出ていないでしょうか
Consoleで見ると
Gradle failed to fetch dependencies
ERROR: JAVA_HOME is set to an invalid directory
というエラーが出ています。
 
admob-android_08
Windowsでの環境変数としてJAVA_HOMEを設定しているものが実際のパスに異なるバージョンなのでエラーということです。
 
最近のプラグインで発生しています。以前のバージョン例えば3.6.1では大丈夫です、ただし設定も昔のやり方にしないといけないのですが…
 
この場合は、パスを設定し直せば解決します。
Windowsのケースなので「システムのプロパティ」「詳細設定」
「環境変数」のシステム環境変数の JAVA_HOME のPathを実際のPathに設定します。
 
admob-android_09
 
admob-android_10
 
Pathの設定ではbinを含まないようにします。
例:
C:\Program Files\Java\jdk1.8.0_121
尚、環境変数の変更なのでPCを再起動したほうがいいでしょう

 

Player Settings の設定

 
Debug test の段階であればとりあえず Bundle ID だけでも設定しておきます。
公開用にはアイコンなどの設定が色々あります。
Android アプリ公開手順について
 
これで、Androidを接続してビルド、実行をします。
 

 
IDを実際のものに変えて、デバイスをテスト用にすると「Test Ad」という表示とともに、実際の広告例が表示されます。
また、AndroidManifestにアプリIDを記述する場合があります。
 

 
この設定では広告が画面上になっていますが、画面下にするには
AdPosition.Bottomにすれば広告が下に移動します

 
 
References:
Get Started | Google Mobile Ads SDK for Unity | Google Developers
アプリID | AdMob
AdMob ヘルプセンター