Home » Android » android – Admob ads not showing up

android – Admob ads not showing up

Posted by: admin May 14, 2020 Leave a comment

Questions:

I am trying to implement Admob in Android and I am seeing requests coming into AdMob. However, I am not seeing the Admob ads being displayed on the Android screen in the emulator and my Android test phones as well.

As stated before, I can see the requests coming into my AdMob account. However, the content is not being shown. Is there something that needs to be enabled in my account, the main.xml, AndroidManifest.xml, or in the loading of the application?

My application configuration and code are below. Please advise on what is needed. Thanks!

AndroidManifest:

          <meta-data 
            android:value="My Publisher ID"
            android:name="ADMOB_PUBLISHER_ID" />
        <activity android:name="com.admob.android.ads.AdMobActivity"/>
        <receiver 
            android:name="com.admob.android.ads.analytics.InstallReceiver"
            android:exported="true">
         <intent-filter>
         <action android:name="com.android.vending.INSTALL_REFERRER"/>
         </intent-filter>
         </receiver>
         <meta-data 
             android:value="true" 
             android:name="ADMOB_ALLOW_LOCATION_FOR_ADS"/>

main:

 <com.google.ads.AdView
    android:id="@+id/adView"
   android:layout_alignParentBottom="true"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    ads:adSize="BANNER"
    ads:adUnitId="My Publisher ID"
    ads:loadAdOnCreate="true"/>

On Create Code:

        AdView adView = (AdView)this.findViewById(R.id.adView);
        AdRequest re = new AdRequest();
        re.setTesting(true);
        adView.loadAd(re);

Any help is appreciated!!

How to&Answers:

Make sure that the layout the AdView is embedded in does not impose any padding on the AdView. The AdView’s size has to be exactly 320×50 dip. It does not show up if it does not get enough room.

Also check the log output of your device. In Eclipse switch to the DDMS perspective, select your device and watch the LogCat output.

Answer:

I had a similar issue. If you have any padding on your parent layout then you may not have enough width for the ads. If you have it in a portrait view try switching to a landscape view to see if it shows. If it does than you most likely have a width issue somewhere in your layout.

Answer:

It usually takes some time for ads to start appearing via admob. This happens in the case when you have just registered on admob and started up with your first application. If the suggestions given above are taken care of and if your admob page shows a “green” status, I wont worry about it too much. Once your fill rate increases, you will start to see more and more ads.

Answer:

  1. Go to app settings on admob.com and make sure use location
    data for ads
    is turned off if your app is not a location based app.

    Use location data for ads is used to filter ads based on location and
    works only on app with location permission granted. If app does not use
    location permission, ads will not show.

  2. Make sure your have filled payment details

Answer:

Be sure that your Admob layout is displaying in xml view. Put your admob view inside RelativeLayout and try to use android:alignparentBottom:true

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
     <RelativeLayout 
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

<!--Do our code that you want to show in xml -->

<!--Put adview in bottom of screen -->
        <com.google.ads.AdView
                android:id="@+id/adView"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                ads:adSize="BANNER"
                android:layout_alignParentBottom="true"
                ads:adUnitId="@string/addmob_id"
                ads:loadAdOnCreate="true"
                ads:testDevices="HT9CWP803129" />
    </RelativeLayout>
    </LinearLayout>

In your java code put these lines in onCreate method

// Load addvertisment
        AdView adView = (AdView) findViewById(R.id.adView);
        // Request for Ads
        AdRequest adRequest = new AdRequest.Builder().addTestDevice("FF9CD441FA62FD456D7D571B91DD11DD").build();

        adView.loadAd(adRequest);

This worked in my code, Hope it will help you too.

Answer:

Be carefull with the id, there are 2 codes: the editor number (like this: pub-xxxxxxxxxxxxxxxx) and the other is the banner id (like this: ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx)

You need to use the last one, if you use the first doesnt work:)

Answer:

You are using
ads:adUnitId=”My Publisher ID”
replace it with
ads:adUnitId=”Here AdUnitId for this app”
Note: You have to create app on Admob and you will get AdUnitId for that created app. You don’t have to use Publisher ID.

Answer:

I see there are two problems in your code based on what you posted:-

  1. The <metadata> section should contain the ADMOB_APP_ID instead of your
    publisher ID. This should be declared under <application> tag in
    ApplicationManifest.xml.

    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="[ADMOB_APP_ID]"/>
    

    you can find ADMOB_APP_ID by on ADMOB dashboard, click on the application
    and check “App Settings”. You can see the APP_ID which starts
    typically with ca-app-pub-0123456789012345.

  2. The second problem is, where you have declared AdView in your layout.
    Remember you have to provide Ad unit not your publisherID, which
    you can create in ADMOB dashboard by clicking on Ad Unit tab
    under your application. Put the correct “ad unit” against your
    AdView as below.

    ads:adUnitId="ca-app-pub-3940256099942544/6300978111" <!-- remember this is adUnit not App ID and this value above is for test banner Ad. -->
    

Once you have fixed above problems, do the following:-

MobileAds.initialize(this, "YOUR_ADMOB_APP_ID"); in onCreate of your first Activity. This needs to be done only once and thus the right place is either your first activity or at application’s onCreate callback.

Find the AdView in the activity onCreate where you have included AdView in the layout.

mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);

Test Ads work by providing test adunit published by google.

mAdView.setAdSize(AdSize.BANNER);
mAdView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");

Additionally, if you want to handle Ad events, do as follows:-

mAdView.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
        // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdFailedToLoad(int errorCode) {
        // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdOpened() {
        // Code to be executed when an ad opens an overlay that
        // covers the screen.
    }

    @Override
    public void onAdLeftApplication() {
        // Code to be executed when the user has left the app.
    }

    @Override
    public void onAdClosed() {
        // Code to be executed when when the user is about to return
        // to the app after tapping on an ad.
    }
});

Answer:

Some of these possible solutions may sound obvious, but make sure you have these completed:

-replace “My Publisher ID” in android:value=”My Publisher ID” with your actual publisher ID.

-make sure to include the internet permission in your manifest file:

 <uses-permission android:name="android.permission.INTERNET" />  

If you have completed those, you can also try placing the following code in the “On create” section instead of your current:

   AdView adView = (AdView)this.findViewById(R.id.adView);
   AdRequest adRequest = new AdRequest();
   adRequest.setTesting(true);
   adView.loadAd(adRequest);
   adView.loadAd(new AdRequest());

or

    AdManager.setTestDevices( new String[] {AdManager.TEST_EMULATOR});

    AdView adView = (AdView)findViewById(R.id.adView);
    adView.requestFreshAd();

Before publishing, don’t forget be sure to get rid of the setTestDevice though!

Answer:

make sure, your admob publisher ID is correct. It had happend with me once and I could not figure out the error for about 15 days.

In Admob every app that you submit gets a different publisher ID. It is unique per Application and not per User.

Answer:

It might be an issue with the space, you need to ensure that the space is available for the ad to be displayed. If you have a padding on the parent layout it might reduce the space available. According to the google Admob docs no ad will be displayed if the space isn’t there for it to be displayed.

“The SDK will request whatever size the requesting AdView was instantiated with. If there isn’t enough space on the device’s screen to display the ad, nothing will be shown.”

So my suggestion is to ensure no padding is on the parent layout and actually assign a height and width to the banner ad like this

<com.google.ads.AdView
    android:id="@+id/adView"
    android:layout_alignParentBottom="true"
    android:layout_width="@dimen/banner_width"
    android:layout_height="@dimen/banner_height"
    ads:adSize="BANNER"
    ads:adUnitId="My Publisher ID"
    ads:loadAdOnCreate="true"/>

And store the appropriate dimensions in your dimens.xml in the values folder.

Answer:

This is because admin inventory requires some requests to be generated to check that the app can make some profit!

Please let setup the ads properly and publish the app, after about 1k requests are made, the ads will automatically show up!

I too was suffering from this problem and got my answer when I published my own app!

Answer:

If admob “App Id” and “Unit Id” is correct then upload on google play store it will show the add.
I was facing same type of issue but after upload on google play it resolve automatic.