Как я могу показывать рекламу каждые 3 раза на экране в React Native? - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть экран сведений о рецепте, и я хочу добавлять рекламное объявление каждый раз, когда пользователь входит, чтобы увидеть детали рецепта, но я хочу ограничить его показ каждые 3 раза, потому что, когда пользователь выходит и снова входит в него рецепт или другой рецепт снова показывает объявление, и это то, что я не хочу.

как я могу это сделать?

 import { AdMobInterstitial, setTestDeviceIDAsync } from 'expo-ads-admob';

 export default class RecipeDetails extends Component {

  initAds = async () => {

  const INTERSTITIAL_ID = Platform.OS == "ios" ? ConfigApp.IOS_INTERSTITIAL_ID : ConfigApp.ANDROID_INTERSTITIAL_ID;

  AdMobInterstitial.setAdUnitID(INTERSTITIAL_ID);
  await setTestDeviceIDAsync(ConfigApp.TESTDEVICE_ID);
  await AdMobInterstitial.requestAdAsync({ servePersonalizedAds: true});
  await AdMobInterstitial.showAdAsync();

  };

  componentDidMount() {

       this.initAds();

     }

  render() {

    return (
<View>
// content
</View>
    );
  }

1 Ответ

0 голосов
/ 16 апреля 2020

Я думаю, вы можете использовать asyn c -storage для хранения времени каждый раз, когда вы вызываете рекламу. И читать каждый раз, когда вы сохранили, чтобы сравнить, если он равен трем, прежде чем показывать рекламу?

Хранить данные (раз)

storeData = async () => {
  try {
    await AsyncStorage.setItem('@storage_Key', 'stored value')//
  } catch (e) {
    // saving error
  }
}

Читать данные (раз)

getData = async () => {
  try {
    const value = await AsyncStorage.getItem('@storage_Key')
    if(value !== null) {
      // value previously stored
    }
  } catch(e) {
    // error reading value
  }
}

-------------- обновление ---------------- Что-то вроде этого -------

initAds = async () => {

  const INTERSTITIAL_ID = Platform.OS == "ios" ? ConfigApp.IOS_INTERSTITIAL_ID : ConfigApp.ANDROID_INTERSTITIAL_ID;
  try{
      const value = await AsyncStorage.getItem('play_ad_times')
      if(value !== null) {
          if(value == "3"){ 
             await AsyncStorage.setItem('play_ad_times', "1"); //If three times back to one times and play once

             AdMobInterstitial.setAdUnitID(INTERSTITIAL_ID);
             await setTestDeviceIDAsync(ConfigApp.TESTDEVICE_ID);
             await AdMobInterstitial.requestAdAsync({ servePersonalizedAds: true});
             await AdMobInterstitial.showAdAsync();

          }else{
             var temp = parseInt(value)+1;
             await AsyncStorage.setItem('play_ad_times', temp.toString() );
          }
      // value previously stored
      }else{
          //first time in
          await AsyncStorage.setItem('play_ad_times', "1"); //Set time 1
          AdMobInterstitial.setAdUnitID(INTERSTITIAL_ID);
          await setTestDeviceIDAsync(ConfigApp.TESTDEVICE_ID);
          await AdMobInterstitial.requestAdAsync({ servePersonalizedAds: true});
          await AdMobInterstitial.showAdAsync();


          }
      }catch(e) {
        // error reading value
        await AsyncStorage.setItem('play_ad_times', "1");
      }

};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...