为什么“没有从广告服务器填充。无法加载广告:3”停止广告请求?

时间:2018-02-22 12:25:23

标签: android firebase admob

我已经实施了exampe中的firebase广告:

 @Override
 public void onCreate(Bundle savedInstanceState) {
     (...)
     mAdView.loadAd(adRequestBuilder.build());

 }

 @Override
 public void onResume() {
     mAdView.resume();
 }

 @Override
 public void onPause() {
     mAdView.pause();

 }

 @Override
 public void onDestroy() {
     mAdView.destroy();
 }

如果广告由于没有互联网连接而成功加载或失败(errorCode 2),它仍然会被刷新:

  

我/广告:从现在起安排广告刷新60000毫秒。

当我们转到后台然后前景(mAdView.resume()mAdView.pause())时,我们会收到相同的消息。

但是如果我们得到“没有填充”

  

广告服务器无法填充。无法加载广告:3

firebase停止申请新广告。这意味着用户不会看到任何新广告(如果第一个请求以“无填充”结束,则甚至不会看到第一个广告)。此外,如果应用程序变为后台,则前景(正在调用mAdView.resume()),广告请求仍将无法执行。 这意味着“没有填充”的用户很长时间都看不到广告。这可能会降低我的收入。

这是广告库的正确行为还是一个错误?如何解决这个问题?

更新

我有一个想法。当用户从后台返回时,将mAdView.loadAd(adRequestBuilder.build())onCreate()移至onResume()方法强制重新加载广告。

@Override
public void onResume() {
    if (!mAdView.isLoading())
        mAdView.loadAd(adRequestBuilder.build());
    mAdView.resume();
}

有趣的是,在经过大量测试后,在mAdView.loadAd(adRequestBuilder.build())强制重新加载广告后调用No fill from ad server. Failed to load ad: 3(我收到消息:Starting ad request.)但它从未成功完成。我仍然得到No fill from ad server. Failed to load ad: 3。响应很快。我假设它来自某种本地缓存。

1 个答案:

答案 0 :(得分:0)

已解决

问题是,如果您没有创建 app-ads.txt 文件并将其放置在可访问的域中,AdMob 将不会为您的应用 AdRequest 提供服务。

要解决此问题,请按照以下步骤操作:

  1. 转到https://apps.admob.com/v2/apps/appadstxt
  2. 复制“设置 app-ads.txt”对话框中的代码片段。
  3. 使用 https://app-ads-txt.com 创建您的 app-ads.txt 文件并将其放置在免费域中。
  4. 转到 https://play.google.com/console/ 选择查看所有应用,选择未收到广告的应用。
  5. 转到商店设置页面,更新 store-listing-contact-details 部分中的网站 URL,然后粘贴从 app-ads-txt.com 生成的 URL。
  6. 您必须等待大约 24 小时,Google 才能验证您的 Admob 帐户并开始为您的应用提供 AdRequest。