【问题标题】:Admob Banner ads fail to load, Error Code : 3 No fillAdmob 横幅广告无法加载,错误代码:3 无填充
【发布时间】:2019-04-19 18:00:52
【问题描述】:

我已在我的应用中集成了 admob 横幅和插页式广告。我注意到一些广告横幅无法加载。我调试过广告加载失败的错误码,错误码很常见Error : 3表示No fill错误。 我在 3-4 个屏幕中添加了横幅广告和插页式广告。
现在的问题是只有一个屏幕横幅 ID 正在运行,并且所有插页式广告都可以正常工作,但某些横幅广告无法正常工作。 (在刘海屏中)
当我将所有屏幕横幅 ID 更改为相同时,该 ID 运行正常,并且所有屏幕也适用于缺口屏幕。
我已经在牛轧糖、奥利奥、棉花糖等中测试了这个案例。普通屏幕和缺口屏幕。
我只是注意到一些运行刘海屏的设备并没有加载所有广告。但是所有正常的屏幕都可以正常工作。所以我无法得到确切的问题。
注意:我在测试时所有设备都使用相同的 wifi 网络运行。
我不知道其他单位ID是否有任何问题。但是我的 admob 帐户中的所有单位 ID 都具有相同的设置。根据我的测试用例,我的 AdUnit id 有问题。但无法得到问题所在。
我又注意到一个案例。如果我在请求中添加了测试 ID,那么它也可以工作。我从 android 日志中获得了设备哈希。

I/Ads: Use AdRequest.Builder.addTestDevice("XXXXXXXXXX") to get test ads on this device.
.addTestDevice("XXXXXXXXXX")


如果有任何额外的调试技术,它是 admob 帐户,请与我分享,以便我详细检查。 任何人都可以帮我详细检查这个问题吗?如果有人需要更多解释,请发表评论。

【问题讨论】:

    标签: android admob ads banner


    【解决方案1】:
    public static final int ERROR_CODE_NO_FILL
    

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

    常数值:3

    来源:文档 https://developers.google.com/android/reference/com/google/android/gms/ads/AdRequest#ERROR_CODE_NO_FILL

    您的代码没有问题,问题是 admob 并不总是有广告返回您的请求 可能的原因可能是

    -您刚刚注册了您的发布商 ID,因为开始投放广告需要一些时间

    -您过滤了一些广告

    【讨论】:

    • 感谢您的回答。我读过那个文件。根据您的建议 1)我没有注册为出版商。 2)是的,我已经过滤了类别,但它应该适用于所有单位 ID,而不是特定 ID。所以无法理解为什么只有一个 id 运行正常。
    • 这可能是尺寸问题以及它在不同的布局中,确保没有任何东西与视图重叠,检查一下它可能会有所帮助support.google.com/adsense/answer/6191405?hl=en
    • 这可能是尺寸问题以及它在不同的布局中,确保没有任何东西与视图重叠,检查一下这可能会有所帮助support.google.com/adsense/answer/6191405?hl=en
    • 没有尺寸问题。当我将运行 ID 更改为其他无法正常工作的屏幕时,我已经提到过
    • 当只在所有屏幕中使用运行 id 然后所有屏幕加载横幅广告。所以这意味着有东西正在监视来自 ad mob 帐户的 id
    【解决方案2】:

    我尝试过运行不同操作系统的设备组合。最后我得到了解决方案。 当应用程序失败并出现错误代码 3(无填充错误)时,我编写了此代码

    <com.google.android.gms.ads.AdView
            xmlns:ads="http://schemas.android.com/apk/res-auto"
            android:id="@+id/adView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_alignParentBottom="true"
            ads:adSize="SMART_BANNER"
            ads:adUnitId="XXXXXXXXXXXXXXXX>
        </com.google.android.gms.ads.AdView> 
    

    现在根据 google sample code 我必须将宽度与 ma​​tch_parent 一起使用,所以我已经用 ma​​tch_parent 更改了宽度,但仍然发生同样的错误。所以最后我用 BANNER 改变了尺寸类型,现在它可以在所有设备上运行。 (Google 的演示代码使用 BANNER 类型)我刚试过这个尺寸,现在所有设备都运行广告横幅。 不确定,但根据我的测试场景广告失败了哪个设备具有大分辨率(超过 16:9 比例,如 19:9 比例 1080 x 2280 像素)并且在将横幅尺寸类型设置为 BANNER 后工作正常分辨率也很高。

    【讨论】:

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

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

      共享编辑删除标志

      【讨论】:

        【解决方案4】:

        我收到了完全相同的消息。问题是我使用了错误的测试广告单元 ID。正确的是

        ca-app-pub-3940256099942544/6300978111

        来源:https://developers.google.com/admob/android/banner

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多