Video Ad
Video Ad Managers
There are two types of video ad managers.
- GFPVideoAdManager, for stand-alone video ad.
- GFPVideoAdScheduleManager, in-stream video ad.
Prerequisites
Implementing View Controller
In the view controller that will present the ad view as subview,
-
add these properties
GFPVideoAdManager *videoAdManager
IBOutlet UIView *videoView
-
and implement this delegate protocol
GFPVideoAdManagerDelegate
- Swift
- Objective-C
// MyViewController.h
import GFPSDK
class MyViewController : UIViewController, GFPVideoAdManagerDelegate {
var videoAdManager : GFPVideoAdManager?
@IBOutlet var videoView : UIView!
}
// MyViewController.h
@import GFPSDK;
@interface MyViewController : UIViewController <GFPVideoAdManagerDelegate>
@property (nonatomic) GFPVideoAdManager *videoAdManager;
@property (nonatomic) IBOutlet UIView *videoView;
@end
GFPVideoAdManager
Initialize GFPVideoAdManager
in your view controller, say, in viewDidLoad:
and request an ad.
-
Provide
GFPVideoAdManager
with video ad Ad Unit ID (essential) as registered on GFP dashboard, UIView to enclose video view, andGFPAdParam
(optional) for better ad performance. -
Set
GFPVideoAdManagerDelegate
toGFPVideoAdManager
GFPVideoAdManager must be manually deallocated by calling destroy:
method.
- Swift
- Objective-C
override func viewDidLoad() {
super.viewDidLoad()
let adParam = GFPAdParam()
adParam.yearOfBirth = 1990
adParam.gender = .male
...
self.videoAdManager = GFPVideoAdManager(adUnitID: "YOUR_UNIT_ID", videoView: self.videoView, adParam: adParam)
self.videoAdManager?.delegate = self
self.videoAdManager?.load()
}
- (void)viewDidLoad {
[super viewDidLoad];
GFPAdParam *adParam = [[GFPAdParam alloc]init];
adParam.yearOfBirth = 1990;
adParam.gender = GFPAdParamGenderTypeMale;
...
self.videoAdManager = [[GFPVideoAdManager alloc] initWithAdUnitID:@"YOUR_UNIT_ID"
videoView:self.videoView
adParam:adParam];
self.videoAdManager.delegate = self;
[self.videoAdManager load];
}
GFPVideoAdManagerDelegate
Ad Request Events
On Ad Load Success
- Swift
- Objective-C
func videoAdManagerDidLoadAd(_ videoAdManager: GFPVideoAdManager) {
/* Manually pause content video playback */
...
self.videoAdManager?.start()
}
- (void)videoAdManagerDidLoadAd:(GFPVideoAdManager *)manager {
/* Manually pause content video playback */
...
[self.videoAdManager start];
}
On Ad Load or Play Failure
- Swift
- Objective-C
func videoAdManager(_ videoAdManager: GFPVideoAdManager, didFailWithError error: GFPError, responseInfo : GFPLoadResponseInfo) {
...
}
- (void)videoAdManager:(GFPVideoAdManager *)videoAdManager didFailWithError:(GFPError *)error responseInfo:(GFPLoadResponseInfo *)responseInfo {
...
}
Video Ad Events
See more information on GFPVideoAdManagerDelegate.h
.
On Video Ad Start
- Swift
- Objective-C
func videoAdManagerDidStartAd(_ videoAdManager: GFPVideoAdManager) {
...
}
- (void)videoAdManagerDidStartAd:(GFPVideoAdManager *)manager {
...
}
On Video Ad Completed
- Swift
- Objective-C
func videoAdManagerDidCompleteAd(_ videoAdManager: GFPVideoAdManager) {
...
}
- (void)videoAdManagerDidCompleteAd:(GFPVideoAdManager *)manager {
...
}
On Clicked
- Swift
- Objective-C
func videoAdWasClicked(_ videoAdManager: GFPVideoAdManager) {
...
}
- (void)videoAdWasClicked:(GFPVideoAdManager *)manager {
...
}
AVPlayer Log Event
It is called only if video player is configured as AVPlayer.
- Swift
- Objective-C
func videoAdManager(_ videoAdManager: GFPVideoAdManager, didReceive accessLogEvents: [AVPlayerItemAccessLogEvent]) {
...
}
- (void)videoAdManager:(GFPVideoAdManager *)videoAdManager didReceiveAccessLogEvents:(NSArray<AVPlayerItemAccessLogEvent *> *)accessLogEvents {
...
}