본문으로 건너뛰기

인스트림 동영상 광고 옵션

광고 요청 타임아웃

광고요청 이후 지정한 시간(초)경과 까지 광고 응답을 얻지 못하면 기존 요청이 무효화며, GFPVideoAdManagervideoAdManager:didFailWithError:responseInfo: 메소드가 호출됩니다. (기본값 60초)

self.videoAdManager?.requestTimeoutInterval = ...

GFPVideoAdRenderingSetting

GFPVideoAdRenderingSetting를 통해 광고 영상과 관련된 설정을 하실 수 있습니다.

GFPVideoAdManagerGFPVideoAdScheduleManager의 renderingSetting을 통해 설정 가능합니다.

광고를 요청하기 전에 값을 설정해야 동작합니다. 자세한 내용은 GFPVideoAdRenderingSetting.h 파일을 참고하세요.

let renderingSetting = GFPVideoAdRenderingSetting()
renderingSetting.startTimeoutInterval = 5 // 재생시작 타임아웃 5초
renderingSetting.bufferingTimeoutInterval = 7 // 버퍼링 타임아웃 7초
renderingSetting.bitrateKbps = 10 // 광고영상의 최대 bitrate 10Kbps
renderingSetting.preferredLanguage = .none // none 으로 설정 시 시스템 언어로 설정됨.
...

GFPVideoAdPlayerSetting

GFPVideoAdPlayerSetting을 통해 광고 Player와 관련된 설정을 하실 수 있습니다.

GFPVideoAdManagerGFPVideoAdScheduleManager의 playerSetting을 통해 설정 가능합니다.

광고를 요청하기 전에 값을 설정해야 동작합니다. 자세한 내용은 GFPVideoAdPlayerSetting.h 파일을 참고하세요.

let playerSetting = GFPVideoAdPlayerSetting(action: .pause, audioSetting: .default)
self.videoAdManager?.playerSetting = playerSetting

GFPVideoBackgroundActionType

GFPVideoBackgroundActionType을 통해 background 진입 시 광고 재생과 관련된 설정을 하실 수 있습니다.

  • GFPVideoBackgroundPause : background 진입 시 광고 Pause
  • GFPVideoBackgroundPlay : background 진입 시 광고 재생 유지
let playerSetting = GFPVideoAdPlayerSetting(action: .pause)
self.videoAdManager?.playerSetting = playerSetting

let playerSetting = GFPVideoAdPlayerSetting(action: .play)
self.videoAdManager?.playerSetting = playerSetting

GFPVideoAudioSettingType

GFPVideoAudioSettingType을 통해 광고 이어폰 연결/제거와 관련된 설정을 하실 수 있습니다.

  • GFPVideoAudioSettingDefault : AVPlayer의 기본 동작 그대로 수행. (이어폰 제거 시 AVPlayer 정지)
  • GFPVideoAudioSettingAuto : 이어폰 제거 : AVPlayer 정지, 이어폰 연결 : AVPlayer 재생
let playerSetting = GFPVideoAdPlayerSetting(audioSetting: .default)
self.videoAdManager?.playerSetting = playerSetting

let playerSetting = GFPVideoAdPlayerSetting(audioSetting: .auto)
self.videoAdManager?.playerSetting = playerSetting

disableExternalPlayback

disableExternalPlayback을 통해 광고의 external playback 허용 여부를 설정할 수 있습니다.

  • NO: 광고 플레이어의 allowExternalPlayBack은 true(=기본값) 으로 설정됩니다.
  • YES: 광고 플레이어의 allowExternalPlayBack은 false로 설정됩니다.
let playerSetting = GFPVideoAdPlayerSetting(disableExternalPlayback: false)
self.videoAdManager?.playerSetting = playerSetting

let playerSetting = GFPVideoAdPlayerSetting(disableExternalPlayback: true)
self.videoAdManager?.playerSetting = playerSetting

Volume 조정

  • 초기값 0(muted)부터 1(loudest)까지 세팅 가능. 디폴트 Volume은 1.
  • GFPVideoAdScheduleManager : 한번 세팅된 volume을 가지고 연속 광고 및 전, 중, 후 광고에서 모두 사용.
  • GFPVideoAdManager : Volume 세팅 시 단건 광고 볼륨 조정.
// GFPVideoAdScheduleManager.h
@interface GFPVideoAdScheduleManager : NSObject

@property (nonatomic, assign) float volume;

@end

// GFPVideoAdManager.h
@interface GFPVideoAdManager : NSObject

@property (readwrite, nonatomic, assign) float volume;

@end
//Example

self.scheduleManager?.volume = 1

self.videoAdManager?.volume = 1

광고 재생 문구 노출 시간

"광고 후 재생됩니다." 와 같은 광고 문구 노출 시간 설정 시 중간 광고 재생 noticeDurationSec 시간 전만큼 GFPVideoAdScheduleManagerDelegate의 showNotice 메소드가 호출됩니다.

scheduleParam.noticeDurationSec = 5.0

컨텐츠 플레이어 컴포넌트 노출 여부에 따른 광고UI 제어

자세한 내용은 GFPVideoAdScheduleManager.h 파일을 참고해 주세요.

광고의 Overlay(Seekbar, Pause, Resume, 선거 광고, 후광고 Text) 영역 노출

  • (void)showOverlayView;

광고의 Overlay(Seekbar, Pause, Resume, 선거 광고, 후광고 Text) 영역 감춤

  • (void)hideOverlayView;

RemindAd(Banner, Text) 광고 노출

  • (void)showRemindAd;

RemindAd(Banner, Text) 광고 감춤

  • (void)hideRemindAd;

동영상 광고 UI 모드 설정

서비스의 동영상 모드에 따라 displayMode를 설정해줍니다.

  • 일반 모드

샘플 이미지 샘플 이미지

self.scheduleManager.displayMode = [GFPVideoDisplayMode normal];
  • PIP 모드

샘플 이미지 샘플 이미지

self.scheduleManager.displayMode = [GFPVideoDisplayMode pip];

PIP 전용 콜백

콜백 등록

GFPVideoAdScheduleManagerPIPDelegate 을 conform 하는 pipDelegate를 scheduleManager에 등록합니다.

닫기 버튼 클릭 알림

GFPVideoAdScheduleManagerPIPDelegate의 scheduleManager:didTappedCloseBtnInPIP: 을 통해 상단의 닫기 버튼 클릭을 알립니다.

- (void)scheduleManager:(GFPVideoAdScheduleManager *)aScheduleAdManager didTappedCloseBtnInPIP:(GFPVideoAdBreakResult *)aResult {

}
리턴 버튼 클릭 알림

GFPVideoAdScheduleManagerPIPDelegate의 scheduleManager:didTappedReturnBtnInPIP: 을 통해 상단의 리턴 버튼 클릭을 알립니다.

- (void)scheduleManager:(GFPVideoAdScheduleManager *)aScheduleAdManager didTappedReturnBtnInPIP:(GFPVideoAdBreakResult *)aResult {

}

ControlView 콜백

콜백 등록

GFPVideoAdScheduleManagerDelegate 을 conform 하는 delegate를 scheduleManager에 등록합니다.

ControlView 노출 전 알림

GFPVideoAdScheduleManagerDelegate의 scheduleManager:playControlWillShow: 을 통해 컨트롤뷰의 Show 애니메이션 시작을 알립니다.

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

}
ControlView 숨김 전 알림

GFPVideoAdScheduleManagerDelegate의 scheduleManager:playControlHideShow: 을 통해 컨트롤뷰의 Hide 애니메이션 시작을 알립니다.

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

}

SMR용 리마인드 텍스트광고 노출 및 Custom 설정

해당 Custom은 GFPTextAdViewAttribute 클래스를 통해 가능합니다.

let attribute = GFPTextAdViewAttribute(container: aContainer)
attribute.backgroundColor = UIColor.yellow
attribute.textColor = UIColor.red
attribute.verticalBarColor = UIColor.cyan
attribute.closeIcon = UIImage(named: "close")
attribute.moreIoon = UIImage(named: "more")
  • container
    • 리마인드 Text 광고 영역 컨테이너 영역입니다. (디바이스 세로 모드일 때, 가로일 경우는 SDK 내부에서 처리합니다.)
    • nil일 경우 세로 모드에서 리마인드 Text가 노출되지 않습니다.
  • backgroundColor
    • 리마인드 Text의 Default background color가 아닌 background color를 지정할 수 있습니다.
  • textColor
    • 리마인드 Text의 Default test color가 아닌 text color를 지정할 수 있습니다.
  • verticalBarColor
    • 리마인드 Text의 Default verticlabar color가 아닌 verticalBar color를 지정할 수 있습니다.
  • closeIcon
    • 리마인드 Text의 Default close Icon이 아닌 close Icon을 지정할 수 있습니다.
  • moreIcon
    • 리마인드 Text의 Default more Icon이 아닌 more Icon을 지정할 수 있습니다.

NonLinear Outer Container 변경

GFPVideoAdScheduleManager의 replaceTextAdViewAttribute: 메서드를 통해서 변경된 textAdViewAttribute를 전달할 수 있습니다.

func replace(_ textAdViewAttribute: GFPTextAdViewAttribute)