> For the complete documentation index, see [llms.txt](https://ios-docs.adster.tech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ios-docs.adster.tech/ad-types/rewarded-ad.md).

# Rewarded Ad

To receive Rewarded Ads, conform to the `MediationAdDelegate` protocol. Once the ad is loaded, it can be presented by calling `presentRewarded(from:)`.

**Implementation:**

```swift
extension RewardedAdManager: MediationAdDelegate {
    func onRewardedAdLoaded(rewardedAd: AdsFramework.MediationRewardedAd) {
        rewardedAd.presentRewarded(from: self)
        rewardedAd.eventDelegate = self
    }
    
    func onAdFailedToLoad(error: AdsFramework.AdError) {
        print("Rewarded Ad request failed with reason \(error.description)")
    }
    
    func onAdRevenuePaid(revenue: Double, adUnitId: String, network: String, currency: String, precisionType: AdsFramework.PrecisionType) {
        print("Revenue: \(revenue) \(currency), adUnitId: \(adUnitId), network: \(network), precision: \(precisionType)")
        
    }
}
```

**Tracking Events:**

To track rewarded video events, conform to `MediationRewardedAdEventDelegate`:

```swift
extension RewardedAdManager: MediationRewardedAdEventDelegate {
    func recordRewardedClick() {
        print("Rewarded ad clicked")
    }
    
    func recordRewardedImpression() {
        print("Rewarded ad impression recorded")
    }
    
    func didRewardUser(reward: AdsFramework.AdReward) {
        print("User rewarded: \(reward.amount) \(reward.type)")
    }
    
    func didStartVideo() {
        print("Rewarded video started")
    }
    
    func didEndVideo() {
        print("Rewarded video ended")
    }
}
```
