The logic of when or whether to grant a reward is controlled within your app. We do provide a few callbacks to help you when determining whether to grant a reward. Most relevant callback for rewarding the users are:
1. Reward Verification Callback:
When you make a request to show a rewarded video our SDK will verify the user against fraud, and check if they are valid for a reward from our perspective. If the user passed the verification successfully, we will notify your app using a callback:
Android: userRewardVerified
iOS: didSucceedWithResponse
Unity: onAppLovinEventReceived called with ev contains "REWARDAPPROVEDINFO"
2. Video Completed Callback:
In addition, When the video was completed, we will notify your app using a callback:
Android: videoPlaybackEnded with fullyWatched == true
iOS: videoPlaybackEndedInAd with wasFullyWatched == YES
Unity: onAppLovinEventReceived called with ev contains "VIDEOSTOPPED" and was not called with ev contains "USERCLOSEDEARLY"
Make sure to distinguish between completion of rewarded videos and video interstitials (non-incentivized interstitials).
One possibility is rewarding the user if the reward was verified for this video play, but only upon completion of the video. For this method you can set a boolean flag to indicate that the reward was verified, and check its value upon video completion.