【发布时间】:2020-02-09 15:41:24
【问题描述】:
rewardedAd.load() 不会在第二次加载广告。 一切正常,加载、显示、回调显示的第一个广告,当我再次执行rewardedAd.load() 加载另一个广告时,没有任何反应。没有错误,没有回调。然后显然调用rewardedAd.show() 会导致admob/not-ready 错误。
这个问题出现在 admob/firebase 版本 6.2.0 和 6.3.1
if(environment == 'development'){
rewardedAd = RewardedAd.createForAdRequest(TestIds.REWARDED)
}
else if(environment == 'production'){
rewardedAd = RewardedAd.createForAdRequest(settings.adsUnitIds.ios.real)
}
// --
rewardedAd.onAdEvent((type, error, reward) => {
console.log('onAdEvent, type:', type, ', error:', error)
if(type === RewardedAdEventType.LOADED){
dispatch({ type: 'AD_LOADED' })
}
if(type == 'closed'){ // RewardedAdEventType.CLOSED isn't defined (probably bug), so just made it "closed", which works
console.log('ad closed, rewarded:', rewarded)
if(rewarded == true){
if(!doubleReward){
dispatch(rewardCoins(settings.coins.ad, 'watched-ad'))
}
else {
dispatch(rewardCoins(settings.coins.ad*2, 'watched-ad'))
}
rewarded = false
}
dispatch({ type: 'AD_CLOSED', rewarded: rewarded })
if(showEnded) showEnded()
setTimeout(() => { // Cannot reproduce bug where re-request of ad isn't available so adding this just in case
console.log('Start ad re-request')
console.log('Do we have rewardedAd variable? :', rewardedAd)
rewardedAd.load()
}, 200)
}
if(type === RewardedAdEventType.EARNED_REWARD){
console.log('earned reward!')
dispatch({ type: 'AD_REWARDED' })
rewarded = true
}
if(type === RewardedAdEventType.ERROR){
console.info('Some error with ad:', error)
}
})
rewardedAd.load()
【问题讨论】:
标签: react-native admob react-native-firebase