【问题标题】:MoPub "onInterstitialFailed" adListener not work when offlineMoPub“onInterstitialFailed”adListener 在离线时不起作用
【发布时间】:2021-09-02 02:39:44
【问题描述】:

我在 activities 之间显示 MoPub Interstitial ad

当我的设备在线/连接到互联网时。然后adListener工作 正常。这在设备离线时不起作用。

情况:如果adnot loadedfailed那么我想用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 可以正常工作]

任何解决方案:请

【问题讨论】:

    标签: interstitial mopub mobile-ad-mediation skadnetwork


    【解决方案1】:

    有两种方式/方法/类型,调用MoPub的AdListener

    第一种方式:直接调用adListener

    mInterstitial.setInterstitialAdListener(new MoPubInterstitial.InterstitialAdListener() { .... }
    

    第二种方式:通过我们的Activity classimplements 调用 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.
        }
    

    快乐编码:)

    【讨论】:

      猜你喜欢
      • 2013-02-19
      • 2013-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-01
      • 2012-07-07
      相关资源
      最近更新 更多