AppLovin never returns event.phase == "validationExceededQuota"

Hi,

I’ve set up AppLovin and everything is working fine.

I’m only using it for incentivised ads and have frequency capping set in the AppLovin site.

I need to know when a user has reached the frequency cap for that session so that I can alert them to this.

The problem is is is never called.  Only event.phase == “failed” is called in that scenario.

So to test, I set frequency capping to 5 per session and after 5/6 ads it no longer serves ads as I would expect.

But there is no way of knowing whether it failed to load ads due to none being available in that region or whether the cap has been reached.

Here’s my code

local applovin = require( "plugin.applovin" )   local alert    local function applovinlistener( event ) if ( event.phase == "init" ) then print( "AppLovin event: initialization successful" ) applovin.load( true ) elseif ( event.phase == "loaded" ) then print( "AppLovin event: " .. tostring(event.type) .. " ad loaded successfully" ) elseif ( event.phase == "displayed" or event.phase == "playbackBegan" ) then print( "AppLovin event: " .. tostring(event.type) .. " ad displayed" )   elseif event.phase == "hidden" then  print( "AppLovin event: " .. tostring(event.type) .. " ad hidden" ) applovin.load( true ) elseif event.phase == "playbackEnded" then print( "AppLovin event: " .. tostring(event.type) .. " ad ended" ) elseif ( event.phase == "clicked" ) then print( "AppLovin event: " .. tostring(event.type) .. " ad clicked/tapped" )   elseif ( event.phase == "validationExceededQuota") then alert = native.showAlert( "Reward Quota Exceeded", "Your video reward quota for this session has reached its limit.  Please try again later.", { "OK" }) print( "AppLovin event: " .. tostring(event.type) .. " ad and/or reward exceeded quota" ) elseif ( event.phase == "failed" ) then print( "AppLovin event: " .. tostring(event.type) .. " ad failed to load" ) print("Error:",tostring(event.response)) print(event.isError) alert = native.showAlert( "Error", "Video failed to load.", { "OK" }) elseif ( event.phase == "declinedToView" ) then print( "AppLovin event: user declined to view " .. tostring(event.type) .. " ad" ) applovin.load( true )   elseif ( event.phase == "validationSucceeded" ) then print( "AppLovin event: " .. tostring(event.type) .. " ad viewed and reward approved by AppLovin server" ) --update coins here local amountearned = event.data.amount globes.coins = globes.coins + amountearned loadsave.settings.coins = globes.coins loadsave.savegame() coinstring.text = globes.coins   elseif (event.phase == "validationFailed") or (event.phase == "validationRejected" ) then print( "AppLovin event: " .. tostring(event.type) .. " ad failed, or was rejected" ) alert = native.showAlert( "Reward Failed", "Your video reward has either failed or been rejected.  Please try again later.", { "OK" }) end end   applovin.init( applovinlistener, { sdkKey= applovinkey, verboseLogging = false} )

The plugin doesn’t do any special processing.

Unfortunately there’s not much we can do as it’s the underlying Applovin SDK that triggers the events.

I’d suggest reporting this issue to Applovin to see if they can offer some advice.

Thanks Ingemar,

I decided to run with my own frequency capping by only allowing the user to press the button once every 30 mins.   It’s more user friendly as it lets the user know via a countdown timer how long until they can get more incentivised goodies.

The plugin doesn’t do any special processing.

Unfortunately there’s not much we can do as it’s the underlying Applovin SDK that triggers the events.

I’d suggest reporting this issue to Applovin to see if they can offer some advice.

Thanks Ingemar,

I decided to run with my own frequency capping by only allowing the user to press the button once every 30 mins.   It’s more user friendly as it lets the user know via a countdown timer how long until they can get more incentivised goodies.