I use this code to determine whether the ad has been shown successfully:
function M.show_rewarded_video_ad( cb )
if M.rewarded_video_ad_is_loaded then
local function on_show_rewarded_video( self,success,error )
M.rewarded_video_ad_is_loaded = false
local actual_success = success and not error
cb( actual_success )
end
fbinstant.show_rewarded_video(M.rewarded_ad_id, on_show_rewarded_video)
end
end
No idea to be honest. The official API for an ad instance only mentions four outcomes: ADS_NOT_LOADED, INVALID_PARAM, NETWORK_FAILURE, INVALID_OPERATION. None of them seem to indicate if the ad was shown to the end or not. I’d probably ask in the Instant Games developer group on Facebook.
Out of curiosity I skipped an ad on one of the currently most promoted Facebook Instant game. Sure enough, the reward is rewarded even if you skip the ad. Defold appears out of the loop!