Rewarded Ads
Full-screen opt-in video ads that grant a reward when the user finishes watching. Each placement uses a Zone ID from the Empower dashboard.
Load and Show
using Empower.MobileAds;
// Pre-load (after OnSdkReady)
EmpowerAds.LoadRewardedAd("YOUR_REWARDED_ZONE_ID");
// Show when the user taps "Watch ad for reward"
EmpowerAds.ShowRewarded("YOUR_REWARDED_ZONE_ID");
Handling Status — grant the reward correctly
Grant the reward only on AdStatus.Rewarded. Never grant on Shown, CompletePlaying, Closed, or Skipped.
EmpowerAds.OnRewardedStatusChanged += (status, zoneId) =>
{
if (zoneId != "YOUR_REWARDED_ZONE_ID") return;
switch (status)
{
case AdStatus.Ready:
// enable your "Watch Ad" button
break;
case AdStatus.Rewarded:
GrantReward(); // ✅ the ONLY place to grant
break;
case AdStatus.Closed: // dismissed after earning
case AdStatus.Skipped: // dismissed without earning
EmpowerAds.LoadRewardedAd("YOUR_REWARDED_ZONE_ID"); // reload
break;
case AdStatus.Failed:
// disable button / retry later
break;
}
};
Key statuses: Ready, Shown, CompletePlaying, Rewarded (grant reward HERE), Closed (dismissed after earning — reload here), Skipped (dismissed without earning — reload here too), Failed.
On iOS a rewarded ad dismisses as
Closedwhen the user earned the reward and asSkippedwhen they closed it early without earning. Do your reload/cleanup on both, and grant only onRewarded.
Best Practices
- Grant only on
Rewarded— this is the most common rewarded integration mistake. - Handle both dismiss statuses — reload and reset your UI on
ClosedandSkipped. - Gate the entry point — enable the "Watch Ad" button on
Ready, disable onFailed. - Subscribe before
Initialize()so you never miss theRewardedcallback.