自作ゲームに広告を表示するようにしよう
unityで自作したゲームに対しadmob広告を表示させようと
したのですが、エラーなど出ていないのになぜか表示されない…
何度も公式のスタートガイドを見直したり、youtubeでadmob広告の
貼り方を解説している動画を見たのですが
自分がやった手順に差異が見つけられなく3日ほど試行錯誤しました。
本当に迷宮入りしそうでした。
そこで空のプロジェクトを作り、admob広告を表示するための手順のみを
行ってみました。
これも何度も何度も同じような事をやり続けました。
で、色々した結果やっと広告が表示されたので、内容を記載していきます。
私のローカルのUnityのバージョンとMobile Ads Unityプラグインのバージョンは以下
Unityのバージョン:2019.3.13f1 Personal
importしたMobile Ads Unity プラグイン:adGoogleMobileAds-v5.1.0
原因は何だったのか?
まず原因は題名に書いた通りで
Mobile Ads Unityプラグインのimportでエラーが発生していました。
エラーの内容は環境変数であるJAVA_HOMEが定義されていない
という感じでした。
ただUnity Hubの「モジュールを加える」から既にOpenJDKをインストール済みです。
OpenJDKがインストール済みの状況下でJAVA_HOMEを参照する必要あるのか?
がよく分からなかったのですが、そんな中見つけたのかこちらの内容
https://stackoverflow.com/questions/56722286/how-to-fix-java-home-environment-references-a-directory-in-unity3d
ここに記載されているのはSDKについてなのですが
Edit➡Preferences➡External Toolsには同じ場所にJDKのチェックボックスも
存在しているため、このチェックボックスをオフ→Browserをクリックし、そのままフォルダを変更せずに選択をクリック→チェックボックスをオン
を行った後、
Assets➡External Dependancy Manager➡Android Resolver➡Force Resolve
を実行したところ
android Dependencies
Resolution Succeeded
が表示されました。
その後は公式のスタートガイドやバナー広告を参照に作業を行っていき
adb install XXX.apk
で実機にアプリをインストール。
アプリを実行するとちゃんとテスト広告が表示されました!
なんでこんなに苦労したのか…
なぜこんなに苦労したのかというと
importでエラーが表示されていても
Assets➡External Dependancy Manager➡Android Resolver➡Resolve
では
android Dependencies
Resolution Succeeded
が表示されるんです。
しかもC#スクリプトに広告用のコードを記載していって
ゲームを開始してもエラーは起きませんでした。
つまりimportでエラーが起きていても
それ以降の手順では何も問題が起こっていないように見えてしまうんです。
これにより問題を捉えるまでに時間が掛かってしまいました。
(importでエラー起こってるんだから、ちゃんとそこ解決しろよって
話ですよね。。。)
とりあえず実装できてよかった。