Skip to main content

콘텐츠 영상 변경 시 광고 스케줄 재요청

콘텐츠 영상이 변경되는 경우 광고 스케줄러를 다시 생성하고 설정한 뒤 광고 스케줄을 재요청 해야합니다.

1. 스케줄러 다시 생성하기

  1. 기존 생성한 스케줄러를 삭제(videoAdScheduleManager.destroy())합니다.

  2. 변경된 콘텐츠 영상을 기준으로 videoAdScheduleProps를 생성한 뒤 videoAdScheduleManager를 다시 생성(gfpInstream.createAdScheduleManager())합니다.

    warning

    콘텐츠 영상이 변경되었을 때 videoAdScheduleProps 값이 변경되지 않아도 스케줄러가 다시 생성되어야 합니다.

// 기존 스케줄러 삭제
prevVideoAdScheduleManager.destroy();

// 변경된 초기화 정보(videoAdScheduleProps)로 신규 스케줄러 생성
var videoAdScheduleManager = gfpInstream.createAdScheduleManager(videoAdScheduleProps);

2. 기존 스케줄러의 adDisplayContainerInfo 공유하기

  • 기존 스케줄러의 광고 재생 조건과 동일한 조건에서 광고를 재생하기 위해 adDisplayContainerInfo를 공유해야 합니다.

    videoAdScheduleManager.getAdDisplayContainerInfo()를 사용하여 adDisplayContainerInfo를 획득할 수 있습니다.

    videoAdScheduleManager.setAdDisplayContainerInfo()를 사용하여 adDisplayContainerInfo를 설정할 수 있습니다.

// 기존 스케줄러의 adDisplayContainer 조회
var adDisplayContainerInfo = prevVideoAdScheduleManager.getAdDisplayContainerInfo();

// 기존 스케줄러 삭제
prevVideoAdScheduleManager.destroy();

// 변경된 초기화 정보(videoAdScheduleProps)로 신규 스케줄러 생성
var videoAdScheduleManager = gfpInstream.createAdScheduleManager(videoAdScheduleProps);

// 기존 스케줄러의 adDisplayContainer 주입
videoAdScheduleManager.setAdDisplayContainerInfo(adDisplayContainerInfo);

3. 새로운 스케줄러를 사용하여 광고 로드

새로운 스케줄러를 사용하여 이벤트를 등록하고 광고를 로드하고 스케줄을 요청합니다.

// 기존 스케줄러의 adDisplayContainer 조회
var adDisplayContainerInfo = prevVideoAdScheduleManager.getAdDisplayContainerInfo();

// 기존 스케줄러 삭제
prevVideoAdScheduleManager.destroy();

// 변경된 초기화 정보(videoAdScheduleProps)로 새로운 스케줄러 생성
var videoAdScheduleManager = gfpInstream.createAdScheduleManager(videoAdScheduleProps);

// 새로운 스케줄러에 이벤트 등록
videoAdScheduleManager.addEventListener(gfpInstream.GfpAdEvent.AD_START_READY, function ({ ad }) {
//
});

// 기존 스케줄러의 adDisplayContainer를 새로운 스케줄러에 주입
videoAdScheduleManager.setAdDisplayContainerInfo(adDisplayContainerInfo);

// 새로운 스케줄러 스케줄 로드
videoAdScheduleManager.load();

// 새로운 스케줄러 스케줄 재요청
videoAdScheduleManager.startAdSchedule();