【问题标题】:Why Is Admob Interstitial Ad Not Showing On AndroidOS?为什么 Admob 插页式广告不显示在 AndroidOS 上?
【发布时间】:2026-01-04 11:10:01
【问题描述】:

我完全按照 Google 发布的方式应用广告代码,但未显示广告。

我的代码:

AdRequest adRequest = new AdRequest.Builder().build();
InterstitialAd.load( this, "ca-app-pub-3940256099942544/1033173712", adRequest, new InterstitialAdLoadCallback() { //test reklam id
    @Override
    public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
        // The mInterstitialAd reference will be null until
        // an ad is loaded.
        mInterstitialAd = interstitialAd;
        Log.i( TAG, "onAdLoaded" );
    }

    @Override
    public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        // Handle the error
        Log.i( TAG, loadAdError.getMessage() );
        mInterstitialAd = null;
    }
});

这是我用来展示广告的按钮代码:

btnGo.setOnClickListener( new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (mInterstitialAd != null) {
            mInterstitialAd.show(MainActivity.this);
            Log.e( "ads", "must be shown" );
        }
        startActivity( new Intent( MainActivity.this, SecondActivity.class ) );
    }
});

加载广告后,我收到了有关它的加载日志,似乎没有问题。 我检查广告是否为空以显示广告状态,如果它不为空,我会得到一个显示的广告,这很好。 唯一的问题是广告没有展示。

可能是什么问题或我做错了什么?

【问题讨论】:

  • 我最好的猜测是您在广告有时间展示之前调用了 startActivity。相反,您应该在加载逻辑中实现 onAdClosed 并在那里调用 startAtivity(secondActivity)。
  • onAdClosed 是如何调用的?你能帮助我吗?你只有 onLoaded 和 onFailed。
  • thanx @AndreasEvjenth 为我工作你的想法。

标签: java android admob interstitial


【解决方案1】:

问题解决了:

if (mInterstitialAd != null) {
    mInterstitialAd.show(MainActivity.this);
    mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){
      @Override
      public void onAdDismissedFullScreenContent() {
        // Called when fullscreen content is dismissed.
    startActivity( new Intent( MainActivity.this, SecondActivity.class ) );
        Log.d("TAG", "The ad was dismissed.");
      }

      @Override
      public void onAdFailedToShowFullScreenContent(AdError adError) {
        // Called when fullscreen content failed to show.
    startActivity( new Intent( MainActivity.this, SecondActivity.class ) );
        Log.d("TAG", "The ad failed to show.");
      }

      @Override
      public void onAdShowedFullScreenContent() {
        // Called when fullscreen content is shown.
        // Make sure to set your reference to null so you don't
        // show it a second time.
        mInterstitialAd = null;
        Log.d("TAG", "The ad was shown.");
      }
    });
} else {
    startActivity( new Intent( MainActivity.this, SecondActivity.class ) );
                }

【讨论】: