Admob 广告未加载 - 无法加载广告:0
Admob ads not loading - Failed to load ad: 0
我正在尝试加载 Admob Native 广告。以前(在更新应用程序之前)广告曾经展示过,但现在没有展示。我已经发布了代码,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_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)
您的代码没有错误。都很好。你只需要稍等一下。您的广告 ID 是新创建的,因此从 google 个服务器获取广告需要一些时间。您可以通过添加您为早期应用程序创建的 banner/interstitial 广告 ID 来验证这一点,您会发现它们有效。所以给它一些时间,它很快就会起作用。至少对我来说,它一直在发生。不能肯定地说,但为什么不试一试呢?
我也遇到过这个错误"fail to load ad 0"但是没有问题,有时等待一个小时或 2 甚至 5 小时就可以看到广告。
您始终可以在模拟器上运行您的项目,您将在您的应用程序
中获得有关"emulated ad"的信息
来自 Documentation,错误代码 0 表示 内部错误。
public static final int ERROR_CODE_INTERNAL_ERROR
Something happened internally; for instance, an invalid response was
received from the ad server.
常数值:0
此错误通常发生在新制作的广告中。因此,请等待几个小时以加载广告。
就我而言,缺少付款信息是个问题。当您登录到 Admob 控制面板时,您会看到那里的通知,上面写着在我们添加付款详细信息之前广告将无法投放。
当它与 sample ad unit Ids 一起使用时,您的帐户可能尚未获得批准。你刚刚创建了吗?
测试广告对我来说立即有效。我不得不等待几个小时才能收到 "Great news – your account is now approved" 邮件,直到 my 广告也起作用了。无论如何不要使用您自己的广告进行开发 - 您的 AdMob 帐户可能会因此被封锁!
因此,一旦测试广告开始工作并且您已确认将正确的 ID 用于发布版本,您很可能已经做对了所有事情,只需等待
还有一个 test App ID "ca-app-pub-3940256099942544~3347511713" 但我在创建后立即使用我自己的 App ID 没有问题。
常数值:0
此错误通常发生在新创建的广告中。因此,请等待几个小时以加载广告。
尝试从不同类型的展示位置请求广告时也会发生这种情况。
例如,来自插页式广告的横幅等等。我希望这对某些人有所帮助。
在我的例子中,我之前为广告启用了调试日志记录,这具有讽刺意味的是导致它们无法工作...
转到您设备的设置 > Google > 广告 > 为广告启用调试日志记录(禁用)
如果您选择顶部的重置广告 ID,它也会有所帮助。
此测试广告再次开始工作后。
祝你好运!
打开应用程序模块目录中的 build.gradle
文件:
并添加此依赖项
dependencies {
......
......
implementation 'com.google.android.gms:play-services-ads:19.2.0'
}
我知道这个问题是 4 年前的问题,但我无意中发现了这个问题,因为我遇到了相同的错误代码。我的问题是由于在清单文件中使用我自己的应用程序 ID 而不是测试应用程序 ID 引起的。将其更改为测试应用程序 ID 后,我得到了错误代码 2。这是因为在我的环境中 DNS 配置不正确。因此,任何有同样问题的人,请确保您使用的是正确的应用程序 ID 并配置了 DNS(请按照此 link 了解如何设置它 - Android emulator not able to access the internet)
所以我遇到了同样的错误,我先尝试了这里列出的所有方法。
正在等待 google 向我发送一封电子邮件,说明 AdMob 已启用。搞定,大概一个小时,其实你登陆了就给你status了,我等了48~小时,还是一样的问题
付款设置对我来说不是问题,因为我之前从关联的 AdSense 帐户收到付款。
然后我阅读了这里其他用户遇到的所有可能的常见设置问题。我主要使用 示例 Admob 应用程序 ID
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713"/>
示例广告单元 ID 在 Admob getting started page 上给出,这样您就可以在开发过程中消除帐户问题。
- 我相当确定我的配置正确,但为了检查我下载了 Google's ad samples from GitHub。这样您就可以检查工作代码,并弹出您的 Admob 应用程序 ID 并查看帐户设置是否正确
- 我开始使用他们样本的
build.gradle
,匹配我得到的样本,只是更新和添加我的依赖项。然后我找到了它,当我去 targetSdkVersion 30
和 compileSdkVersion 30
时,错误就出现了。所以,现在,我使用 SDK 29,直到他们解决这个问题。我希望有人觉得这很有用
由于 AVD 设置,我遇到了这个问题。
尝试更改 AVD 进行调试或尝试使用真实设备。
在我的例子中,我用来测试的 android phone 是中文 phone 并且没有安装 Google 服务并且有时会出现问题使用 Google 服务。我必须手动卸载并重新安装。它解决了这个问题。
我的互联网连接不佳,我不得不等待一段时间才能加载视频广告。
我的两分钱:当您没有有效的互联网连接时,也会发生此错误。
我正在尝试加载 Admob Native 广告。以前(在更新应用程序之前)广告曾经展示过,但现在没有展示。我已经发布了代码,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_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)
您的代码没有错误。都很好。你只需要稍等一下。您的广告 ID 是新创建的,因此从 google 个服务器获取广告需要一些时间。您可以通过添加您为早期应用程序创建的 banner/interstitial 广告 ID 来验证这一点,您会发现它们有效。所以给它一些时间,它很快就会起作用。至少对我来说,它一直在发生。不能肯定地说,但为什么不试一试呢?
我也遇到过这个错误"fail to load ad 0"但是没有问题,有时等待一个小时或 2 甚至 5 小时就可以看到广告。
您始终可以在模拟器上运行您的项目,您将在您的应用程序
中获得有关"emulated ad"的信息来自 Documentation,错误代码 0 表示 内部错误。
public static final int ERROR_CODE_INTERNAL_ERROR
Something happened internally; for instance, an invalid response was received from the ad server.
常数值:0
此错误通常发生在新制作的广告中。因此,请等待几个小时以加载广告。
就我而言,缺少付款信息是个问题。当您登录到 Admob 控制面板时,您会看到那里的通知,上面写着在我们添加付款详细信息之前广告将无法投放。
当它与 sample ad unit Ids 一起使用时,您的帐户可能尚未获得批准。你刚刚创建了吗?
测试广告对我来说立即有效。我不得不等待几个小时才能收到 "Great news – your account is now approved" 邮件,直到 my 广告也起作用了。无论如何不要使用您自己的广告进行开发 - 您的 AdMob 帐户可能会因此被封锁!
因此,一旦测试广告开始工作并且您已确认将正确的 ID 用于发布版本,您很可能已经做对了所有事情,只需等待
还有一个 test App ID "ca-app-pub-3940256099942544~3347511713" 但我在创建后立即使用我自己的 App ID 没有问题。
常数值:0
此错误通常发生在新创建的广告中。因此,请等待几个小时以加载广告。
尝试从不同类型的展示位置请求广告时也会发生这种情况。 例如,来自插页式广告的横幅等等。我希望这对某些人有所帮助。
在我的例子中,我之前为广告启用了调试日志记录,这具有讽刺意味的是导致它们无法工作...
转到您设备的设置 > Google > 广告 > 为广告启用调试日志记录(禁用)
如果您选择顶部的重置广告 ID,它也会有所帮助。
此测试广告再次开始工作后。
祝你好运!
打开应用程序模块目录中的 build.gradle
文件:
并添加此依赖项
dependencies {
......
......
implementation 'com.google.android.gms:play-services-ads:19.2.0'
}
我知道这个问题是 4 年前的问题,但我无意中发现了这个问题,因为我遇到了相同的错误代码。我的问题是由于在清单文件中使用我自己的应用程序 ID 而不是测试应用程序 ID 引起的。将其更改为测试应用程序 ID 后,我得到了错误代码 2。这是因为在我的环境中 DNS 配置不正确。因此,任何有同样问题的人,请确保您使用的是正确的应用程序 ID 并配置了 DNS(请按照此 link 了解如何设置它 - Android emulator not able to access the internet)
所以我遇到了同样的错误,我先尝试了这里列出的所有方法。
正在等待 google 向我发送一封电子邮件,说明 AdMob 已启用。搞定,大概一个小时,其实你登陆了就给你status了,我等了48~小时,还是一样的问题
付款设置对我来说不是问题,因为我之前从关联的 AdSense 帐户收到付款。
然后我阅读了这里其他用户遇到的所有可能的常见设置问题。我主要使用 示例 Admob 应用程序 ID
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-3940256099942544~3347511713"/>
示例广告单元 ID 在 Admob getting started page 上给出,这样您就可以在开发过程中消除帐户问题。
- 我相当确定我的配置正确,但为了检查我下载了 Google's ad samples from GitHub。这样您就可以检查工作代码,并弹出您的 Admob 应用程序 ID 并查看帐户设置是否正确
- 我开始使用他们样本的
build.gradle
,匹配我得到的样本,只是更新和添加我的依赖项。然后我找到了它,当我去targetSdkVersion 30
和compileSdkVersion 30
时,错误就出现了。所以,现在,我使用 SDK 29,直到他们解决这个问题。我希望有人觉得这很有用
由于 AVD 设置,我遇到了这个问题。 尝试更改 AVD 进行调试或尝试使用真实设备。
在我的例子中,我用来测试的 android phone 是中文 phone 并且没有安装 Google 服务并且有时会出现问题使用 Google 服务。我必须手动卸载并重新安装。它解决了这个问题。
我的互联网连接不佳,我不得不等待一段时间才能加载视频广告。
我的两分钱:当您没有有效的互联网连接时,也会发生此错误。