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'
광고 스트림 이벤트 수신 대기
IMA 스트림 이벤트 STREAM_INITIALIZED
, AD_BREAK_STARTED
, AD_BREAK_ENDED
에 대한 앱의 응답을 처리하는 AdManager.onStreamEvent()
메서드를 만듭니다.
광고 스트림 메타데이터 처리
emsg 이벤트 정보를 IMA에 전달하려면 StreamManager.processMetadata()
메서드를 사용하여 AdManager.onEmsgEvent()
메서드를 만듭니다. 동영상 플레이어 클래스는 VideoPlayer.setEmsgEventHandler()
메서드를 사용하여 이 메서드를 호출합니다.
광고 애드팟 매니페스트 로드
동영상 플레이어로 광고 모음 매니페스트를 미리 로드하는 AdManager.loadAdPodManifest()
메서드를 만듭니다. 방법: DASH 포드 매니페스트의 구조를 사용하여 매니페스트 URL을 구성합니다.
HbbTV 샘플 앱은 무작위로 생성된 고유한 podId
를 사용합니다. 프로덕션 앱에서 podId
는 1로 시작하고 광고 시점마다 1씩 증가하는 정수입니다. podId
이 광고 시청자 모두에게 동일한 값인지 확인합니다. podId
를 얻으려면 EABN(Early Ad Break Notification) API를 사용하는 것이 좋습니다. 프로덕션 환경에서는 HbbTV 스트림 이벤트 AD_BREAK_ANNOUNCE
에 podId
및 podDuration
를 포함합니다.
다음으로 HbbTV 방송과 상호작용하는 HbbTV 앱의 기본 애플리케이션 클래스를 만듭니다.