Ad banner do not show up suddenly(I am using the ad ID provide by AdMob)

585 Views Asked by At

I know many people have asked similar question but no one can help me.

I am developing an android app. At the beginning, I have added the adView in my layout using the test ads ID look like this:

<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="ca-app-pub-3940256099942544/6300978111"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintStart_toStartOf="parent"/>

I have followed the guide provided by AdMob, updated the app ID in Manifest:

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

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/Theme.Scoreboard">
    <activity android:name="com.example.scoreboard.MainActivity"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-3940256099942544~3347511713"/>
</application>

My MainActivity is also follow the guide:

public class MainActivity extends AppCompatActivity {
    private AdView mAdView;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    MobileAds.initialize(this, new OnInitializationCompleteListener() {
        @Override
        public void onInitializationComplete(InitializationStatus initializationStatus) {
        }
    });

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

Everything work find at the beginning, but somehow the ads doesn't show up suddenly and I find out this message:

10-26 11:30:09.622 4049-4186/com.example.scoreboard I/Ads: SDK version: afma-sdk-a-v203404000.203404000.0
10-26 11:30:09.622 4049-4186/com.example.scoreboard I/Ads: HTTP timeout: 60000 milliseconds.
10-26 11:30:09.712 4049-4049/com.example.scoreboard E/MainActivity: The error of ads: {
      "Response Info": {
        "Adapter Responses": [],
        "Mediation Adapter Class Name": "",
        "Response ID": "null"
      },
      "Domain": "com.google.android.gms.ads",
      "Message": "No fill.",
      "Code": 3,
      "Cause": "null"
    }

As I am using the ads ID and app ID provided by AdMob for testing, I don't know why the ad does not show up suddenly. I have try to use my own app ID, but still the same. Anyone know why this is happening?

I discover 2 exceptions of the ads in my logcat lately after asking this question, hope this can help:

10-26 12:36:39.227 4769-4769/com.example.scoreboard W/Ads: #007 Could not call remote method. @28
    com.google.android.gms.internal.ads.zzazf: com.google.android.gms.dynamite.DynamiteModule$LoadingException: Failed to instantiate module class: com.google.android.gms.ads.omid.DynamiteOmid
        at com.google.android.gms.internal.ads.zzazd.zza(com.google.android.gms:play-services-ads-lite@@19.5.0:3)
        at com.google.android.gms.internal.ads.zzard.zzn(com.google.android.gms:play-services-ads-lite@@19.5.0:22)
        at com.google.android.gms.internal.ads.zzard.getVersion(com.google.android.gms:play-services-ads-lite@@19.5.0:31)
        at com.google.android.gms.internal.ads.zzdds.zzasx(com.google.android.gms:play-services-ads@@19.5.0:10)
        at com.google.android.gms.internal.ads.zzddv.call(com.google.android.gms:play-services-ads@@19.5.0)
        at com.google.android.gms.internal.ads.zzdzq.zzazk(com.google.android.gms:play-services-ads@@19.5.0:5)
        at com.google.android.gms.internal.ads.zzdyy.run(com.google.android.gms:play-services-ads@@19.5.0:8)
        at com.google.android.gms.internal.ads.zzdzo.run(com.google.android.gms:play-services-ads@@19.5.0:11)
        at com.google.android.gms.internal.ads.zzazk.execute(com.google.android.gms:play-services-ads@@19.5.0:4)
        at com.google.android.gms.internal.ads.zzazn.execute(com.google.android.gms:play-services-ads@@19.5.0:4)
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:103)
        at com.google.android.gms.internal.ads.zzdxr.zze(com.google.android.gms:play-services-ads@@19.5.0:5)
        at com.google.android.gms.internal.ads.zzdds.zzasm(com.google.android.gms:play-services-ads@@19.5.0:6)
        at com.google.android.gms.internal.ads.zzdfl.zzt(com.google.android.gms:play-services-ads@@19.5.0:7)
        at com.google.android.gms.internal.ads.zzbqz.zzakq(com.google.android.gms:play-services-ads@@19.5.0:13)
        at com.google.android.gms.internal.ads.zzbqz.zzakr(com.google.android.gms:play-services-ads@@19.5.0:14)
        at com.google.android.gms.internal.ads.zzboz.zzaki(com.google.android.gms:play-services-ads@@19.5.0:39)
        at com.google.android.gms.internal.ads.zzboz.zzakj(com.google.android.gms:play-services-ads@@19.5.0:59)
        at com.google.android.gms.internal.ads.zzcxm.zzg(com.google.android.gms:play-services-ads@@19.5.0:40)
        at com.google.android.gms.internal.ads.zzcxm.zza(com.google.android.gms:play-services-ads@@19.5.0:16)
        at com.google.android.gms.internal.ads.zzzc.zza(com.google.android.gms:play-services-ads-lite@@19.5.0:120)
        at com.google.android.gms.ads.BaseAdView.loadAd(com.google.android.gms:play-services-ads-lite@@19.5.0:15)
        at com.google.android.gms.ads.AdView.loadAd(com.google.android.gms:play-services-ads-lite@@19.5.0:20)
        at com.example.scoreboard.MainActivity.onCreate(MainActivity.java:70)
        at android.app.Activity.performCreate(Activity.java:5008)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
        at android.app.ActivityThread.access$600(ActivityThread.java:130)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4745)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: com.google.android.gms.dynamite.DynamiteModule$LoadingException: Failed to instantiate module class: com.google.android.gms.ads.omid.DynamiteOmid
        at com.google.android.gms.dynamite.DynamiteModule.instantiate(com.google.android.gms:play-services-basement@@17.3.0:260)
        at com.google.android.gms.internal.ads.zzazd.zza(com.google.android.gms:play-services-ads-lite@@19.5.0:1)
        at com.google.android.gms.internal.ads.zzard.zzn(com.google.android.gms:play-services-ads-lite@@19.5.0:22) 
        at com.google.android.gms.internal.ads.zzard.getVersion(com.google.android.gms:play-services-ads-lite@@19.5.0:31) 
        at com.google.android.gms.internal.ads.zzdds.zzasx(com.google.android.gms:play-services-ads@@19.5.0:10) 
        at com.google.android.gms.internal.ads.zzddv.call(com.google.android.gms:play-services-ads@@19.5.0) 
        at com.google.android.gms.internal.ads.zzdzq.zzazk(com.google.android.gms:play-services-ads@@19.5.0:5) 
        at com.google.android.gms.internal.ads.zzdyy.run(com.google.android.gms:play-services-ads@@19.5.0:8) 
        at com.google.android.gms.internal.ads.zzdzo.run(com.google.android.gms:play-services-ads@@19.5.0:11) 
        at com.google.android.gms.internal.ads.zzazk.execute(com.google.android.gms:play-services-ads@@19.5.0:4) 
        at com.google.android.gms.internal.ads.zzazn.execute(com.google.android.gms:play-services-ads@@19.5.0:4) 
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:103) 
        at com.google.android.gms.internal.ads.zzdxr.zze(com.google.android.gms:play-services-ads@@19.5.0:5) 
        at com.google.android.gms.internal.ads.zzdds.zzasm(com.google.android.gms:play-services-ads@@19.5.0:6) 
        at com.google.android.gms.internal.ads.zzdfl.zzt(com.google.android.gms:play-services-ads@@19.5.0:7) 
        at com.google.android.gms.internal.ads.zzbqz.zzakq(com.google.android.gms:play-services-ads@@19.5.0:13) 
        at com.google.android.gms.internal.ads.zzbqz.zzakr(com.google.android.gms:play-services-ads@@19.5.0:14) 
        at com.google.android.gms.internal.ads.zzboz.zzaki(com.google.android.gms:play-services-ads@@19.5.0:39) 
        at com.google.android.gms.internal.ads.zzboz.zzakj(com.google.android.gms:play-services-ads@@19.5.0:59) 
        at com.google.android.gms.internal.ads.zzcxm.zzg(com.google.android.gms:play-services-ads@@19.5.0:40) 
        at com.google.android.gms.internal.ads.zzcxm.zza(com.google.android.gms:play-services-ads@@19.5.0:16) 
        at com.google.android.gms.internal.ads.zzzc.zza(com.google.android.gms:play-services-ads-lite@@19.5.0:120) 
        at com.google.android.gms.ads.BaseAdView.loadAd(com.google.android.gms:play-services-ads-lite@@19.5.0:15) 
        at com.google.android.gms.ads.AdView.loadAd(com.google.android.gms:play-services-ads-lite@@19.5.0:20) 
        at com.example.scoreboard.MainActivity.onCreate(MainActivity.java:70) 
        at android.app.Activity.performCreate(Activity.java:5008) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
        at android.app.ActivityThread.access$600(ActivityThread.java:130) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:137) 
        at android.app.ActivityThread.main(ActivityThread.java:4745) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:511) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
        at dalvik.system.NativeStart.main(Native Method) 
     Caused by: java.lang.ClassNotFoundException: com.google.android.gm
10-26 12:36:39.227 4769-4769/com.example.scoreboard W/Ads: #007 Could not call remote method. @28
    java.lang.NullPointerException
        at com.google.android.gms.internal.ads.zzard.getVersion(com.google.android.gms:play-services-ads-lite@@19.5.0:32)
        at com.google.android.gms.internal.ads.zzdds.zzasx(com.google.android.gms:play-services-ads@@19.5.0:10)
        at com.google.android.gms.internal.ads.zzddv.call(com.google.android.gms:play-services-ads@@19.5.0)
        at com.google.android.gms.internal.ads.zzdzq.zzazk(com.google.android.gms:play-services-ads@@19.5.0:5)
        at com.google.android.gms.internal.ads.zzdyy.run(com.google.android.gms:play-services-ads@@19.5.0:8)
        at com.google.android.gms.internal.ads.zzdzo.run(com.google.android.gms:play-services-ads@@19.5.0:11)
        at com.google.android.gms.internal.ads.zzazk.execute(com.google.android.gms:play-services-ads@@19.5.0:4)
        at com.google.android.gms.internal.ads.zzazn.execute(com.google.android.gms:play-services-ads@@19.5.0:4)
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:103)
        at com.google.android.gms.internal.ads.zzdxr.zze(com.google.android.gms:play-services-ads@@19.5.0:5)
        at com.google.android.gms.internal.ads.zzdds.zzasm(com.google.android.gms:play-services-ads@@19.5.0:6)
        at com.google.android.gms.internal.ads.zzdfl.zzt(com.google.android.gms:play-services-ads@@19.5.0:7)
        at com.google.android.gms.internal.ads.zzbqz.zzakq(com.google.android.gms:play-services-ads@@19.5.0:13)
        at com.google.android.gms.internal.ads.zzbqz.zzakr(com.google.android.gms:play-services-ads@@19.5.0:14)
        at com.google.android.gms.internal.ads.zzboz.zzaki(com.google.android.gms:play-services-ads@@19.5.0:39)
        at com.google.android.gms.internal.ads.zzboz.zzakj(com.google.android.gms:play-services-ads@@19.5.0:59)
        at com.google.android.gms.internal.ads.zzcxm.zzg(com.google.android.gms:play-services-ads@@19.5.0:40)
        at com.google.android.gms.internal.ads.zzcxm.zza(com.google.android.gms:play-services-ads@@19.5.0:16)
        at com.google.android.gms.internal.ads.zzzc.zza(com.google.android.gms:play-services-ads-lite@@19.5.0:120)
        at com.google.android.gms.ads.BaseAdView.loadAd(com.google.android.gms:play-services-ads-lite@@19.5.0:15)
        at com.google.android.gms.ads.AdView.loadAd(com.google.android.gms:play-services-ads-lite@@19.5.0:20)
        at com.example.scoreboard.MainActivity.onCreate(MainActivity.java:70)
        at android.app.Activity.performCreate(Activity.java:5008)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
        at android.app.ActivityThread.access$600(ActivityThread.java:130)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4745)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
        at dalvik.system.NativeStart.main(Native Method)

Following is the build.gradle of my app:

plugins {
    id 'com.android.application'
}

android {
    compileSdkVersion 29

    defaultConfig {
        applicationId "com.example.scoreboard"
        minSdkVersion 16
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {

    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
    implementation 'com.google.android.gms:play-services-ads:19.5.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
2

There are 2 best solutions below

3
Juan Sancho On

I use this to load ads:

 MobileAds.initialize(this, new OnInitializationCompleteListener() {
        @Override
        public void onInitializationComplete(InitializationStatus initializationStatus) {
        }
    });

    InterstitialAd mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId("ca-app-pub-xxxxxxxxxxxxxxxxxxxxxxxxxxx"); //I don't see this in your code
    AdRequest ad = new AdRequest.Builder().build();
    mInterstitialAd.loadAd(ad);
    mInterstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            mInterstitialAd.show();
        }

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

        @Override
        public void onAdOpened() {
            // Code to be executed when the ad is displayed.
        }

        @Override
        public void onAdClicked() {
            // Code to be executed when the user clicks on an ad.
        }

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

        @Override
        public void onAdClosed() {
            // Code to be executed when the interstitial ad is closed.
        }
    });
2
Alireza On

Error code is 3 stand for the ad request was successful, but no ad was returned due to lack of ad inventory.

no need to change anything

it will work for you.