Admob 广告未加载 - 未能加载广告:0

Posted

技术标签:

【中文标题】Admob 广告未加载 - 未能加载广告:0【英文标题】:Admob ads not loading - Failed to load ad: 0 【发布时间】:2016-11-17 14:16:58 【问题描述】:

我正在尝试加载 Admob 原生广告。以前(在应用程序更新之前)广告曾经显示,但现在它们没有显示。我已经在下面发布了代码、xml和Logcat。

代码

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_
            android:layout_
            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】:

您的代码没有错误。都很好。你只需要稍等一下。您的广告 ID 是新创建的,因此从谷歌服务器获取广告需要一些时间。您可以通过添加您为早期应用程序创建的横幅/插页式广告 ID 来验证这一点,您会看到它们有效。所以给它一些时间,它很快就会起作用。至少对我来说,它一直在发生。不能肯定地为你说,但为什么不试试呢?

【讨论】:

“等一下” == 在我的情况下约 1 小时。 我不知道为什么,但我等了 2 多天。它仍然是错误的。我尝试使用另一个 admob 帐户创建另一个应用程序。它运行良好。我想使用我的主要帐户。有什么想法吗? @MrSpecial 你解决了这个问题吗?如果有,怎么做? @pinkcat 是的,它记得需要很长时间才能收到来自谷歌的官方电子邮件,通知我的 admob 帐户已激活。然后我正常使用admob。也许你应该从谷歌官方电子邮件。 @MrSpecial 我收到了谷歌关于账户激活的官方电子邮件,但我收到了谷歌关于账户激活的正式信函,但广告从未显示(显示测试广告)【参考方案2】:

在我的情况下,缺少付款信息是一个问题。当您登录 Admob 控制面板时,您会在那边看到通知,上面说在我们添加付款详细信息之前,广告将无法工作。

【讨论】:

还要检查您与 admob 帐户关联的电子邮件 ID,您的 admob 帐户意外暂停或谷歌更改付款方式也可能导致我遇到的问题。我希望这会有所帮助。 就我而言,我必须上传带照片的身份证件才能付款 AdMob 不允许我设置付款方式,因为我没有赚到任何钱。如何设置我的付款方式? @UzaySan 你有什么解决办法吗?【参考方案3】:

常数值:0

此错误通常发生在新制作的广告中。因此,请等待几个小时以加载广告。

【讨论】:

【参考方案4】:

所以我遇到了同样的错误,我首先尝试了这里列出的所有内容。

    正在等待 Google 向我发送一封电子邮件,说明 AdMob 已启用。完成了,大概一个小时左右,其实如果你登录它会给你状态,然后我等了48~小时,仍然是同样的问题

    付款设置对我来说不是问题,因为我之前通过关联的 AdSense 帐户获得了付款。

    然后我阅读了这里其他用户可能遇到的所有常见设置问题。我主要使用示例 Admob 应用 ID

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

以及Admob getting started page 上提供的示例广告单元 ID,这样您就可以在开发过程中消除帐户问题。

    我相当确定我的配置正确,但为了检查我下载了Google's ad samples from GitHub。这样您就可以检查工作代码,并弹出您的 Admob 应用 ID 并查看帐户是否设置正确 我开始使用他们的示例中的build.gradle,将我得到的与他们的相匹配,只是更新和添加我的依赖项。然后我找到了它,只要我去targetSdkVersion 30compileSdkVersion 30 就会出现错误。所以,现在,我在 SDK 29 上,直到他们解决这个问题。我希望有些人觉得这很有用

编辑:该问题已报告给谷歌检查状态here 和here。它似乎影响了 Java 和 Kotlin

【讨论】:

哦,谢谢!!!我正在找这个!!!!你刚刚救了我! 谢谢!在我发现这个之前我也在搜索几天(问题是 sdk 版本 30) 你的回答救了我!!!我花了几天时间试图找出问题所在! 30版好像还没有修复【参考方案5】:

尝试从不同类型的展示位置请求广告时也会发生这种情况。 例如,插页式的横幅等。我希望这会对某人有所帮助。

【讨论】:

如果这是原因,那么可以在测试广告中检测到,我认为无需为此上线。【参考方案6】:

来自Documentation,错误代码0表示内部错误

public static final int ERROR_CODE_INTERNAL_ERROR

内部发生了一些事情;例如,无效的响应是 从广告服务器收到。

常数值:0

此错误通常发生在新制作的广告中。因此,请等待几个小时以加载广告。

【讨论】:

【参考方案7】:

我也遇到过“无法加载广告 0”的错误,但没问题,只需等待有时像一个小时或 2 甚至 5 小时,等待你会得到广告。

【讨论】:

【参考方案8】:

您始终可以在模拟器上运行您的项目,您将在您的应用程序中获得有关“模拟广告”的信息

【讨论】:

【参考方案9】:

就我而言,我之前为广告启用了调试日志记录,但讽刺的是,这导致它们无法正常工作...

转到您设备的设置 > Google > 广告 > 为广告启用调试日志记录(禁用)

如果您选择顶部的重置广告 ID,也会有所帮助。

在此之后,测试广告再次开始工作。

祝你好运!

【讨论】:

这是我的 Pixel 的问题【参考方案10】:

当它与sample ad unit Ids 一起使用时,您的帐户可能尚未获得批准。你刚刚创建了吗?

测试广告对我来说很快就奏效了。我不得不等待几个小时才能收到“好消息 - 您的帐户现已获得批准”的邮件,直到 我的 广告也能正常工作。无论如何都不要使用您自己的广告进行开发 - 您可能会因此而阻止您的 AdMob 帐户!

因此,一旦测试广告开始工作,并且您确认发布版本使用了正确的 ID,您很可能已经做对了所有事情,只需要等待

还有一个test App ID "ca-app-pub-3940256099942544~3347511713",但我在创建它后立即使用我自己的 App ID 没有问题。

【讨论】:

“无论如何都不要使用自己的广告进行开发”。如果您想测试真实广告,也可以将您的设备添加为测试设备。 developers.google.com/admob/android/…【参考方案11】:

由于 AVD 设置,我遇到了这个问题。 尝试更改 AVD 进行调试或尝试使用真实设备。

【讨论】:

【参考方案12】:

我知道这个问题是 4 年前的问题,但我偶然发现了这个问题,因为我遇到了相同的错误代码。我的问题是由于在清单文件中使用我自己的 app-id 而不是 test app id 引起的。将其更改为测试应用程序 ID 后,我得到了错误代码 2。这是因为我的环境中没有正确配置 DNS。因此,任何有相同问题的人,请确保您使用正确的应用程序 ID 并配置了 DNS(点击此链接了解如何设置它 - Android emulator not able to access the internet)

【讨论】:

【参考方案13】:

就我而言,我用来测试的安卓手机是中国手机,没有安装谷歌服务,有时在使用谷歌服务时会出现问题。我必须手动卸载并重新安装它。它解决了这个问题。

【讨论】:

【参考方案14】:

我的互联网连接不佳,我不得不等待一段时间才能加载视频广告。

【讨论】:

【参考方案15】:

我的两分钱:当您没有可用的互联网连接时也会发生此错误。

【讨论】:

【参考方案16】:

打开应用程序模块目录中的build.gradle 文件:

并添加此依赖项

dependencies 
......
......
  implementation 'com.google.android.gms:play-services-ads:19.2.0'

【讨论】:

以上是关于Admob 广告未加载 - 未能加载广告:0的主要内容,如果未能解决你的问题,请参考以下文章

AdMob插页式广告未加载

AdMob 原生广告加载但未展示

颤振,原生 Admob,广告无法加载:0

预加载 - ListView 中的 Admob 原生广告

正在等待Admob插页式广告加载

突然无法加载 AdMob 广告?