はじめに
firebase_admob を使っていて、本番用のバナー広告が表示されず苦労したので、それについてまとめます。
この記事では、 本番用のバナー広告だけ表示されない 場合を扱います。
チェック項目
- admobでお支払い情報を入力しているか?
- app id が間違っていないか?
- unit id が間違っていないか?
- admobとfirebaseの連携はできているか?
- アプリストア公開後数時間が経過しているか?
以下でこれらの詳細を説明します。
1. admobでお支払い情報を入力しているか?
admobの画面がこのように「お客様のアカウントは確認中です」と表示されている場合、本番用の広告は表示されません。

これを直すには、「お支払い情報」を入力する必要があります。
上の画像の左サイドバーの「お支払い」から、お支払い情報を登録しましょう(Safariの場合お支払い画面でインジケータが回っているだけで何も進まない場合があるので、Chromeでアクセスするように気をつけてください)。
2. app id が間違っていないか?
add idの確認
「アプリ」 > 「アプリの設定」 にある「アプリID」をメモしましょう。

app idの設定
先ほどメモした「アプリID」を設定します。
アプリのエントリーポイントとなるStatefulWidget
FirebaseAdMob.instance.initialize(appId: 'ca-app-pub-bbb~aaa');
app/src/main/AndroidManifest.xml
</activity>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-bbb~aaa"/>
</application>
</manifest>
ios/Runner/info.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
/* 中略 */
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-ddd~ccc</string>
</dict>
</plist>
3. unit id が間違っていないか?
unit idの確認
「アプリ」 > 「広告ユニット」 にあるca-pubから始まる文字列をメモしましょう。

unit idの設定
先ほどメモした「広告ユニットID」を設定します。
BannerAd(
adUnitId: 'ca-app-pub-yyy/xxx', # ユニットID
size: AdSize.smartBanner,
targetingInfo: targetingInfo,
listener: (MobileAdEvent event) {},
);
4. admobとfirebaseの連携はできているか?
「アプリ」 > 「アプリの設定」 > 「リンクされたサービス」でFirebaseと連携させましょう。

5. アプリストア公開後数時間が経過しているか?
こちら @glassmonkey さんからコメントをいただきましたので、追加いたしました。
アプリストア公開後数時間じゃないと広告が表示されなかったので、念のため情報共有です。
終わりに
その他、ハマりポイントがあればコメントしていただけると嬉しいです!