【Unity AdMob】開発ビルドを外すと広告が出ない問題の解決メモ
✅ 環境
- Unity 6000.0.47.f1
- GoogleMobileAds v10.2.0
- Androidビルド
✅ 概要
開発ビルドのチェックを外してリリース用にビルドすると、AdMob広告が一切表示されなくなる。
✅ 結論
Proguardファイルにルールを追加することで解決
(詳細は下記「解決法」を参照)
✅ 経緯
- リリース用にビルドした時、なぜか広告が表示されない(テストIDでも表示されない)
- logcatで確認したところ、以下のエラーが発生:
logcatログ
AndroidJavaException: java.lang.ClassNotFoundException: com.google.android.gms.ads.initialization.OnInitializationCompleteListener
- AdMob(Google Mobile Ads)のJavaクラスが見つからないというエラー。
✅ 原因として考えられる点
- UnityのAndroidビルドにGoogle Mobile Adsの必要なAAR/JARが含まれていない
- バージョン不整合(古いプラグインが古いSDKを要求してるのにない)
-
Proguard/R8でクラスが削除されている
→ だからJava側でそのクラスをロードできない
上から2点は問題なし(最新バージョンをインポート済み、ファイルも特にいじってない)。
つまり Proguard/R8でクラスが削除されている のが原因と推定。
✅ 解決法
UnityのProguardファイルにルールを追加する
ファイルの場所:Assets/Plugins/Android/proguard-user.txt
以下を追記する:
proguard-user.txt
-keep class com.google.android.gms.ads.** { ; }
-keep interface com.google.android.gms.ads.* { *; }
これにより、Google Play Services Ads SDKの全クラスとインターフェースを保護できる。
✅ Unity設定
- Player Settings > Publishing Settings > カスタムプロガードファイルを有効化
✅ External Dependency ManagerでResolve
一応Resolverで「Resolve」する:
Assets > External Dependency Manager > Android Resolver > Resolve
✅ 結果
- これで再ビルドしたところ、広告が無事表示されるようになった!
以上、「リリース用ビルドだと広告が出ない(テストIDでも)」問題 の解決メモでした。
ついでにこの件で作成したゲームでも見て行ってください。

