Skip to main content

스케줄러

1. 역할

스케줄러를 통해서 아래 기능들을 사용할 수 있습니다.

2. 스케줄러 생성하기

gfpInstream.createAdScheduleManager()를 통해 스케줄러를 생성합니다.

const videoAdScheduleManager = gfpInstream.createAdScheduleManager(props);

2-1. 생성 파라미터

info

HTML 계층은 아래와 같은 구조로 이루어져있습니다.

|-- BaseElement
|-- ContentVideo // 콘텐츠 영역
|-- AdVideoContainer // 광고 영역

baseElementId

  • required, string
  • BaseElement의 id 값

contentVideo

  • required, HTMLVideoElement
  • ContentVideo 영역의 HTMLVideoElement 레퍼런스

adVideoContainer

  • required, HTMLDivElement
  • AdVideoContainer 영역의 HTMLDivElement 레퍼런스

adPlayerType

  • required, string
  • 'HTML5_PC', 'HTML5_MO', 'SMART_TV' 중 선택
  • 광고 인터페이스 환경

adScheduleParam

  • required, object
    • adSchduleId
      • required, string
      • 스케줄 아이디
    • contentDuration
      • required, number
      • 콘텐츠 재생시간 (second 단위)
    • adNoticeDuration
      • optional, number
      • 중간 광고 알림 문구 노출 시간 (second 단위)
    • contentsStartOffset
      • optional, number
      • 0초부터 시작되지 않는 특수한 콘텐츠인 경우 설정 (second 단위)

adSchedulePolicy

  • required, object
    • pre
      • required, boolean
      • 전광고 요청 여부
    • mid
      • required, boolean
      • 중간광고 요청 여부
    • post
      • required, boolean
      • 후광고 요청 여부

customParam

  • optional, object
  • 커스텀한 파라미터 전달 필요 시 사용
info

(참조) 타입스크립트 인터페이스 코드

interface SchedulerProperties {
baseElementId: string;
contentVideo: HTMLVideoElement;
adVideoContainer: HTMLDivElement;
adPlayerType: 'HTML5_PC' | 'HTML5_MO' | 'SMART_TV';
adScheduleParam: {
adScheduleId: string;
contentDuration: number;
adNoticeDuration?: number;
contentsStartOffset?: number;
};
adSchedulePolicy: {
pre: boolean;
mid: boolean;
post: boolean;
};
customParam?: Record<string, string | string[] | number>;
}

2-2. AdDisplayContainer 초기화하기

스케줄러를 생성하고 광고를 재생하기 전 반드시 AdDisplayContainer가 초기화되어야합니다.

AdDisplayContainerAdVideoContainer 하위에서 광고 비디오 영역을 준비하고 감싸는 역할을 합니다.

  • 방법 1. VideoAdScheduleManager 생성 후 AdDisplayContainer 초기화
videoAdScheduleManager.initializeAdDisplayContainer();
  • 방법 2. AdDisplayContainer 생성 및 초기화 이후 VideoAdScheduleManager 내 주입
const adDisplayContaierInfo = gfpInstream.createAdDisplayContainerInfo({
adVideoContainer,
contentVideo,
adPlayerType
});
adDisplayContaienr.initialize();

videoAdScheduleManager.setAdDisplayContainerInfo(adDisplayContainerInfo);
info

광고의 사운드 재생을 최대한 보장하기 위해 유저의 클릭 이벤트 스코프 내에서 초기화 함수가 호출되어야합니다.

자세한 내용은 사운드 재생를 참고해주세요.

3. 스케줄 요청하기

인스트림 광고의 노출 시점은 광고 스케줄 정보를 통해서 결정됩니다. 광고 스케줄은 광고 서버에 요청하거나 직접 스케줄러에 주입할 수 있습니다.

3-1. 광고 서버에 요청하기

videoAdScheduleManager.load()를 통해 광고 스케줄 정보를 서버에 요청합니다.

videoAdScheduleManager.load();

3-2. 직접 스케줄러에 주입하기

videoAdScheduleManager.loadWithAdSchedule()를 통해 광고 스케줄 정보를 직접 스케줄러에 주입합니다.

videoAdScheduleManager.loadWithAdSchedule(adSchedule);

4. 광고 스케줄의 구성

광고 스케줄은 복수의 AdBreak로 이루어져있으며, AdBreak는 복수의 AdSource로 이루어져있습니다.

  • AdBreak
    • 특정 시점에 재생되는 광고 묶음입니다.
    • 콘텐츠 재생 이전에 재생되는 광고는 전광고, 중간에 재생되는 광고는 중간광고, 콘텐츠 재생 완료 후에 재생되는 광고는 후광고라고 합니다.
  • AdSource
    • 통상적인 동영상 광고입니다.

5. 스케줄러 삭제하기

destroy()를 호출하여 스케줄러를 삭제할 수 있습니다.

videoAdScheduleManager.destroy();