如何解决MoPub“onInterstitialFailed”广告监听器在离线时不起作用 解决方案:
我正在展示 MoPub Interstitial ad
到 activities
。
当我的设备在线/连接到互联网时。然后adListener
工作
正常。这在设备离线时不起作用。
情况:如果 ad
not loaded
或 failed
那么我想在那里使用 Intent
移动下一个 activity
。 但是这 MoPubAdListener
在我离线时不起作用。
mInterstitial.load()
方法中的插页式 onCreate
当用户按下后退按钮时,插页式广告被调用
@Override
public void onBackPressed() {
try {
customProgressDialogForAd.show(getSupportFragmentManager(),"before interstitial");
funInterstitialLoadShow();
} catch (Exception e){
QuestionActivity.super.onBackPressed();
}
//super.onBackPressed();
}
间隙调用功能
private void funInterstitialLoadShow(){
mInterstitial.setInterstitialAdListener(new MoPubInterstitial.InterstitialAdListener() {
@Override
public void onInterstitialLoaded(MoPubInterstitial moPubInterstitial) {
Toast.makeText(QuestionActivity.this,"adloaded",Toast.LENGTH_SHORT).show();
mInterstitial.show();
customProgressDialogForAd.dismiss();
}
@Override
public void onInterstitialFailed(MoPubInterstitial moPubInterstitial,MoPubErrorCode moPubErrorCode) {
customProgressDialogForAd.dismiss();
QuestionActivity.super.onBackPressed();
// PROBLEM HERE: THIS fun now work when Device is OFFLINE(NO INTERNET);
}
@Override
public void onInterstitialShown(MoPubInterstitial moPubInterstitial) {
}
@Override
public void onInterstitialClicked(MoPubInterstitial moPubInterstitial) {
}
@Override
public void onInterstitialDismissed(MoPubInterstitial moPubInterstitial) {
customProgressDialogForAd.dismiss();
QuestionActivity.super.onBackPressed();
}
});
}
问题:当设备未连接到互联网时,onInterstitialFailed
不起作用。 [另一方面,如果设备中的互联网已打开,则 sdk 正常工作,例如,如果我们关闭广告,则 onInterstitialDismissed
工作]
任何解决方案:请
解决方法
调用MoPub的AdListener
有两种方式/方法/类型。
第一种方式:直接调用 adListener
mInterstitial.setInterstitialAdListener(new MoPubInterstitial.InterstitialAdListener() { .... }
第二种方式:在我们的 AdListener
implements
调用 MoPub Activity class
public class QuestionActivity extends AppCompatActivity implements MoPubInterstitial.InterstitialAdListener { ... }
解决方案:
您没有将 mInterstitial.load()
与 adListener
一起使用。如果不使用 AdListener
添加这行代码,Adlistener
的函数将不起作用因为该行是 adListener
的一部分。
// ====this function (with moPub ad listener)== called when use click back button
public void funInterstitialAdListener(){
mInterstitial.setInterstitialAdListener(new MoPubInterstitial.InterstitialAdListener() {
@Override
public void onInterstitialLoaded(MoPubInterstitial moPubInterstitial) {
Log.d(TAG,"onInterstitialLoaded: funAd loaded");
customProgressDialogForAd.dismiss();
mInterstitial.show();
}
@Override
public void onInterstitialFailed(MoPubInterstitial moPubInterstitial,MoPubErrorCode moPubErrorCode) {
customProgressDialogForAd.dismiss();
QuestionActivity.super.onBackPressed();
Log.d(TAG,"onInterstitialFailed: ad failed to load");
}
@Override
public void onInterstitialShown(MoPubInterstitial moPubInterstitial) {
}
@Override
public void onInterstitialClicked(MoPubInterstitial moPubInterstitial) {
}
@Override
public void onInterstitialDismissed(MoPubInterstitial moPubInterstitial) {
Log.d(TAG,"onInterstitialDismissed: Done");
QuestionActivity.super.onBackPressed();
}
});
// If we not use this mInterstitial.load() code,then function of AdListener not work.
mInterstitial.load();
// Must use this upper line with adListener. This line is part of AdListener.
}
快乐编码 :)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。