response-native-firebase / admob rewardedAd.load () не работает во второй раз - PullRequest
0 голосов
/ 09 февраля 2020

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()

1 Ответ

0 голосов
/ 14 марта 2020

Как насчет автоматической загрузки после показа?

rewardedAd.onAdEvent((type, error, reward) => {
  ...
  if (!rewardedAd.loaded) rewardedAd.load()
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...