【发布时间】:2015-12-05 19:49:16
【问题描述】:
我已将 InMobi 集成到我的 Android 应用中,当应用首次运行时(横幅或插页式),它不会获取任何广告。
如果我退出应用程序然后再次运行它,一切正常 - 横幅和插页式广告已加载并显示横幅。
如果我随后卸载并重新安装应用程序,或者只是清除应用程序的缓存(从设置中)然后再次运行应用程序,我将回到原点,我什么也得不到。请注意,这完全遵循这种模式,它不是随机的。总是在第一次运行 - 没有广告,总是在后续运行,广告。
我应该指出(如果这很重要),我处于测试模式(在 InMobi 仪表板中设置)。
以下是我在 onCreate 中的代码 - 我做错了什么?
回调中返回的错误只是获取广告时发生错误(对于横幅广告和插页式广告)。
InMobi 网站(我可以看到)上没有更多信息,也没有任何内容。任何帮助将不胜感激。
//Initialise Interstitials
InMobi.initialize(this, myInterstitialID);
//Initialise Banners
InMobi.initialize(this, myBannerID);
//Create the banner
imbanner = new IMBanner(this, myBannerID, IMBanner.INMOBI_AD_UNIT_320X50);
//60 second interval refresh
imbanner.setRefreshInterval(60);
//Load the banner
imbanner.loadBanner();
//Callbacks for the banner ads
imbanner.setIMBannerListener(new IMBannerListener() {
@Override
public void onShowBannerScreen(IMBanner arg0) {
Log.v("Inmobi","OnShowBannerScreen");
}
@Override
public void onLeaveApplication(IMBanner arg0) {
Log.v("Inmobi","Leave Application");
}
@Override
public void onDismissBannerScreen(IMBanner arg0) {
Log.v("Inmobi","OnDismissBannerScreen");
}
@Override
public void onBannerRequestFailed(IMBanner banner, IMErrorCode errorCode) {
Log.v("Inmobi","onBannerRequestFailed: "+errorCode);
}
@Override
public void onBannerRequestSucceeded(IMBanner arg0) {
Log.v("Inmobi","onBannerRequestSucceeded");
}
@Override
public void onBannerInteraction(IMBanner arg0, Map<String, String> arg1) { Log.v("Inmobi","onBannerInteraction");
}
});
//Interstitials
inInterstitial = new IMInterstitial(this, myInterstitialID);
inInterstitial.loadInterstitial();
inInterstitial.setIMInterstitialListener(new IMInterstitialListener() {
public void onShowInterstitialScreen(IMInterstitial arg0) {
Log.v("Inmobi", "Interstitial showing");
}
@Override
public void onLeaveApplication(IMInterstitial arg0) {
Log.v("Inmobi", "Interstitial leaving Application");
}
@Override
public void onDismissInterstitialScreen(IMInterstitial arg0) {
Log.v("Inmobi", "Dismissing Interstitial");
inInterstitial.loadInterstitial();
}
@Override
public void onInterstitialLoaded(IMInterstitial arg0) {
Log.v("Inmobi", "Interstitial loaded");
}
@Override
public void onInterstitialInteraction(IMInterstitial interstitial, Map<String, String> params) {
Log.v("Inmobi", "Interstitial interaction");
}
@Override
public void onInterstitialFailed(IMInterstitial arg0, IMErrorCode arg1) {
Log.v("Inmobi", "Interstitial failed: "+arg1);
}
});
【问题讨论】:
-
也许在您第一次运行时调用 InMobi.initialize(...) 他们会创建一些令牌并在发出广告请求时将其发送到他们的服务器。如果令牌未在此处注册(第一次运行时不能注册),则它们不会返回广告。但是在第二次尝试时,他们再次发送令牌并且没关系。这只是一个猜测。但总的来说,如果它只是在第一次运行时发生,也许你不应该太担心。更好的是,您的用户在您的应用中看到的第一次体验不是广告,而是应用本身 :)
-
刚刚与 InMobi 支持人员进行了交谈,这是当前 SDK 版本中的一个已知错误,他们已经修复并正在测试它,因此下一个版本应该可以解决问题 :-)
标签: android ads banner interstitial inmobi