MENU

【expo+react native】admob導入時に気を付けるべき点

admobをアプリに導入するのに二日かかりました・・・。(未だにわからない)
本当に辛かった。

とりあえず、今後同じミスが起きた時に対処できるように、まとめておきます。

目次

✅【AdMob導入失敗の原因と解決法まとめ】

種類問題内容原因解決方法
🧱 ビルド失敗adaptive-icon.png がないapp.json"android.adaptiveIcon" に画像パス指定 → ファイルが存在しないassets/adaptive-icon.png を追加(1024×1024 PNG)
⚠ ライブラリ競合Kotlinバージョン不一致react-native-google-mobile-ads@15.0.0 が Kotlin 2.1.0 使用、Expoは1.9.014.7.0 にバージョンを下げる(互換性あり)
💥 実機クラッシュアプリ起動直後に落ちるapp.jsonmeta-data + plugins 両方記述 → AdMob App ID 二重設定meta-data を削除し、plugins だけにAdMob IDを記述
🧨 SDK未初期化AdMobの初期化コードを忘れていたmobileAds().initialize() を未記述App.jsuseEffect 内に initialize() を1回だけ書く
📉 広告表示失敗インタースティシャル広告が出ないinterstitial.load() 忘れ/初期化が間に合ってない起動時に読み込む+interstitial.loadedでチェックしてからshow()
❌ テスト時の混乱Expo Goで広告が表示されないExpo Goではネイティブ機能非対応(仕様)expo-dev-client.apkで実機テスト

🔁【次回のチェックリスト(保存版)】

🔧 AdMob設定まわり

  • app.jsonpluginsだけで AdMob App ID を指定しているか?
  • android.meta-data の設定が 残っていないか確認したか?
  • expo-ads-admob使っていないか?(使うのは react-native-google-mobile-ads
  • AdMobのアプリIDと広告ユニットIDがテスト用であることを確認

🧠 初期化コード

import mobileAds from 'react-native-google-mobile-ads';
useEffect(() => {
  mobileAds().initialize();
}, []);
  • 上記コードが App.js に入っているか?
  • 依存配列は空([])で1回だけ実行するようになっているか?

📱 実機テスト前

  • interstitial.load() を起動時に実行しているか?
  • interstitial.loaded を確認してから .show() しているか?
  • adb logcatInvalid application ID が出ていないか?

📦 ビルド時の注意点

  • expo start --clear もしくは eas build --clear-cache を使用したか?
  • adaptive-icon.png/assets に存在しているか(PNG形式、1024×1024)?
  • .apk を実機にインストールして、起動確認&広告表示まで確認済みか?

🎯 結論:未来の自分へ

  • 「ビルドが通っても油断するな、アプリはクラッシュする」
  • 「設定は1つミスっただけで地獄を見る。特にAdMob」
  • 「ChatGPTに頼るときも、公式ドキュメントと自分の目で最終確認を」
  • 「困ったらまずは adb logcat。雰囲気じゃなくて証拠を掴め
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次