无法加载广告:3

时间:2015-11-06 12:07:31

标签: android double-click-advertising

我正在使用DoubleClick为我的Android应用设置广告并且无法显示最终广告,有人可以帮助我吗?

当我通过添加" .addTestDevice(" xxx ...")"来测试广告时我收到了测试广告但是当我删除此行时出现以下错误:

  

W / Ads:广告服务器无法填充

     

W / Ads:无法加载广告:3

我将广告设置为:

PublisherAdRequest adRequest = new PublisherAdRequest.Builder().build();
mPublisherAdView.loadAd(adRequest);

我的publisherView看起来像这样:

    <com.google.android.gms.ads.doubleclick.PublisherAdView
        android:id="@+id/pronostics_ad"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_gravity="center"

        ads:adSize="BANNER"
        ads:adUnitId="@string/ad_unit_pronostic">
    </com.google.android.gms.ads.doubleclick.PublisherAdView>

可能出现什么问题?

提前感谢您的答案。

25 个答案:

答案 0 :(得分:109)

  

W / Ads:无法加载广告:3

根据Documentation,您收到以下错误代码:

  

public static final int ERROR_CODE_NO_FILL

     

广告请求已成功,但由于缺少广告而未返回任何广告   广告资源。

     

常数值:3

基于帖子onFailedToReceiveAd - Ad request successful, but no ad returned due to lack of ad inventory when using admob with adwhirl

  

如果您收到此错误,那么您的代码是正确的。问题是   AdMob并不总是会针对每个请求返回广告。   如果您刚刚注册了AdMob,可能会发生这种情况   发布商ID,因为它需要一些时间和多个请求   新ID开始返回广告。

     

您的填充率可能较低的另一个原因是您没有   已启用AdSense补余广告,或您已过滤掉一些广告。校验   您的应用设置,看看是否是这种情况。

答案 1 :(得分:13)

在我们的案例中,有一个选项有所帮助。 正如@blizzard在Google Developer Console的应用程序设置中提到的那样,有一个名为“定价和分发”的部分。在本节中,有一个复选框“CONTAINS ADS”。在我们的案例中它被禁用了。启用后,我们成功收到广告。 希望它有所帮助。

答案 2 :(得分:4)

一个新的和更新的答案: 由于缺乏隐私政策,今年10月(2018年)被删除的许多应用在回到Play商店后都无法收到广告。 您必须使用此表单为该应用的广告请求“重置”。 https://support.google.com/admob/contact/appeal_policy_violation

花了我几天时间来了解并找到答案。 希望您能重新获得广告。

答案 3 :(得分:2)

选项1 :转到设置 - &gt;搜索 重置广告ID - &gt;点击 重置广告ID - &gt;的 即可。您应该立即开始接收广告

没有搜索选项?尝试选项2

选项2 :转到 设置 - &gt; Google-&gt;广告 - &gt;重置广告ID-&gt;确定

“设置”中没有Google选项?尝试选项3

选项3 :寻找 Google设置(不是设置) - &gt;广告 - >重置广告ID

答案 4 :(得分:2)

  

有广告:无法加载广告:3

这表示您的代码正确,但是由于对服务器的请求量较少,因此您的广告不可见。 要检查测试ADS,您应该将代码循环使用一段时间,并且您必须发出多个请求,以便您的admob可以接收多个请求并立即加载广告。

添加以下代码

for(int i=0;i<1000;i++) {
            AdRequest adRequest = new AdRequest
                    .Builder()
                    .addTestDevice("B431EE858B5F1986E4D89CA31250F732")
                    .build();
            accountSettingsBinding.adView.loadAd(adRequest);
        } 

多次重新启动您的应用程序。

开始接收广告后删除循环

答案 5 :(得分:1)

这是一个简单的替代方法(无解决方案):

您可以安装中介,例如InMobi: https://developers.google.com/admob/android/mediation/inmobi

这样,如果admob出于某种原因没有向您展示广告,您仍然可以从其他广告网络中展示它们。

答案 6 :(得分:1)

我要把它留在这里,以防它对某人有用。在尝试了所有论坛和文章中提到的所有修复程序之后,对我有用的只是使用全局AdRequest对象。在每个loadAd中的每个adView上调用Activity时,我将使用相同的对象。我已经看到,无论活动如何,它倾向于在每个AdView上加载相同的广告,但至少现在我能收到广告。

答案 7 :(得分:1)

别忘了在Google AdMod中添加付款方式。这是我的“错误代码3”问题。 无论如何,当您的帐户Google AdMod准备好展示广告(针对经过测试的设备或真实用户)时,他们会向您发送电子邮件,表明您的帐户已通过验证并可以正常使用! 收到这封信后,一切都会正常。

答案 8 :(得分:1)

此错误可能是由于太多原因造成的。 首先尝试使用testAds ca-app-pub ID来避免admob帐户问题。

检查是否在mainActivity中扩展了 AppCompatActivity ,在我的情况下就是问题

还要再次检查所有这些步骤https://developers.google.com/admob/android/quick-start?hl=en-419#import_the_mobile_ads_sdk

答案 9 :(得分:0)

我在设备上遇到了这个问题。 我的广告在使用UnitID测试模拟器时没有问题,但是在我的设备上进行测试时,它与消息“无法加载广告:3”

不起作用

我的解决方案是在Google Play控制台的内部测试环境中测试该应用,以创建用户验证程序

然后,我通过Google Play内部测试将应用程序下载到同一设备上,广告也对我有用,它也可以在生产环境中使用

enter image description here

答案 10 :(得分:0)

这不是问题。首次设计应用程序时,可以使用AdMob提供的测试代码。这些代码在您的仿真器和真实设备上都能很好地工作。但是,一旦您在Google Play上发布了应用程序,这些代码就会立即停止工作。您需要制作测试设备。 https://developers.google.com/admob/android/test-ads

但是您可以使用救生工具继续为已发布的应用程序使用测试代码。将build.gradle(android)文件中的应用程序ID更改为其他名称,一切正常。在将应用程序发布到市场之前,请不要忘记返回旧名称。

答案 11 :(得分:0)

就我而言:
I/Ads: Ad failed to load : Account not approved yet.

但是您需要实现侦听器以了解错误

首先导入监听器:import com.google.android.gms.ads.AdListener;
第二个创建变量:private final String TAG2 = com.ringtones.splash.class.getSimpleName();

            mAdView.setAdListener(new AdListener() {
            @Override
            public void onAdLoaded() {Log.d(TAG2, "google banner ad loaded"); }
            @Override
            public void onAdFailedToLoad(LoadAdError adError) {Log.d(TAG2, "google banner ad failed to load : "+ adError.getMessage());}
            @Override
            public void onAdOpened() {Log.d(TAG2, "google banner ad opened");}
            @Override
            public void onAdClicked() {Log.d(TAG2, "google banner ad clicked");}
            @Override
            public void onAdLeftApplication() {Log.d(TAG2, "google banner ad left application");}
            @Override
            public void onAdClosed() {Log.d(TAG2, "google banner ad closed");}
        });

答案 12 :(得分:0)

我的问题是付款。我刷新了付款方式,这对我有所帮助。

答案 13 :(得分:0)

  1. 检查并确保您没有将两个帐户关联到adsense,就像我在本案中的错误操作一样。

  2. 如果您要在24小时内谨慎创建admob帐户,然后重试

答案 14 :(得分:0)

有广告:无法加载广告:3

手段:广告请求成功,但由于缺少广告资源而没有退回任何广告。

因此,就我而言,我评论了keywords:属性以加载所有类型的广告。现在,我的广告已正确加载。

static final MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo(
        testDevices: testDevice != null ? <String>[testDevice] : null,
        nonPersonalizedAds: true,
        //keywords: <String>['Fitness', 'Yoga', 'Health', 'Exercise', 'Game', 'Doctor', 'Medical'],);

答案 15 :(得分:0)

这对我有用


设置-> Google->广告->重置广告ID->确定

但是在某些情况下,广告在上传到Play商店后会自动出现。

答案 16 :(得分:0)

Your ad units are not displaying ads because you haven't yet verified your address (PIN).

也许对别人有帮助,我在我的AdSense帐户上收到了此通知。 enter image description here

答案 17 :(得分:0)

您可能是从adMob控制台创建广告的原因之一,方法是单击“是”,表明您的应用已经在Playstore中,并提供了实时应用的网址。在这种情况下,您将无法在其中投放广告任何其他具有diff软件包ID的项目,然后是实时项目(甚至没有测试广告)。您必须在包含相同软件包ID的实时项目中实施广告,否则将导致广告无法加载广告:3。

谢谢! 编码愉快!

答案 18 :(得分:0)

对我来说,原因是一台设备(小米Mi 9)不再工作且无法显示广告,因此我拿出平板电脑,没有发现任何错误,并且在该版本中正在显示广告。

答案 19 :(得分:0)

我尚未发布带有广告的应用版本。

我从具有调试版本的仿真器切换到具有发行版(通过adb shell命令安装)的真实设备后,看到了错误代码3:ERROR_CODE_NO_FILL

我等待了12个小时以上,我可以在AdMob门户上看到广告请求,但没有匹配项(匹配率0%)。我去了Play Console > Store Presence > Pricing & distribution并将Contains ads的单选按钮切换为Yes, it has ads。我什至尝试将我的应用包(不发布)上传到Play控制台。这些都不起作用。

各种AdMob帮助文章(包括以下链接的文章)都提到,如果您一直在查看测试广告(标有“测试广告”的广告),则您的代码可以正常工作,真实的广告应该可以按预期工作(一旦生成)库存)。

考虑到这一点,我继续进行操作,并将我的应用发布到了Play商店。一旦更新生效,我就通过我的真实手机通过Play商店应用下载了该广告,问题,现在我在AdMob上的匹配率是66%。从AdMob常见问题解答文章看来,广告通常需要几个小时才能开始展示,可能最多需要24小时才能显示。

ad mob FAQ re: how long does it take ads to show

来源:https://support.google.com/admob/answer/2993019?hl=en

答案 20 :(得分:0)

我犯了最愚蠢的错误。从一个应用程序将应用程序ID传递到MobileAds.initialize,从另一个admob应用程序将应用程序ID传递到loadAd

一旦我更正了展示位置ID,所有的信息就会起作用。

答案 21 :(得分:0)

在新版admob上 使用这个:

//之前加载您的adView

    adView.setAdListener(new AdListener() {    


        @Override
        public void onAdFailedToLoad(int errorCode) {
            // Code to be executed when an ad request fails.
            Toast.makeText(Your current activity.this, "Ad failed: " + errorCode, Toast.LENGTH_SHORT).show();
        }




    });

如果广告在您的模拟器上加载,这意味着它们返回了测试广告,则意味着您的代码没有错。他们还会在您的手机上加载测试广告吗?

如果您可以在模拟器和测试设备上看到测试广告,则通常仅表示AdMob(假设您使用的是AdMob)由于缺少广告资源而无法退回广告。如果是这种情况,那么在查看Logcat时,您应该会看到 W / Ads:无法加载广告:3

您应该做的是将Android手机插入计算机,然后在Android Studio中单击Logcat,然后在左上角看到一些设备可供选择。选择您的手机(如果已列出)(应该是)。现在,logcat将打印手机正在打印的所有内容。在过滤器栏中,输入广告以过滤掉不需要看到的内容。

然后在手机中打开您的应用程序,并检查日志。确保您的设备未被视为测试设备。如果您看到 W / Ads:无法加载广告:3 ,则意味着问题出在AdMob,而不是您。

如果它没有这么说,但说了别的话,那我显然不知道。

答案 22 :(得分:0)

如果您发布的应用没有admob,并且其在Google Developer Console中的设置(称为“定价和发布”)已取消选中“ CONTAINS ADS”。始终使用带有logcat输出的测试ID进行开发。

答案 23 :(得分:0)

我的应用中有同样的错误。我正在调试配置中启动该应用程序。只要在同一设备上运行应用程序的 release 版本,该问题就可以解决。在Android Studio中,只需转到Build-> Generate Signed APK并选择发布配置。然后在您的设备上安装发行版.apk。在调试配置中,您还可以通过添加AdRequest.Builder.addTestDevice(“ YOUR TEST DEVICE”)检查是否显示 test 广告。如果可以正常显示广告,则意味着您只需要发布配置即可。

答案 24 :(得分:-1)

我在Flutter中收到此错误。检查调试控制台并找到此命令

Use.RequestConfiguration.Builder()。setTestDeviceIds(Arrays.asList(“”)

并将设备ID从列表复制到MobileAdTargetingInfo testDevices,它将正常工作!!!