Skip to main content

Getting Started

The GFP SDK helps you display in-stream video ads.

샘플 이미지

Prerequisites

Implementing View Controller

In the view controller that will present the ad view as subview,

  • add these properties

    GFPVideoAdScheduleManager *scheduleManager

    IBOutlet UIView *videoView

    AVPlayer *contentPlayer

  • and implement this delegate protocol

    GFPVideoAdScheduleManagerDelegate

// MyViewController.h

import GFPSDK

class MyViewController : UIViewController, GFPVideoAdScheduleManagerDelegate {
var scheduleManager : GFPVideoAdScheduleManager?

@IBOutlet var videoView : UIView!
var contentPlayer : AVPlayer?
}

GFPVideoAdScheduleManager

Initialize GFPVideoAdScheduleManager in your view controller, say, in viewDidLoad: and request an ad.

  • Provide GFPVideoAdScheduleManager with video ad Schedule ID (essential) as registered on GFP dashboard, an AVPlayer instance, UIView to enclose video view, and GFPAdScheduleParam (optional) for better ad performance.

  • Set GFPVideoAdScheduleManagerDelegate (required) to GFPVideoAdScheduleManager

danger

GFPVideoAdScheduleManager must be manually deallocated by calling destroy: method.

override func viewDidLoad() {
super.viewDidLoad()

let adParam = GFPAdParam()
adParam.yearOfBirth = 1990
adParam.gender = .male
...

let scheduleParam = GFPAdScheduleParam(placementPolicy: .full, duration: CMTimeGetSeconds(self.duration!), param: adParam)
scheduleParam.noticeDurationSec = 5.0

self.scheduleManager = GFPVideoAdScheduleManager(adScheduleID: "YOUR_SCHEDULE_ID", contentPlayer: contentPlayer, videoView: videoView, scheduleParam: scheduleParam)

self.scheduleManager?.renderingSetting = GFPVideoAdRenderingSetting()

self.scheduleManager?.delegate = self
self.scheduleManager?.qoeDelegate = self

self.scheduleManager?.loadSchedule()
}

GFPVideoAdScheduleManagerDelegate

Schedule Events

On Schedule Request Success

func scheduleManager(_ aScheduleAdManager: GFPVideoAdScheduleManager, didLoadedSchedule aAdBreak: [GFPVideoAdBreak]?) {
...
}

On Schedule Request Failure

func scheduleManager(_ aScheduleAdManager: GFPVideoAdScheduleManager, didFailScheduleWithError aError: GFPError) {
...
}

On Schedule Complete

func scheduleManagerDidCompleted(_ aScheduleAdManager: GFPVideoAdScheduleManager) {
...
}

Video Playback Events

On Resuming Content

Called when the player resumes, in other words, continues to play content video in case of ad schedule failure or ad video fails to play

func scheduleManagerContentResumeRequest(_ aScheduleAdManager: GFPVideoAdScheduleManager) {
...
}

On Pausing Content

Called when the player pauses content to play ad video.

func scheduleManagerContentPauseRequest(_ aScheduleAdManager: GFPVideoAdScheduleManager) {
...
}

Video Ad Events

See more information in GFPVideoAdScheduleManagerDelegate.h

On Ad Failure

Ad failure includes ad load and ad video playback failure.

func scheduleManager(_ aScheduleAdManager: GFPVideoAdScheduleManager, didFailWith aResult: GFPVideoAdBreakResult) {
...
}

On Ad Loaded

func scheduleManager(_ aScheduleAdManager: GFPVideoAdScheduleManager, didLoadAd aResult: GFPVideoAdBreakResult) {
...
}

On Ad Video Started

func scheduleManager(_ aScheduleAdManager: GFPVideoAdScheduleManager, didStartAd aResult: GFPVideoAdBreakResult) {
...
}

On Ad Video Ready

func scheduleManager(_ aScheduleAdManager: GFPVideoAdScheduleManager, didStartReadyAd aResult: GFPVideoAdBreakResult) {
/* 1. Manually hide preliminary ad notice label */
/* 2. Manually stop content video player. */
...
self.scheduleAdManager?.start(with: true) /* 3. Start ad video */
}

On Video Ad Playback Ended

func scheduleManager(_ aScheduleAdManager: GFPVideoAdScheduleManager, didCompleteAd aResult: GFPVideoAdBreakResult) {
...
}

On Show Preliminary Ad Notice Label

GFPAdScheduleParam.noticeDurationSec must be set to call this delegate method.

SDK only notifies the time to show the notice label through this method. It is app's will to manually render the notice label view.

func scheduleManager(_ aScheduleAdManager: GFPVideoAdScheduleManager, showAdNotice aDuration: Int) {
/* Show to notice label */
...
}

On Clicked

func scheduleManager(_ aScheduleAdManager: GFPVideoAdScheduleManager, wasClicked aResult: GFPVideoAdBreakResult) {
...
}

AVPlayer Log Event

It is called only if video player is configured as AVPlayer.

func scheduleManager(_ aScheduleAdManager: GFPVideoAdScheduleManager, didReceive accessLogEvents: [AVPlayerItemAccessLogEvent]) {
...
}

Remind(NonLinear) Ad Events

See more information in GFPNonLinearDelegate.h

On Remind Ad Hidden

It is called when the video duration is completed, device being rotated or close button being clicked.

func nonLinearDidHide(_ type: GFPRemindType) {
...
}

On Remind Ad Clicked

func nonLinearWasClicked(_ type: GFPRemindType) {
...
}

On Remind Ad View Impression

func nonLinear(onActiveImpression type: GFPRemindType) {
...
}

ControlView Callbacks

Set a GFPVideoAdScheduleManagerDelegate to the GFPVideoAdScheduleManager

On ControlView Will Show

The duration refers to animation's, when showing the control buttons.

- (void)scheduleManager:(GFPVideoAdScheduleManager *)aScheduleAdManager playControlWillShow:(NSTimeInterval)duration {

}

On ControlView Will Hide

The duration refers to animation's, when hiding the control buttons.

- (void)scheduleManager:(GFPVideoAdScheduleManager *)aScheduleAdManager playControlWillHide:(NSTimeInterval)duration {

}