こんにちは。ざわかける!のざわ(@zw_kakeru)です。
先日、『【Flutter/Dart】google_mobile_ads導入エラー奮闘記』の記事を書いた際に書ききれなかった(しょうもなさすぎる)エラーをこちらに記しておきます。
アプリIDを取得して正しく記載したはずなのに上手く動かなかった、という内容となっています。
動作環境
macOS: 11.2.2 (Big Sur) Flutter: 2.0.1 Dart: 2.12.0 Visual Studio Code: 1.53.2
やったこととエラーの内容
Flutter公式動画を参考にしつつ、Google AdMobでアカウントと広告ユニットを作成し、表示されたIDをandroid/app/src/main/AndroidManifest.xmlにメタデータとして追記しました。
// (略) //
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-XXXXXXXXXXXXXXX/XXXXXXXXXXX" />
</application>
</manifest>
実行すると以下のエラーが表示されました。
* The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers * * should follow the instructions here: * * https://googlemobileadssdk.page.link/admob-android-update-manifest * * to add a valid App ID inside the AndroidManifest. * * Google Ad Manager publishers should follow instructions here: * * https://googlemobileadssdk.page.link/ad-manager-android-update-manifest. *
「AndroidManifestにAppIDを正しく追加してね」と言われています。
おかしいな。きちんとAppIDを追加したはずなのに。
公式ドキュメントを読んでもそれ以上の情報を見つけることはできませんでした。
原因と対処
Google AdmobにはAppIDとは別に広告ユニットIDが存在し、私は勘違いしてこちらを指定していたようです。。
Google Admobから該当する広告ユニットを選択し、「実装手順」をクリックします。
そこから表示されるアプリID(AppID)を確認し、これを先ほどのAndroidManifest.xmlに記載しましょう。

実行。解決。
広告ユニットIDは実際にWidgetを作成する時に必要になりますが、リリースする直前までは公式が用意してくれているテスト用のIDを使用しましょう。
終わりに
同じようなIDが二種類あると気づかず、勘違いしてしまいました。
フォーマットも「ca-app-pub-XXXXXXXXXXXXXXX/XXXXXXXXXXX」の形で一緒であり、「実装手順」を開かないと確認できないとは、、、
(他の確認方法もありそうですけど。)