Я думаю, вы можете использовать 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");
}
};