AdMob间隙广告只播放一次



LogCat显示错误消息"尝试使用不同的广告管理器启动新的AdActivity",此时广告应在一个会话内第二次或第三次打开。我正在通过我的应用程序主屏幕的简历方法中的一个意图开始间隙广告:

@Override
public void onResume() {
    super.onResume();
    if(this.getIntent().hasExtra("show_ad")) {
        if(this.getIntent().getExtras().getBoolean("show_ad")) {
            showInterstitialAd();
        }
    }
}
public void showInterstitialAd() {
    mInterstitialAd = new InterstitialAd(this, "ca-app-pub-123456789");
    AdRequest adRequest = new AdRequest();
    mInterstitialAd.loadAd(adRequest);
    mInterstitialAd.setAdListener(this);
}

我该怎么做才能避免这种情况?此错误消息的含义是什么?

您是否正在检查第一个广告是否已经关闭?我也有类似的问题,第一次之后无法加载admob的间隙。我通过在广告中添加一个adListner解决了这个问题

// Set an AdListener.
interstitial.setAdListener(new AdListener() {
    @Override
    public void onAdClosed() {
      AdRequest adRequest = new AdRequest.Builder().addTestDevice(AD_UNIT_ID).build();
      interstitial.loadAd(adRequest);
    }
});

距离上次回答已经过去了很多年,现在可能已经过时了。官方文件没有提到";onAdClosed()"(https://developers.google.com/admob/android/interstitial#kotlin)

在我的情况下,它是这样工作的,也许会对某人有所帮助:

private fun initAdd() {
    MobileAds.initialize(this@MainActivity)
    val adRequest = AdRequest.Builder().build()
    InterstitialAd.load(this,"ca-app-pub-yyyyyyyyyyyyyyyy/xxxxxxxxxx", adRequest, object : InterstitialAdLoadCallback() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            mInterstitialAd = null
        }
        override fun onAdLoaded(interstitialAd: InterstitialAd) {
            mInterstitialAd = interstitialAd
            mInterstitialAd?.fullScreenContentCallback = object: FullScreenContentCallback() {
                override fun onAdDismissedFullScreenContent() {
                    initAdd()
                    super.onAdDismissedFullScreenContent()
                }
            }
        }
    })
}

当您想显示广告时,每次都必须加载广告

添加处理程序

前任。rewardedAd.OnAdClosed += HandleRewardedAdClosed;

public void HandleRewardedAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
   LoadAdRewarded();
}

public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args)
{
   LoadAdRewarded();
}
public void HandleRewardedAdClosed(object sender, EventArgs args)
{
   LoadAdRewarded();
}

最新更新