Admob Rewarded app closes instantly (IOS only)

I have ejected my Expo app a while ago and just this week started putting a rewarded ad in my app. I installed the expo-ads-admob package and followed the install instructions and now have the following working;
Banner ad (both IOS and android)
Rewarded Ad (working 100% with android only)

The idea is that users view a Rewarded Ad and afterwards a upload with selected information starts.

The problem is that on IOS the ad is loaded, viewable for a second and I can hear the audio start, however it instantly closes and the app continues uploading. The Android app waits until users close the app and starts the submitHandler.

Is anyone familiar with this problem and knows a fix? Below is some code and explanation to hopefully understand it better;

Users click on a upload button and get the choice to pay or do it for free. After selecting free the addUsingAdHandler is started. SetisAddMode closes the modal, after that I get the console log the ad is started and the video is shown.

    const addUsingAdHandler = async () => {
        setIsAddMode(false)
        console.log('Rewared video is shown')
        await AdMobRewarded.showAdAsync();
    }

On opening the page I add the eventListeners as instructed. The rewardedVideoDidClose listener is used to eventually start the upload.

    useEffect(() => {
        AdMobRewarded.setTestDeviceID("EMULATOR");
        AdMobRewarded.setAdUnitID('ca-app-pub-3940256099942544/5224354917');

        AdMobRewarded.addEventListener("rewardedVideoDidRewardUser", () =>
            console.log("Reward is binnen gekomen. ")
        );
        AdMobRewarded.requestAdAsync();
        AdMobRewarded.addEventListener("rewardedVideoDidLoad", () =>
            console.log("Video did load")
        );
        AdMobRewarded.addEventListener("rewardedVideoDidFailToLoad", () =>
            console.log("Failed to load")
        );
        AdMobRewarded.addEventListener("rewardedVideoDidOpen", () =>
            console.log("Video did open")
        );
        **AdMobRewarded.addEventListener("rewardedVideoDidClose", () => {**
**            console.log("video did close")**
**            submitHandler()**
**        }**
        );
        AdMobRewarded.addEventListener("rewardedVideoWillLeaveApplication", () =>
            console.log("Video did leave application")
        );
        AdMobRewarded.addEventListener("rewardedVideoDidStart", () =>
            console.log("Video did start")
        );
    }, [])

So When pushing the upload for free button the ad is shown for a second however it inmediatly is closed (logs show this using the event listeners) and the upload starts as expected. On my Android emulator the ad is shown until I press the close button as I would expect to have also on my IOS emulator.

Has anyone come across this as well before?

React-Native version; 0.59.10
Expo Version; 35.0.0
Expo-ads-admob version: 8.0.0

1 Like

I also had this problem and can’t find the way. React-native version: 0.61.4 Expo version: 36.0.0 expo-ads-admob version 8.0.0

1 Like

Me too.

Was this problem fixed?
In android it works fine but my problem is that when I finish watching the video, or not when I press close video the app is redirected to the expo menu and it did not make the screen where the video was opened without showing any error. And when in the expo menu I give the application it takes me to that screen without loading and saves the state
Does that happen to someone?

Expo sdk 39
“expo-ads-admob”: “~8.3.0”,