VOD 스트림용 동적 광고 삽입 API

Google DAI API를 사용하면 IMA SDK 구현이 지원되지 않는 환경에서 Google DAI 지원 스트림을 구현할 수 있습니다. IMA SDK가 지원되는 플랫폼에서는 IMA를 계속 사용하는 것이 좋습니다.

다음 플랫폼에서 DAI API를 사용하는 것이 좋습니다.

  • Samsung 스마트 TV (Tizen)
  • LG TV
  • HbbTV
  • Xbox (자바스크립트 앱)
  • KaiOS

API는 IMA DAI SDK에서 제공하는 기본 기능을 지원합니다. 호환성 또는 지원되는 기능에 관한 구체적인 질문은 Google 계정 관리자에게 문의하세요.

VOD 스트림에 DAI API 구현하기

DAI API는 HLS 프로토콜과 DASH 프로토콜을 모두 사용하여 VOD 스트림을 지원합니다. 이 가이드에 설명된 단계는 두 프로토콜에 모두 적용됩니다.

VOD 스트림용 애플리케이션에 API를 통합하려면 다음 단계를 완료하세요.

  1. 스트림 엔드포인트에 POST 호출을 수행하여 스트림을 요청합니다.

    요청 본문 예시:

    https://dai.google.com/ondemand/v1/dash/content/2559737/vid/tos-dash/stream
    
      {
        key1 : "value1",
        stream_parameter1 : "value2"
      }
    

    응답 본문 예시:

    {
       "stream_id":"d32f8920-612a-4d46-8bc7-d73fd6c17c85",
       "total_duration":636.458,
       "content_duration":596.458,
       "valid_for":"8h0m0s",
       "valid_until":"2020-06-04T20:39:41.274707306-07:00",
       "stream_manifest":"https://dai.google.com/ondemand/dash/content/2559737/vid/tos-dash/ATL/streams/d32f8920-612a-4d46-8bc7-d73fd6c17c85/manifest.mpd",
       "media_verification_url":"https://dai.google.com/view/p/service/vod/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/loc/ATL/network/124319096/content/2559737/vid/tos-dash/media/",
       "ad_breaks":[
          {
             "type":"pre",
             "start":0,
             "duration":10,
             "ads":[
                {
                   "seq":1,
                   "duration":10,
                   "title":"External NCA1C1L1 Preroll",
                   "description":"External NCA1C1L1 Preroll ad",
                   "clickthrough_url":"https://dai.google.com/ondemand/v1/dash/content/2474148/vid/bbb-clear/location/ATL/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/videoclick/5489259204425938365",
                   "events":[
                      {
                         "time":0.1,
                         "type":"start"
                      },
                      {
                         "time":2.5,
                         "type":"firstquartile"
                      },
                      {
                         "time":4.75,
                         "type":"midpoint"
                      },
                      {
                         "time":7.5,
                         "type":"thirdquartile"
                      },
                      {
                         "time":9,
                         "type":"complete"
                      }
                   ]
                }
             ]
          },
          {
             "type":"mid",
             "start":45,
             "duration":10,
             "ads":[
                {.... }
                   ]
                }
             ]
          },
          {
             "type":"post",
             "start":626.458,
             "duration":10,
             "ads":[...]
          }
       ]
    }
    

    오류 응답

    오류가 발생하면 JSON 응답 본문 없이 표준 HTTP 오류 코드가 반환됩니다.

  2. JSON 응답을 파싱하고 다음 값을 저장합니다.

    • stream_id
    • stream_manifest
    • media_verification_url
    • ad_breaks
  3. 미디어 인증을 실행하려면 ID3 이벤트를 수신 대기합니다.

    1. 미디어 이벤트를 대기열에 저장하여 각 미디어 ID를 타임스탬프와 함께 저장합니다 (플레이어에 표시되는 경우).
    2. 플레이어에서 업데이트할 때마다 또는 설정된 빈도 (500밀리초 권장)로 이벤트 타임스탬프를 플레이헤드와 비교하여 미디어 이벤트 대기열에서 최근 재생된 이벤트를 확인합니다.
    3. 재생되었음을 확인한 미디어 이벤트의 경우 미디어 확인 엔드포인트에 미디어 ID를 추가하고 GET 요청을 실행하여 재생을 추적합니다.

    요청 본문 예시:

    https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/
    

    응답 예시:

    Accepted for asynchronous verification - HTTP/1.1 202 Accepted
    Successful empty response - HTTP/1.1 204 No Content
    Media verification not found - HTTP/1.1 404 Not Found
    Media verification sent by someone else - HTTP/1.1 409 Conflict
    

    스트림 활동 모니터링에서 추적 이벤트를 확인할 수 있습니다.

  4. 선택사항: 스트림 생성 응답의 ad_breaks 데이터를 사용하여 실행된 이벤트 유형을 조회합니다.

  5. 대기열에서 미디어 이벤트를 삭제합니다.

제한사항

WebView 내에서 API를 사용하는 경우 타겟팅과 관련하여 다음 제한사항이 적용됩니다.

  • UserAgent: 사용자 에이전트 매개변수가 기본 플랫폼 대신 브라우저별 값으로 전달됩니다.
  • rdid, idtype, is_lat: 기기 ID가 제대로 전달되지 않아 다음 기능이 제한됩니다.
    • 최대 게재빈도 설정
    • 순차 광고 로테이션
    • 잠재고객 분류 및 타겟팅

권장사항

VOD에서는 ID3 태그를 적절한 이벤트 유형에 매핑하는 작업이 지루합니다. JSON에 반환된 ad_breaks 정보를 사용하여 실시간 콘텐츠에서와 같이 이벤트를 직접 조회합니다.

추가 리소스