大多数情况下,当我尝试通过inmobi.com加载非页内广告时,都会收到错误消息“ 广告请求成功但没有投放广告”。为什么会这样呢?有什么解决办法吗?在网站上将其设置为“测试模式”时,它与测试广告效果很好。这是因为inmobi当时没有足够的提供商来展示广告吗?
我问了Inmobi支持页面,但他们没有回答。我开始后悔从admob转到inmobi。
这是我使用的代码:
JSONObject consentObject = new JSONObject();
try {
consentObject.put(InMobiSdk.IM_GDPR_CONSENT_AVAILABLE, true); // Provide correct consent value to sdk which is obtained by User
consentObject.put("gdpr", "1"); // Provide 0 if GDPR is not applicable and 1 if applicable
//consentObject.put(InMobiSdk.IM_GDPR_CONSENT_IAB, “<<consent in IAB format>>”); // Provide user consent in IAB format
} catch (JSONException e) {
}
InMobiSdk.init(this, "My InMobi Account ID here", consentObject);
long MyPlacementID = 1234566789L; //My Placement ID here as long
mInterstitialAd = new InMobiInterstitial(this, MyPlacementID, new InterstitialAdEventListener() {
@Override
public void onAdLoadSucceeded(InMobiInterstitial inMobiInterstitial) {
super.onAdLoadSucceeded(inMobiInterstitial);
if (inMobiInterstitial.isReady()) {
mInterstitialAd.show();
}
@Override
public void onAdLoadFailed(InMobiInterstitial inMobiInterstitial, InMobiAdRequestStatus inMobiAdRequestStatus) {
sError = inMobiAdRequestStatus.getMessage();
Here I get error: "ad request successful but no ad served"
}
答案 0 :(得分:0)
我给支持团队发了电子邮件,他们回答说如果没有任何广告可以显示(可能是我的位置还是我的时间)。因此,仅仅是它们用完了要显示的广告。如果我尝试多次,那么我可能会收到一个广告。因此,这是服务器问题。没有足够的客户支付广告费用。真可惜。
答案 1 :(得分:0)
我遇到了同样的问题。我尝试了不同的方法来获取测试广告。但是一切都顺其自然。然后我仔细阅读了他们的文档,发现我们需要为广告展示位置设置一个布局。要进行自定义,请点击“保存”,然后在“测试设备”部分中添加设备ID,您会看到即将出现的测试广告。 SDK将拒绝加载数据,并向日志发出相应的消息:
[InMobi]:无法获取展示位置ID:201901231449的广告,原因短语可用于onAdLoadFailed回调。
在侦听器的方法中,显示消息“广告请求成功但没有投放广告”,代码为“ NO_FILL”。因此,我们的专家建议:始终重新定义导致错误的侦听器方法。采取这种方式,以后您将避免很多麻烦。”
https://agilie.com/en/blog/how-to-integrate-inmobi-sdk-to-start-monetizing-your-android-app
答案 2 :(得分:0)
与@Ton答案相反的答案。
所有广告服务器均以以下方式工作。广告客户为具有特定目标受众的广告付费。因此,每当您要求广告网络提供广告时,它实际上都会检查它们是否有针对性与当前用户匹配的广告(例如,区域,性别,年龄(如果有))。如果他们没有任何广告可以显示给当前用户,则他们将触发NO_FILL。
另外,InMobi专用,它们在模拟器上没有提供很多广告,因此请尝试在物理设备上获取广告。