【问题标题】:"Failed to load ad: 3" with DoubleClick使用 DoubleClick “加载广告失败:3”
【发布时间】:2021-01-04 01:12:29
【问题描述】:

我正在使用 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>

可能出了什么问题?

【问题讨论】:

  • 问题是由于语言配置错误。奇怪的是,这种配置对 IOS 设备没有任何问题,但对 Android 设备却有影响。
  • 您能否澄清一下,您指的是哪种“语言配置”?我似乎面临同样的问题。
  • 这是 1 年多以前的事了,我无法再访问 DoubleClick 帐户,因此无法为您提供太多帮助。我知道我有 3 种语言(Fr、Nl、En),其中 Fr 设置为默认值,但我无法获得 NL 和 EN 的语言。如果我记得很清楚,我切换到 EN 作为默认语言配置,就是这样。我仍然不明白为什么这解决了我的问题,很抱歉没有提供这么多帮助。
  • 在我的情况下,我只更改了其他虚拟设备并开始加载广告。

标签: android double-click-advertising


【解决方案1】:

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 回填已启用,或者您已过滤掉一些广告。查看 您的应用设置,看看是否是这种情况。

编辑:

更新 app-ads.txt 并使用“setTestDeviceIds”在物理设备上进行测试。

截至编辑这些说明时: https://developers.google.com/admob/android/test-ads 工作。为了测试广告,我使用了演示广告单元,需要添加 app-ads.txt 行并等待它被 admob 爬虫(仅在 Android-12 模拟器上工作)抓取,但仍然在 Logcat 中获得使用“ setTestDeviceIds" - 上面链接下的代码,结果证明需要在通过 USB 连接的物理设备上显示测试广告。

【讨论】:

  • 什么是回填?文件没有提及。
  • 先生!我有另一个属于同一个 AdMob 帐户的应用程序,它正在显示广告。请解释
  • 我也有同样的问题,可以先展示广告,现在却报错3
  • 奇怪的是,它发生在我的测试 id 上,正如文档所说,/6499/example/banner
  • 您好,我也遇到了同样的问题,之前广告正常显示,但现在出现错误代码 3。请帮助
【解决方案2】:

我的设备有这个问题。 我的广告在 UnitID 测试模拟器上运行没有问题,但在我的设备上进行测试时,它无法使用消息 “failed to load ad: 3”

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

然后我通过 Google Play 内部测试在同一设备上下载了该应用,广告对我有效,并且在生产中也有效

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      就我而言:
      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");}
              });
      

      【讨论】:

        【解决方案5】:

        我的问题在于付款。我刷新了我的付款方式,这对我很有帮助。

        【讨论】:

          【解决方案6】:

          这个错误可能是因为太多的原因。 首先尝试使用 testAds ca-app-pub id 以避免 admob 帐户问题。

          检查您是否在 mainActivity 中扩展了 AppCompatActivity,就我而言,这就是问题所在

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

          【讨论】:

            【解决方案7】:
            1. 检查并确保您没有将两个帐户链接到 adsense,因为我在我的案例中错误地这样做了。

            2. 如果您只是创建 24 小时的 admob 帐户,然后重试

            【讨论】:

              【解决方案8】:

              这对我有用


              设置->谷歌->广告->重置广告ID->确定

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

              【讨论】:

              • 那些菜单在哪里??
              • 我不明白你在说什么类型的菜单。但此设置在您手机的设置中。
              • 你能更准确地告诉它选项在哪里吗?我什么地方都没看到
              • @DynoCris 这些设置在 Google 部分下,它的位置与不同的手机不同。但是还有一件事,如果我们看不到您的广告并收到错误“无法加载广告:3”,这完全没问题。当您将应用程序上传到 Play 商店或构建发布的 apk 版本时,您会看到广告。
              【解决方案9】:

              我在 Flutter 中遇到了这个错误。检查调试控制台,找到这个命令

              Use.RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("")

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

              【讨论】:

                【解决方案10】:

                W/Ads:未能加载广告:3

                表示:广告请求成功,但由于广告资源不足,没有返回广告。

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

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

                【讨论】:

                  【解决方案11】:
                  Your ad units are not displaying ads because you haven't yet verified your address (PIN).
                  

                  也许它对其他人有帮助,我在我的 AdSense 帐户中收到了此通知。

                  【讨论】:

                    【解决方案12】:

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

                    【讨论】:

                    • 您能否添加屏幕截图或定价和分发的详细路径?它也在 apps.admob.com 仪表板或谷歌开发者控制台中?
                    • 转到Google Play Console,然后选择右侧的所有应用程序,选择您的应用程序,选择商店展示 b> 在右侧,在下拉菜单中选择 Pricing & Distribution
                    • 你是救世主!我已经关闭了我的,我刚刚启用了它。
                    • 这个问题是关于错误代码 3。这是这个错误代码的答案吗?
                    • 现在它在“应用内容”而不是“定价和分发”下
                    【解决方案13】:

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

                    谢谢! 编码愉快!

                    【讨论】:

                    • 这给出了提示并且有意义
                    【解决方案14】:

                    对我来说,原因是一个设备,一个小米米 9 只是不再工作并且没有显示广告,所以我拿出我的平板电脑,我没有看到任何错误,它在发布中显示广告。

                    【讨论】:

                      【解决方案15】:

                      我还没有发布带有广告的应用版本。

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

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

                      各种 AdMob 帮助文章(包括下面链接的文章)提到,如果您一直在看到测试广告(标有“测试广告”的广告),那么您的代码可以正常工作,并且真实的广告应该可以按预期工作(一旦它们构建库存)。

                      考虑到这一点,我继续将我的应用发布到 Play 商店,更新上线后,我通过真实手机上的 Play 商店应用下载了它,并且广告没有加载问题,我的匹配率现在在 AdMob 上为 66%。从 AdMob 常见问题解答文章看来,广告通常需要几个小时才能开始展示,最长可能需要 24 小时。

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

                      【讨论】:

                      • 如果您激活测试广告,您的应用不必在 Google Play 或其他平台上发布 :)
                      【解决方案16】:

                      我犯了最愚蠢的错误。将应用 ID 从一个应用传递到 MobileAds.initialize,并从另一个 admob 应用使用 loadAd 中的展示位置 ID。

                      一旦我更正了展示位置 ID,一切都会起作用。

                      【讨论】:

                        【解决方案17】:

                        在新的 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: Failed to load ad: 3 行。

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

                        然后在您的手机中打开您的应用程序,并检查 logcat。确保您的设备不被视为测试设备。如果您看到 W/Ads: Failed to load ad: 3,那么这应该意味着问题出在 AdMob 而不是您。

                        如果它没有这么说,而是说别的,那我显然不知道。

                        【讨论】:

                          【解决方案18】:

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

                          【讨论】:

                          • 这里也一样。 AdMob 说:“提供您的付款详细信息在 AdMob 投放您的广告之前需要此信息”,因此请检查 AdMob 门户中的付款设置
                          【解决方案19】:

                          如果您发布的应用没有 admob 并且其在 Google Developer Console 中的设置(称为“定价和分发”)“包含广告”未选中。始终使用带有 logcat 输出的测试 ID 进行开发。

                          【讨论】:

                            【解决方案20】:

                            我的应用中出现了同样的错误。我在调试配置中启动应用程序。当我在同一设备上运行我的应用的 release 版本后,问题就解决了。在 Android Studio 中,只需转到 Build -> Generate Signed APK 并选择发布配置。然后在您的设备上安装 release .apk。在调试配置中,您还可以通过添加 AdRequest.Builder.addTestDevice("YOUR TEST DEVICE") 来检查您的 test 广告是否出现。如果广告出现没问题,说明你只需要发布配置。

                            【讨论】:

                            【解决方案21】:

                            W/Ads:未能加载广告:3

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

                            添加以下代码

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

                            多次重启您的应用程序。

                            开始接收广告后移除循环

                            【讨论】:

                            • 这里的accountSettingsBinding是什么?
                            • accountSettingsBinding.adView.loadAd(adRequest);您可以提供您的 adview id
                            • 很酷。这确实对我有用,但在大约 24 小时触发多个请求之后。谢谢。
                            【解决方案22】:

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

                            【讨论】:

                              【解决方案23】:

                              这是一个简单的解决方法(没有解决方案):

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

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

                              【讨论】:

                              • 你知道这方面的具体教程吗?
                              • 我只是按照该链接中的说明进行操作。无论如何,我发现 inmobi 不经常展示广告(甚至不到 50% 的时间),所以我不再使用它。
                              • 现在(2019 年 8 月 15 日),Google Admob 正在为我工​​作(我的应用是“Match4app”)。美国、加拿大和西班牙的匹配率为 100%,显示率为 80%,德国等地为 75%。
                              【解决方案24】:

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

                              我花了几天时间才意识到并找到答案。 希望您能收回广告。

                              【讨论】:

                              • 您能否提及您在以下部分中所写的内容:“您对您的应用或帐户进行了哪些更改以符合我们的计​​划政策?*”
                              • 我添加了所需的隐私政策
                              • 您的意思是您在该申诉领域复制并粘贴了您的隐私政策??
                              • 实际上我的应用在提交带有隐私政策的更新应用后,现在可以在 Playstore 上使用,但 Admob 广告未启用。
                              • @MariusRazvanVarvarei 我无法访问此表单。它正在重定向到support.google.com/admob/…
                              【解决方案25】:

                              选项1:进入设置-> 搜索重置广告ID -> 点击重置广告ID -> 好的。您现在应该开始接收广告了

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

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

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

                              选项 3:查找 Google 设置(不是设置)->广告->重置广告 ID

                              【讨论】:

                              • 这是否位于 AdMob 菜单中?
                              • 在任何地方都没有 Google 的“重置广告 ID”菜单。在哪里?
                              • 此解决方案适用于物理 android 设备。只需在设置中搜索广告
                              【解决方案26】:

                              如果错误仍然存​​在,最后一次尝试是在 admob 中创建一个新的展示位置。这对我有用。在不更改任何内容(除了展示位置 ID 字符串)的情况下,其他代码广告开始显示。

                              【讨论】:

                                猜你喜欢
                                • 2019-11-28
                                • 1970-01-01
                                • 1970-01-01
                                • 2019-12-11
                                • 1970-01-01
                                • 2022-06-30
                                • 1970-01-01
                                • 1970-01-01
                                相关资源
                                最近更新 更多