Admob插页式广告未在Android中的片段中加载

时间:2016-03-12 11:33:35

标签: android admob

我正在尝试在我的应用中集成Admob SmartBanner和非页内广告。 SmartBanner工作正常但没有加载插页式广告。

在同一个应用中集成admob banner +非页内广告添加的正确代码是什么。

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_home, container, false);
    //------------------------------------------------------------------------------------------
    AdView mAdView = (AdView) rootView.findViewById(R.id.adView);
    final AdRequest.Builder request = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)        // All emulators
            .addTestDevice("1E085E6103A6876F42FC5183C73D98CB");//genymotion galaxy s5 4.4.4
    mAdView.loadAd(request.build());

    mInterstitialAd = new InterstitialAd(getActivity());
    mInterstitialAd.setAdUnitId(String.valueOf(R.string.banner_ad_unit_id));//("ca-app-pub-5059726881726792/4446999064");

    //final AdRequest.Builder adRequestBuilder = new AdRequest.Builder();
    //adRequestBuilder.addTestDevice("1E085E6103A6876F42FC5183C73D98CB")//genymotion galaxy s5 4.4.4
    //        .addTestDevice("0B80CC732BD7E24CF42938649A17A7DA");//s3
    mInterstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            super.onAdLoaded();
        }
        @Override
        public void onAdClosed() {
            super.onAdClosed();
            mInterstitialAd.loadAd(request.build());
        }
    });
    mInterstitialAd.loadAd(request.build());
    if (mInterstitialAd.isLoaded()) {
        mInterstitialAd.show();
    }

1 个答案:

答案 0 :(得分:1)

在您的代码中,您可以在加载后立即显示插页式广告。

在请求/加载广告后,广告一直存在延迟(延迟)问题。

因此,如果广告尚未加载,您就无法展示广告。理想情况下,您应该在应用中的自然断点处显示插页式广告。示例:从一个活动转换到另一个活动时。但是,您可以修改代码以通过#onCreateView中的#onAdLoaded显示广告,如下所示:

        @Override
        public void onAdLoaded() {
            super.onAdLoaded();
            mInterstitialAd.show();
        }