Skip to main content

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 Closed when the user earned the reward and as Skipped when they closed it early without earning. Do your reload/cleanup on both, and grant only on Rewarded.

Best Practices

  • Grant only on Rewarded — this is the most common rewarded integration mistake.
  • Handle both dismiss statuses — reload and reset your UI on Closed and Skipped.
  • Gate the entry point — enable the "Watch Ad" button on Ready, disable on Failed.
  • Subscribe before Initialize() so you never miss the Rewarded callback.