본문으로 건너뛰기

생중계 광고

GFPSDK에서는 LIVE 스트리밍 중 광고 연동을 희망하시는 시점에 광고 로더를 생성하여 요청하는 형태의 광고를 제공합니다.
광고 요청은 원하는 광고 개수만큼 스케줄 생성할 수 있고, 동영상 플레이어는 AVPlayer로 SDK에서 제공합니다.

생중계 광고 요청하기

GFPVideoScheduleManager 생성 및 GFPVideoAdScheduleManagerDelegate 구현

광고 스케줄 생성

generatePreRollVideoSchedule API를 통해서 GFPVideoSchedule 정보를 생성합니다.
adUnitId(String) : 광고 ID
adsCount(INT) : 요청 광고 갯수

let videoSchedule = GFPVideoAdScheduleManager.generatePreRollVideoSchedule("schdule_video_id", adsCount: 3) 

광고 로드 시작하기

로드된 스케줄을 GFPVideoAdScheduleManager로 전달하여 광고 로드를 시작합니다.

scheduleManager.loadSchedule(with: videoSchedule) 
정보

adsCount로 요청주신 광고가 로드 시에 실패할 수 있으므로 갯수가 완전히 보장되지는 않습니다.
adsCount만큼의 광고 요청, 실패 콜이 GFPVideoAdScheduleManagerDelegate를 통해서 발생합니다.
해당 콜을 토대로 전체 로드된 광고 갯수를 유추할 수 있습니다.

카운트 광고 뷰 추가하기

SKIP 버튼 및 SKIP Label 위에 추가되는 뷰의 필요성으로 인해, 서비스에서 필요한 뷰 주입 기능입니다.

SDK로 넘겨질 뷰 구현

접근성 처리를 위한 GFPVideoAdAdditionalViewDataAccessibilityProvider 구현이 필수입니다.
간단한 클래스 예제는 다음과 같습니다. 해당 클래스는 UILabel을 멤버로 갖고, subView로 가지는 일반 뷰입니다.
접근성 처리를 위해서 접근성 오브젝트로 label을 반환합니다.

public class AdAdditionalTestView: UIView, GFPVideoAdAdditionalViewDataAccessibilityProvider {

public let label = UILabel()

override init(frame: CGRect) {
super.init(frame: frame)
setupView()
}
private func setupView() {
addSubview(label)
}

func additionalAdAccessibilityView() -> UIView {
return label
}
}

렌더링 세팅에 뷰 할당

위에 작성된 클래스로 생성된 뷰를 GFPScheduleManagerRenderingSettingadAdditionalView로 추가합니다. 해당 선언된 프로퍼티에 SDK에 넘겨줄 뷰를 셋팅하고, 스케쥴 매니저의 RenderingSetting에 할당합니다. 이후에 광고를 로드하면, SKIP Button의 위쪽에 할당된 뷰가 마진 8의 값으로 노출되게 됩니다. 로드할 때 전달된 광고 뷰를 조작하면 중간에 광고 뷰의 사이즈를 변경하거나, 내용을 조절하더라도 그대로 반영됩니다.

/**     
* 인스트림의 SKIP 버튼 위의 Additional Info를 표기할 뷰입니다.
* adCount 등에 사용됩니다.
*/
public var adAdditionalInfoView:(UIView & GFPVideoAdAdditionalViewDataAccessibilityProvider)?