この記事では、UnityのAndroid12(API Level 31)のバージョンに向けて作ったアプリにAdmobを対応させる方法を解説していきたいと思う。
というのも、このバージョンでAdmobを対応させるのに死ぬほど苦しんだのでぜひとも方法を共有したいのと、自分の備忘録もかねて書いていこうと思う。
Unityの環境→2021.3.9f1
まず、空のプロジェクトを用意する。なぜなら、既存のプロジェクト上でAdmobを実装させてエラーが起こった場合、既存の機能がAdmobに悪さをしているのか、それともAdmobの実装方法が悪いのか分からないから。
そんで、空のプロジェクトのAndroidのTargetAPILevelを31とする。
Admobを実装する際は基本的に以下のサイトを参考に実装する。マジで良記事。ただし、これ通りやっても自分はAndroid12には対応できなかった。また、ダウンロードするAdmobのPluginのバージョンは7.2.0とする。(ちなみに自分はバージョン6.?.?で実装しようとしたが全くできずに7に上げたらやっとできた)
次に以下のサイトを参考にしながら、Edit>Preferences>External tools>Gradle Installed with Unityの場所にGradle6.1.1のファイルを入れて、Gradle Installed with Unityのチェックを外す。
ここまで終わったら一度テスト広告で実機ビルドしてみる。自分はここでビルドでき、なお且つテスト広告も作動した。作動しなかったら、広告IDやアプリIDを設定したか、テスト用と本番用のIDを取り違えていないかを確認
ちなみにテスト広告で成功しても、本番広告で実装すると、AndroidXをtrueにしろというエラーが起こるから以下の施策を打つ必要がある。
以下のサイトを参考に、
mainTemplateにimplementation ‘androidx.work:work-runtime-ktx:2.7.0’を入れるところはなにもやらずに、(ここいじったらエラー出てしまった)
gradleTemplate.propertiesを開いて、サイトと同じでtrueが元からあったから、trueを消してまた書き直して保存とか言う意味の分からないことをしたら実機ビルドで本番広告を出すことに成功。(ファイルを読み込ますためなのか??)
実機で本番広告を出すことに成功したら、今度は既存のプロジェクト上でも今と全く同じ手順で広告実装をしてみると、本番広告をアプリに表示させることに成功した。
これで失敗したら、既存のプロジェクト自体のどこかがおかしいのかもしれない。
またついでに、この状態のままだとapp-ads.txtファイルの設定をしていないので、ここの設定を怠ってしまうと収益が大幅に減少することがあるみたい(?)
そのため、以下の記事を参考に設定すると良いだろう。
Admobの実装は詰まるとキツイので、この記事が解決の一助になれたら嬉しいです。
コメント