ads_manager.js에서 스트림 요청을 하고, 광고 모음 매니페스트를 가져오고, IMA 스트림 이벤트를 수신 대기하고, emsg 이벤트를 IMA SDK에 전달하는 IMA SDK StreamManager의 래퍼 클래스를 정의합니다.
ads_manager.js에서 IMA HbbTV 샘플 앱은 다음 메서드를 설정합니다.
requestStream()onStreamEvent()onEmsgEvent()loadAdPodManifest()
광고 관리자 초기화
광고 관리자 클래스를 초기화하고 IMA 스트림 이벤트의 리스너를 설정합니다. 이 호출에서 VideoPlayer.setEmsgEventHandler() 메서드를 사용하여 emsg 이벤트 핸들러를 설정합니다.
광고 모음 스트림 요청
Google Ad Manager 네트워크 코드와 스트림의 맞춤 애셋 키를 사용하여 PodStreamRequest 객체를 만드는 AdManager.requestStream() 메서드를 만듭니다. 다음 스트림 매개변수를 사용하여 IMA 샘플 DASH 포드 게재 스트림으로 HbbTV 앱을 테스트합니다.
- 네트워크 코드:
'21775744923' - 맞춤 애셋 키:
'hbbtv-dash'
광고 스트림 이벤트 수신 대기
AdManager.onStreamEvent() 메서드를 만들어 IMA 스트림 이벤트 STREAM_INITIALIZED, AD_BREAK_STARTED, AD_BREAK_ENDED에 대한 앱의 응답을 처리합니다.
광고 스트림 메타데이터 처리
emsg 이벤트 정보를 IMA에 전달하려면 StreamManager.processMetadata() 메서드를 사용하여 AdManager.onEmsgEvent() 메서드를 만듭니다. 동영상 플레이어 클래스는 VideoPlayer.setEmsgEventHandler() 메서드를 사용하여 이 메서드를 호출합니다.
광고 모음 매니페스트 로드
AdManager.loadAdPodManifest() 메서드를 만들어 동영상 플레이어로 광고 모음 매니페스트를 미리 로드합니다. 메서드: DASH 포드 매니페스트의
구조를 사용하여 인증된 매니페스트 URL을 구성합니다.
HbbTV 샘플 앱은 무작위로 생성된 고유한 adBreakId 값을 사용합니다. 프로덕션 앱에서 adBreakId 값은 각 광고 시점마다 1씩 증가하는 영숫자 문자열(예: ab-001)입니다. adBreakId 값이 광고 시점의 모든 시청자에게 동일한 값인지 확인합니다. adBreakId 값을 가져오려면
DAI 광고 브레이크 API를 사용하는 것이 좋습니다.
프로덕션 환경에서 adBreakId 값과 podDuration 값을 HbbTV 스트림 이벤트 AD_BREAK_ANNOUNCE에 포함합니다.
다음으로 HbbTV 브로드캐스트와 상호작용하는 HbbTV 앱의 기본 애플리케이션 클래스를 만듭니다.