问题描述
我正在使用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奖励的广告可能是点击下载的视频广告,且带有结尾 视频结束时显示的即时贴或交互式广告(例如 可播放的广告或调查。
您确定没有展示诸如调查之类的交互式广告,用户必须回答问题才能获得奖励?