I agree with @agramonte- if you’re getting an ad the first time but not later, it’s because you’re not loading a new ad after you play the first one.
The event.phase I use for AdMob is “displayed” not “closed”. In your listener, you should be able to do something simple like:
if ( event.phase == "displayed" ) then
print( "Ad was displayed, trying to load a new one..." )
if ( admob.isLoaded( "interstitial" ) == false ) then
print( "Reloading an interstitial ad!" )
admob.load( "interstitial", { adUnitId = adMobInterstitialID, hasUserConsent = true } )
end
if ( admob.isLoaded( "rewardedVideo" ) == false ) then
print( "Reloading a reward ad!" )
admob.load( "rewardedVideo", { adUnitId = adMobRewardedID, hasUserConsent = true } )
end
end
Unfortunately, my own code is too tied in to how my waterfall works to be helpful, so I just wrote this off the cuff. You’ll want to double check it for dumb syntax errors, use your own variable system for hasUserConsent, etc. and once you’ve got it working write it into your system in a way that makes sense, but, in principle, this should reload your ads after you display them.
Also, I don’t know what the timing is for AdMob to “unloading” and ad, so if the above doesn’t work, try pulling the if ( admob.isLoaded... conditional and just try loading both ad types every time event.phase == "displayed" or tie it to event.type. Lots of different approaches.