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
GFPRewardedAdManager
with video ad Ad Unit ID (essential) as registered on GFP dashboard, UIView to enclose video view, andGFPAdParam
(optional) for better ad performance. -
Set
GFPRewardedAdManagerDelegate
toGFPRewardedAdManager
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.