Android Admob rewardedAd未显示奖励广告

问题描述

我正在使用admob rewardedAd,并且一切正常,但有时不显示视频。有时,它会显示静态广告,就像是插页广告一样。不会有问题,但是当这种情况发生并且用户关闭应用程序时,不会触发onUserEarnedReward。有没有办法强迫它始终展示奖励视频广告?

这是我加载并准备广告回调的代码

    rewardedAd = new RewardedAd(this,rewardKey);
    RewardedAdLoadCallback adLoadCallback = new RewardedAdLoadCallback() {
        @Override
        public void onRewardedAdLoaded() { }

        @Override
        public void onRewardedAdFailedToLoad(int errorCode) {
            rewardedAd = new RewardedAd(getApplicationContext(),rewardKey);
            rewardedAd.loadAd(new AdRequest.Builder().build(),this);
        }
    };
    adCallback = new RewardedAdCallback() {
        @Override
        public void onRewardedAdOpened() { }

        @Override
        public void onRewardedAdClosed() {
            rewardedAd = new RewardedAd(getApplicationContext(),adLoadCallback);
        }

        @Override
        public void onUserEarnedReward(@NonNull RewardItem reward) {
            /* 
            ...
            Give rewards to the user 
            ...
            */
            rewardedAd = new RewardedAd(getApplicationContext(),adLoadCallback);
        }

        @Override
        public void onRewardedAdFailedToShow(int errorCode) {
            Toast.makeText(getApplicationContext(),getString(R.string.ad_error),Toast.LENGTH_LONG).show();
        }
    };
    rewardedAd.loadAd(new AdRequest.Builder().build(),adLoadCallback);

然后我将其显示为:

rewardedAd.show(this,adCallback);

解决方法

从您的帖子中看来,问题并非一直存在。尝试不要从此代码中创建太多新的rewardedAd实例,而您称它为三遍,应该足以使rewardedAd = new RewardedAd(getApplicationContext(),rewardKey);

,

根据documentation,没有诸如静态奖励广告之类的东西:

AdMob奖励的广告可能是点击下载的视频广告,且带有结尾 视频结束时显示的即时贴或交互式广告(例如 可播放的广告或调查。

您确定没有展示诸如调查之类的交互式广告,用户必须回答问题才能获得奖励?