AndroidアプリにAdMobを組み込んだ際、以下のようなエラーが出て広告が表示されません。今回はこのエラー内容と対処法についてのメモです。
2019-07-30 10:44:03.406 14135-14135/? I/Ads: Use AdRequest.Builder.addTestDevice("3E11A577E9854DE3FEBBA3E4CC4898A9") to get test ads on this device.
2019-07-30 10:44:03.474 14135-14249/? W/Ads: Not retrying to fetch app settings
2019-07-30 10:44:03.492 11929-13922/? W/Ads: App does not have the required permissions to get location
2019-07-30 10:44:03.601 11929-14301/? I/Ads: SDK version: afma-sdk-a-v16187999.15300000.1
2019-07-30 10:44:03.620 14135-14135/? I/Ads: Ad failed to load : 3
2019-07-30 10:44:03.623 14135-14317/? I/Unity: HandleFailedToReceiveAd event received with message: No fill
AdMobで「Ad failed to load : 3」のエラーの対処法1
AdMobのSDK組み込み後にAndroid端末で動作確認を行ったところ、「Ad failed to load : 3」のエラーが出て広告が表示されない現象が発生しました。
上記によると、エラーコード3は以下。
public static final int ERROR_CODE_NO_FILL
The ad request was successful, but no ad was returned due to lack of ad inventory.
Constant Value: 3
こちらのエラーコードが返されるのは、
リクエストは成功しているものの、返せる広告がない為にエラーが出ているということらしい。
あと、下記の記事によると、
If you are getting this error, then your code is correct. The issue is that AdMob does not always have an ad to return for every request. This may happen particularly if you have just registered your AdMob publisher ID, as it takes some time and multiple requests before the new ID starts returning ads.
Another reason your fill rate may be low is that you don't have AdSense backfill enabled, or you have filtered out some ads. Check your app settings to see if that is the case.
以下 Google 翻訳
このエラーが発生した場合は、コードは正しいです。問題は
AdMobには、リクエストごとに返す広告が常にあるとは限りません。
これは、AdMobを登録したばかりの場合に特に発生する可能性があります。
サイト運営者IDは、発行前に時間と複数の要求がかかるため、
新しいIDが広告を返し始めます。
充填率が低いもう1つの理由は、あなたが持っていないということです
AdSenseの埋め戻しが有効になっているか、一部の広告が除外されています。チェック
そうであるかどうかを確認するためのアプリ設定。
一部の広告を除外する設定にしている、もしくはAdMobを登録したばかりの場合に発生する可能性が高いとのこと。
今回、アプリにAdMobを導入する為に、AdMobに新アプリの追加と広告ユニットの新規作成を行いました。(広告の除外設定は行っていません。)
なのでおそらく対処法としては、時間が経つのを待つでいいかと思います。
1〜2日後には正常に広告が表示されるようになるはず?
【追記】2日後正常に広告が表示されるようになりました。
【追記】AdMobで「Ad failed to load : 3」のエラーの対処法2
Firebase経由でAdMobを利用したら、上記同様「Ad failed to load : 3」のエラーが出ました。今回もしばらく待てば広告表示されるようになると思っていたのですが、3〜4日待っても一向に広告が表示されません...
調べていると、以下の記事がヒットしました。
こちらの記事によると、Firebase経由でAdmobを利用している場合に「Ad failed to load : 3」が出た場合、FirebaseとAdmobをリンクさせると解消される可能性があるとのことでした。
僕の場合はリンクさせても改善されませんでした。
【追記】AdMobで「Ad failed to load : 3」のエラーの対処法3
「Ad failed to load : 3」の別パターンとして、AdMobの広告ユニットIDが正しくない場合にもこのエラーが出るようです。
エラーログ的には下記のような感じです。
02-28 15:56:34.796 4385-13044/? I/Ads: SDK version: afma-sdk-a-v20088999.19649000.1
02-28 15:56:35.096 12910-12910/? I/Ads: Ad failed to load : 3
02-28 15:56:35.516 12910-12910/? I/Ads: Use RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("") to get test ads on this device.
02-28 15:56:35.546 12910-12998/? I/Ads: Please set theme of AdActivity to @android:style/Theme.Translucent to enable transparent background interstitial ad.
02-28 15:56:35.546 12910-13127/? W/Ads: Not retrying to fetch app settings
02-28 15:56:35.566 4385-13044/? W/Ads: App does not have the required permissions to get location
上記にあげた2つの方法を試してもダメで、最終的にAdMobの広告ユニットIDが間違っていたことに気づきました。正しい広告ユニットIDを設定したら「Ad failed to load : 3」が出なくなり、正常に広告が表示されるようになりました。
僕の経験が誰かの役に立つことを願いたいと思います。
関連:
AdMobのバナー広告位置を変更すると広告が表示されない場合の対処法【iOSアプリ開発】 - テクノモンキーのアプリ開発日記
AdMobの動画リワード広告が表示されず、"Request Error: No ad to show."のエラーが出る場合の対処法【iOSアプリ開発】 - テクノモンキーのアプリ開発日記