我正在使用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>
可能出现什么问题?
提前感谢您的答案。
答案 0 :(得分:109)
W / Ads:无法加载广告:3
根据Documentation,您收到以下错误代码:
public static final int ERROR_CODE_NO_FILL
广告请求已成功,但由于缺少广告而未返回任何广告 广告资源。
常数值:3
如果您收到此错误,那么您的代码是正确的。问题是 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内部测试将应用程序下载到同一设备上,广告也对我有用,它也可以在生产环境中使用
答案 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)
检查并确保您没有将两个帐户关联到adsense,就像我在本案中的错误操作一样。
如果您要在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).
答案 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小时才能显示。
答案 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,它将正常工作!!!