预加载插页式广告

Bis*_*ret 2 android interstitial

我在我的应用中运行插页式广告,但我不确定如何预加载它们,以便用户看起来是即时的.通常它可能需要长达10秒,并且用户已经移动到应用程序的不同区域,这非常烦人.

这是应用程序的相关代码:

private void launchInterstitial() {
    interstitialAd = new InterstitialAd(this);
    interstitialAd.setAdUnitId("ca-app-pub-xxxxxxxxxxxxxxxx");

    interstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            showAdInter();
        }

        @Override
        public void onAdFailedToLoad(int errorCode) {
            String message = String.format("onAdFailedToLoad (*a)", getErrorReason(errorCode));
        }

        @Override
        public void onAdClosed() {
            if (exitApp) {
                finish();
            }
        }
    });
}

private void showAdInter() {
    if (interstitialAd.isLoaded()){
        interstitialAd.show();
    } else {
        Log.d("","Interstitial ad failed to load");
    }
}

public void loadInterstitial() {
    AdRequest adRequest = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .addTestDevice("Fxxxxxxxxxxxxxxxxxxxxx")
            .build();

    interstitialAd.loadAd(adRequest);
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试在活动启动时调用launchInterstitial()和loadInterstitial(),然后在我希望广告出现时调用showAdInter(),但它不会那样工作.

有人有主意吗?

Bis*_*ret 5

无法相信没有人知道这件事,或者不愿意提供帮助.我会在这里发布答案,希望这实际上可以帮助有需要的人.我在onCreate()中调用以下方法:

requestNewInterstitial();
Run Code Online (Sandbox Code Playgroud)

方法如下:

private void requestNewInterstitial() {
    AdRequest adRequest = new AdRequest.Builder()
            .build();

    mInterstitialAd.loadAd(adRequest);
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个adlistener,以便在关闭广告后再次在后台重新加载广告:

mInterstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdClosed() {
            requestNewInterstitial();
        }
    });
Run Code Online (Sandbox Code Playgroud)

我调用requestNewInterstitial(); 在我的onBackPressed()方法上.

这会产生平滑的结果,插页式广告会瞬间出现.