Admob ads not loading - Failed to load ad: 0

2019-01-18 10:49发布

问题:

I am trying to load Admob Native ads. Previously (before app was updated) ads used to show but now they are not showing. I have posted the code, xml and the Logcat below.

Code

NativeExpressAdView adView = (NativeExpressAdView) myView.findViewById(R.id.adView);

    AdRequest request = new AdRequest.Builder()
            .addTestDevice("5BCFF0AAE83AF424648A954038C71DE6")
            .addTestDevice("A5E3E2068BD88202CBC281AD76984BEE")//infocus
            .build();

    adView.loadAd(request);

XML

<com.google.android.gms.ads.NativeExpressAdView
            android:id="@+id/adView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            ads:adSize="320x150"
            ads:adUnitId="ca-app-pub-5059726881726792/6223900262"></com.google.android.gms.ads.NativeExpressAdView>

Logcat

07-14 20:39:57.349 11508-11508/? W/Ads: Failed to load ad: 0
07-14 20:40:07.373 11508-11663/? W/Ads: There was a problem getting an ad response. ErrorCode: 0

Fail to forward ad response.
                                  android.os.DeadObjectException
                                      at android.os.BinderProxy.transactNative(Native Method)
                                      at android.os.BinderProxy.transact(Binder.java:511)
                                      at com.google.android.gms.ads.internal.request.ab.a(:com.google.android.gms:93)
                                      at com.google.android.gms.ads.internal.request.service.i.run(:com.google.android.gms:638)
                                      at com.google.android.gms.ads.internal.util.u.call(:com.google.android.gms:1055)
                                      at com.google.android.gms.ads.internal.util.v.run(:com.google.android.gms:75)
                                      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
                                      at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                      at java.lang.Thread.run(Thread.java:818)

07-14 20:40:19.539 1975-4922/? W/Ads: Fail to forward ad response.
                                  android.os.DeadObjectException
                                      at android.os.BinderProxy.transactNative(Native Method)
                                      at android.os.BinderProxy.transact(Binder.java:511)
                                      at com.google.android.gms.ads.internal.request.ab.a(:com.google.android.gms:93)
                                      at com.google.android.gms.ads.internal.request.service.i.run(:com.google.android.gms:638)
                                      at com.google.android.gms.ads.internal.util.u.call(:com.google.android.gms:1055)
                                      at com.google.android.gms.ads.internal.util.v.run(:com.google.android.gms:75)
                                      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
                                      at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                      at java.lang.Thread.run(Thread.java:818)

回答1:

There is no fault in your code. It's all good. You just need to wait a little. Your ad id is newly created so it will take some time to fetch ads from google servers. You can verify this by adding banner/interstitial ad id you creating for earlier applications and you'll see that they work. So give it some time and it will work soon. At least for me, it happens all the time. Can't surely say for you but why not give it a try?



回答2:

In my case missing payment information was an issue. When you login to Admob dashboard you will see notice over there which says ads won't work until we add payment details.



回答3:

It also happened to me that error"fail to load ad 0" but there is no problem just wait for sometimes like an hour or 2 or even 5 hours just wait you will get the ads.



回答4:

Constant Value: 0

This error generally occurs in newly created ads. So wait for few hours for the ads to be loaded.



回答5:

You can always run your project on emulator and you will get information about "emulated ad" in your applicaiton



回答6:

From the Documentation, Error code 0 means Internal error.

public static final int ERROR_CODE_INTERNAL_ERROR

Something happened internally; for instance, an invalid response was received from the ad server.

Constant Value: 0

This error generally occurs in newly created ads. So wait for few hours for the ads to be loaded.



回答7:

When it works with the sample ad unit Ids your account probably just is not approved yet. Have you created it just now?

Test ads worked right away for me. I had to wait several hours for the "Great news – your account is now approved" mail until my ads worked too. Do not use your own ads for development anyway - you can get your AdMob account blocked for that!

So as soon as the test ads work and you have confirmed that the correct IDs are used for release build you most probably have done everything right and just have to wait

There is also an test App ID "ca-app-pub-3940256099942544~3347511713" but I had no problem to use my own App ID right after creating it.



标签: android admob