首页 > 解决方案 > 从较新版本的 Android Studio 构建应用一年后广告停止工作

问题描述

大约一年前,我在 android studio 中完成了一个超级简单的游戏并发布了它。现在我想做一个小更新并在更合适的地方展示广告。但广告根本不起作用 - 代码与原来相同,但广告无法加载。

我的帐户没有被禁用,因为如果我从 Playstore 下载我的游戏,广告仍然有效。

我使用不同版本的android studio,所以项目自行升级,但我不知道它是否改变了graddle或manifest或其他东西,所以这可能会发生。

mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId("ca-app-pub-xxxxxxxxxxxxxx/xxxxxxxx");
    mInterstitialAd.loadAd(new AdRequest.Builder().build());


mInterstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded () {
            if(enableAd) {
                if (mInterstitialAd.isLoaded()) {
                    mInterstitialAd.show();
                }
            }
        }
    });

标签: javaandroidandroid-studioadmob

解决方案


在您的 AdListener 中使用onAdClosed()以在每次显示广告时重新加载您的广告,并将您的初始广告创建为mainActivity.create()的一部分。

如果您想展示广告,请在应用中的任何位置使用mInterstitialAd.show() 。显示后,它会关闭并重新加载下一个广告。

这样做是缓冲您的广告。每当您展示插页式广告时,它都会显示已加载的广告,然后在您展示广告后重新加载新的广告。使 ad.show() 更快。

mInterstatialAd = new InterstitialAd(getBaseContext());
  mInterstatialAd.setAdUnitId(getResources()
                  .getString(R.string.AdmobTestInterstitial));
mInterstitialAd.setAdListener(new AdListener() {
    @Override
    public void onAdClosed () {
        mInterstatialAd.loadAd(myAdRequest);
    }
});
public void showMyInterstitialAd(){
    if(mInterstitialAd!=null &&
       mInstitialAd.isLoaded()) mInterstitialAd.show();
}

祝你好运。


推荐阅读