9

当广告应在一个会话中第二次或第三次打开时,LogCat 显示错误消息“尝试使用不同的广告管理器启动新的 AdActivity”。我正在通过我的应用程序主屏幕的 on resume 方法中的意图启动插页式广告:

@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);
}

我能做些什么来避免这种情况?这个错误信息是什么意思?

4

3 回答 3

27

您是否正在检查第一个广告是否已经关闭?我有一个类似的问题,第一次后无法加载 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);
    }
});
于 2014-08-01T12:57:12.383 回答
2

自上次回答以来已经过去了几年,现在可能已经过时了。官方文档没有提到“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()
                }
            }
        }
    })
}
于 2021-12-17T18:45:50.800 回答
0

每次要展示广告时,您都必须加载广告。

添加处理程序

前任。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();
}
于 2022-01-25T16:44:00.587 回答