AdMob 广告未通过功能展示

AdMob ads not showing from a function

我使用 Android Studio 制作了一个 android 应用程序,并在其中实施了 Google AdMob。

但是,在展示广告时,每当我尝试通过函数展示它时,它都没有展示。

函数如下:

        if (mInterstitialAd != null) {
            mInterstitialAd.show(MainActivity.this);
            SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("com.jodastudios.universalskyremote", Context.MODE_PRIVATE);
            int clicks = sharedPreferences.getInt("clicks", 0);
            sharedPreferences.edit().putInt("clicks", 0);
        } else {
            Log.d("TAG", "The interstitial ad wasn't ready yet.");
        }
    }

每当我在 OnCreate 方法上显示广告时,它们都会显示。

代码如下:

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                if (mInterstitialAd != null) {
                    mInterstitialAd.show(MainActivity.this);
                    SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("com.jodastudios.universalskyremote", Context.MODE_PRIVATE);
                    int clicks = sharedPreferences.getInt("clicks", 0);
                    sharedPreferences.edit().putInt("clicks", 0);
                } else {
                    Log.d("TAG", "The interstitial ad wasn't ready yet.");
                }
            }
        },9000);

我不知道为什么广告没有从功能中显示:有人知道如何解决这个问题吗?

第二个代码延迟了 9 秒,这足以让广告加载。

函数无法显示尚未加载的广告!

您必须设置 AdListener 并显示来自 onAdLoaded 方法的添加或创建回调以显示来自 activity...

...或从 onAdLoaded(){

调用您的函数
InterstitialAd interstitialAd = new InterstitialAd(context);
    interstitialAd.setAdUnitId(adIdent);
    interstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            interstitialAd.show();

            //TODO or create callback to show from activity
            if (adCallback != null) {
                adCallback.onAdLoaded();
            }
        }
        
        .....................
        .....................
        
    }

interstitialAd.loadAd(new AdRequest.Builder().build());