iOS AdMob ads not showing up unless on Test Device

-(void)adViewDidReceiveAd:(GADBannerView *)bannerView;
-(void)adView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(GADRequestError *)error;

There can be number of reasons for not showing the Live ads.

  1. Check your google admob account for the payment info. If not filled, fill it.
  2. Check if your device is registered as test device, else you may get suspension from the google for 30 days or so.
  3. You can check the delegate methods and print the logs:

In my case, I was getting error as { 'error': 'Request Error: No ad to show.', 'adType':'banner' }

But it showed at the client side, after I delivered to the client. So, I think that this issue was due to the reason that google had no advertisements in my region.


If you are working with iOS10, you should add this to your .plist:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSAllowsArbitraryLoadsForMedia</key>
    <true/>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
</dict>

Only test ads will appear otherwise. You can find more details about it at Firebase's Admob documentation.