MoPub“onInterstitialFailed”adListener 在离线时不起作用
Posted
技术标签:
【中文标题】MoPub“onInterstitialFailed”adListener 在离线时不起作用【英文标题】:MoPub "onInterstitialFailed" adListener not work when offline 【发布时间】:2021-09-02 02:39:44 【问题描述】:我在 activities
之间显示 MoPub Interstitial ad
。
当我的设备在线/连接到互联网时。然后
adListener
工作 正常。这在设备离线时不起作用。
情况:如果ad
not loaded
或failed
那么我想用Intent
那里移动下一个activity
。 但是当我离线时这个MoPubAdListener
不起作用。
onCreate
方法中的插页式 mInterstitial.load()
当用户按下返回按钮时,就会调用插页式广告
@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
可以正常工作]
任何解决方案:请
【问题讨论】:
【参考方案1】:有两种方式/方法/类型,调用MoPub的AdListener
。
第一种方式:直接调用adListener
mInterstitial.setInterstitialAdListener(new MoPubInterstitial.InterstitialAdListener() ....
第二种方式:通过我们的Activity class
implements
调用 MoPub AdListener
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.
快乐编码:)
【讨论】:
以上是关于MoPub“onInterstitialFailed”adListener 在离线时不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用适用于 iOS 的 Admob (google) 设置 MoPub 中介?