Getting Started
Rewarded ads are full-screened image or video ads that rewards users for viewing the ad.

Prerequisites
Implementing View Controller
In the view controller that will present the ad view as subview,
-
add this property
GFPRewardedAdManager *adManager -
and implement this delegate protocol
GFPRewardedAdManagerDelegate
- Swift
- Objective-C
// MyViewController.h
import GFPSDK
class MyViewController : UIViewController, GFPRewardedAdManagerDelegate {
private var adManager : GFPRewardedAdManager?
}
// MyViewController.h
@import GFPSDK;
@interface MyViewController : UIViewController <GFPRewardedAdManagerDelegate>
@property (nonatomic) GFPRewardedAdManager *adManager;
@end
GFPRewardedAdManager
Initializing GFPRewardedAdManager
Initialize GFPRewardedAdManager in your view controller, say, in viewDidLoad:.
-
Provide
GFPRewardedAdManagerwith video ad Ad Unit ID (essential) as registered on GFP dashboard, UIView to enclose video view, andGFPAdParam(optional) for better ad performance. -
Set
GFPRewardedAdManagerDelegatetoGFPRewardedAdManager
Use GFPRewardedAdManager instance for only single ad request, than create another for the next ad request. It is designed to manage the life cycle of only single ad.
- Swift
- Objective-C
override func viewDidLoad() {
super.viewDidLoad()
let adParam = GFPAdParam()
adParam.yearOfBirth = 1990
adParam.gender = .male
...
self.adManager = GFPRewardedAdManager(unitID: "UnitID", adParam: adParam)
self.adManager?.delegate = self
self.adManager?.requestTimeoutInterval = 60
}
- (void)viewDidLoad {
[super viewDidLoad];
GFPAdParam *adParam = [[GFPAdParam alloc]init];
adParam.yearOfBirth = 1990;
adParam.gender = GFPAdParamGenderTypeMale;
...
self.adManager = [[GFPRewardedAdManager alloc] initWithUnitID:@"UnitID" adParam:adParam];
self.adManager.delegate = self;
self.adManager.requestTimeoutInterval = 60;
}
Loading Ad
Since AppLovin and IronSource runs on a singleton to for loading ads, you can preload only one ad at a time, per Ad Unit ID.
- Swift
- Objective-C
self.adManager?.load()
[self.adManager load];
Showing Ad
On succefully loading ad, GFPRewardedAdManagerDelegates provides ad through rewardedAdManager:didLoadAd:.
Than show the rewarded ad at the desired moment, using GFPRewardedAdManager show:
Loaded ads don't have to be shown as soon as being loaded. Thus, preload ads for app's performance.
Be mindful, though, that loaded ads are valid for a only limited time. ex) for DFP, FAN: 60 mins.
- Swift
- Objective-C
self.adManager?.show(self)
[self.adManager show:self];
Resuming Video Ad
For S2S rewarded video ads, if rewarded ad's viewController is presented by super-viewController's present: method, the video is paused by default.
Video must be resumed manually through the GFPRewardedAdMananger by,
- Swift
- Objective-C
GFPRewardedAdManager.resumeCurrentRewardVideo()
[GFPRewardedAdManager resumeCurrentRewardVideo];
GFPRewardedAdManagerDelegate
Load Events
On Load Success
- Swift
- Objective-C
func rewardedAdManager(_ manager: GFPRewardedAdManager, didLoad rewardedAd: GFPRewardedAd) {
...
}
- (void)rewardedAdManager:(nonnull GFPRewardedAdManager *)manager didLoadAd:(nonnull GFPRewardedAd *)rewardedAd {
...
}
On Load Failure
rewardedAdMananger:didFailWithError emits ad load failure, show errors, valid timeout, etc.
- Swift
- Objective-C
func rewardedAdManager(_ manager: GFPRewardedAdManager, didFailWithError error: GFPError, responseInfo:GFPLoadResponseInfo!) {
...
}
- (void)rewardedAdManager:(nonnull GFPRewardedAdManager *)manager didFailWithError:(nonnull GFPError *)error responseInfo:(nullable GFPLoadResponseInfo *)responseInfo {
...
}
LifeCycle Events
On Start Showing Ad
- Swift
- Objective-C
func rewardedAdManager(_ manager: GFPRewardedAdManager, didStart rewardedAd: GFPRewardedAd) {
...
}
- (void)rewardedAdManager:(nonnull GFPRewardedAdManager *)manager didStartAd:(nonnull GFPRewardedAd *)rewardedAd {
...
}
On Rewarding
- Swift
- Objective-C
func rewardedAdManager(_ manager: GFPRewardedAdManager, didComplete rewardedAd: GFPRewardedAd, with reward: GFPReward?) {
...
}
- (void)rewardedAdManager:(nonnull GFPRewardedAdManager *)manager didCompleteAd:(nonnull GFPRewardedAd *)rewardedAd withReward:(nullable GFPReward *)reward {
...
}
FAN and some ad networks does not emit GFPReward, thus, nil is returned instead.
On Dismiss
- Swift
- Objective-C
func rewardedAdManager(_ manager: GFPRewardedAdManager, didClose rewardedAd: GFPRewardedAd) {
...
}
- (void)rewardedAdManager:(nonnull GFPRewardedAdManager *)manager didCloseAd:(nonnull GFPRewardedAd *)rewardedAd {
...
}
On Click
- Swift
- Objective-C
func rewardedAdManager(_ manager: GFPRewardedAdManager, wasClickedAd rewardedAd: GFPRewardedAd) {
...
}
- (void)rewardedAdManager:(nonnull GFPRewardedAdManager *)manager wasClickedAd:(nonnull GFPRewardedAd *)rewardedAd {
...
}
For Google DFP = 7.X.X click events are not supported.