Androidアプリの画面下部に設置したバナー広告が表示されなくなり、Logcatに下記メッセージが出ていました。
Ad failed to load : 3
「3」は「No fill.」というメッセージらしく、表示できる広告がないとのこと。
実装ミスではないらしい。
ちなみにテスト広告は表示されていました。
※完全に表示されないわけではなく、広告に制限が掛かっていた
app-ads.txtがAdMobに承認されていない
AdMobのアプリ一覧の承認状況が「要審査」になっていました。(下図は対応後の状態)

赤枠箇所が「要審査」になっている場合は、app-ads.txtが正しく設置できていません。
もしくはサイト側でクロールを回避するようになっています。
※2025年1月から確認が必要とのこと。

app-ads.txtの設置場所
デベロッパーアカウントに登録しているWebサイトのドメイン直下にapp-ads.txtを設置します。
例)https://ドメイン/app-ads.txt
テキストの内容はAdMobのapp-ads.txtの設定に表示されるコードスニペットをコピペするだけです。


クロールできるようにする
デフォルトでapp-ads.txtをクロールできない設定になっている場合があります。
クロール対象にするにはrobots.txtをサーバーに設置します。(app-ads.txtと同じ階層)
robots.txtの内容は以下。
User-agent: Google-adstxt
Disallow:
これでクロール対象になります。
デベロッパーアカウントにWebサイトを登録していない
app-ads.txtを設置してもWebサイト登録をしていないとクロールされません。
Google Play ConsoleのデベロッパーアカウントにWebサイトを登録しないといけません。

Google Play ConsoleにはWebサイトを登録する箇所が多数あってわかりづらいですが、「ストアの掲載情報に表示する連絡先の詳細」への登録が必要となります。
広告ライブラリ(AdMob SDK)のバージョンが古い
承認状況が「準備完了」になってもバナー広告が表示されませんでした。
調べるとcom.google.android.gms:play-services-adsのバージョンが古いと表示されないとのこと。

最新にしたら表示されるようになりました。
広告リクエスト数が少ない
ストアにリリースして間もないアプリ(トラフィック量が極端に少ないアプリ)は広告表示を制限することがあるらしいです。
インストール数が数件~十数件の場合はその対象になりやすいとのこと。
数十件のインストール数があれば安定して配信されるようです。
