실시간 스트림용 동적 광고 삽입 API

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

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

  • 삼성 스마트 TV (Tizen)
  • LG TV
  • HbbTV
  • Xbox (JavaScript 앱)
  • KaiOS

API는 IMA DAI SDK에서 제공하는 기본 기능을 지원합니다. 대상 호환성 또는 지원 기능에 대한 자세한 내용은 Google 계정 관리자에게 문의하세요.

라이브 스트림에 DAI API 구현

DAI API는 HLS 및 DASH 프로토콜을 모두 사용하여 선형 (라이브) 스트림을 지원합니다. 이 가이드에서 설명하는 단계는 두 프로토콜에 모두 적용됩니다.

라이브 스트림을 위해 API를 앱에 통합하려면 다음 단계를 완료하세요. 단계:

1. 스트림 요청

DAI API에서 라이브 스트림을 요청하려면 스트림에 대해 POST 호출을 실행합니다. 할 수 있습니다 JSON 응답에는 스트림 매니페스트 및 관련 DAI API 엔드포인트 및 값입니다.

요청 본문 예시

https://dai.google.com/linear/v1/dash/event/0ndl1dJcRmKDUPxTRjvdog/stream

{
  key1 : "value1",
  stream_parameter1 : "value2"
}

응답 본문 예시

{
"stream_id":"c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL",
"stream_manifest":"https://dai.google.com/linear/dash/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/manifest.mpd",
"media_verification_url":"https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/",
"metadata_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata",
"session_update_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session",
"polling_frequency":10
}

오류 응답

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

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

stream_id
이 값은 반환된 스트림을 식별하는 데 사용할 수 있습니다.
stream_manifest
이 URL은 스트림 재생을 위해 미디어 플레이어로 전달됩니다.
media_verification_url
이 URL은 재생 이벤트 추적의 기본 엔드포인트입니다.
metadata_url
이 URL은 예정된 스트림에 대한 주기적인 정보를 폴링하는 데 사용됩니다. 제공합니다.
session_update_url
이 URL은 초기 설정 중에 전송된 스트림 요청 매개변수를 업데이트하는 데 스트림 요청을 처리합니다. 이 요청의 매개변수는 모든 매개변수를 대체합니다. 설정만 하면 됩니다.
polling_frequency
업데이트된 광고 시점 메타데이터를 DAI API로 전달됩니다.

2. 새 광고 시점 메타데이터 설문조사

타이머를 설정하여 메타데이터 URL입니다. 스트림 응답에 지정되지 않은 경우, 기본값이 권장됩니다. 간격은 10초입니다.

요청 본문 예시

https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata

응답 본문 예시

{
   "tags":{
      "google_0492266569":{
         "ad":"0000229836_ad1",
         "ad_break_id":"0000229836",
         "type":"firstquartile"
      },
      "google_1560331148":{
         "ad":"0000229836_ad1",
         "ad_break_id":"0000229836",
         "type":"thirdquartile"
      },
      "google_1877686714378797835":{
         "ad":"0000229836_slate",
         "ad_break_id":"0000229836",
         "type":"progress"
      },
      "google_1vRyQBYPw_7Gg3MrZ6S5EjmV9aLje-YpW8QHed1DSlU":{
         "ad":"0000229835_ad1",
         "ad_break_id":"0000229835",
         "type":"progress"
      },
      "google_2032765498":{
         "ad":"0000229835_ad1",
         "ad_break_id":"0000229835",
         "type":"midpoint"
      },......
      "google_5646900623":{
         "ad":"0000229837_ad1",
         "ad_break_id":"0000229837",
         "type":"complete"
      }
   },
   "ads":{
      "0000229834_ad1":{
         "ad_break_id":"0000229834",
         "position":1,
         "duration":15.01,
         "title":"truman-e2e-creativeset4",
         "description":"truman-e2e-creativeset4 ad",
         "ad_system":"GDFP",
         "ad_id":"39066884",
         "creative_id":"58092079124",
         "clickthrough_url":"https://pubads.g.doubleclick.net/pcs/click?xai=AKAO...\u0026adurl=http://google.com",
         "universal_ad_id":{
            "id_value":"58092079124",
            "id_registry":"GDFP"
         }
      },
      "0000229834_slate":{
         "ad_break_id":"0000229834",
         "position":-1,
         "duration":14.974977777,
         "slate":true
      },...
   },
   "ad_breaks":{
      "0000229834":{
         "type":"mid",
         "duration":15.01,
         "expected_duration":29.984977776999997,
         "ads":1
      },....
   }
}

3. ID3 이벤트 리슨 및 재생 이벤트 추적

동영상 스트림에서 특정 이벤트가 발생했는지 확인하려면 다음 단계를 수행하여 ID3 이벤트를 처리합니다.

  1. 미디어 이벤트를 대기열에 저장하고 각 미디어 ID를 타임스탬프 (플레이어에 의해 표시되는 경우)
  2. 플레이어에서 업데이트할 때마다 또는 설정된 빈도로 (권장됨) 미디어 이벤트 대기열에서 최근 재생된 이벤트를 이벤트 타임스탬프를 플레이헤드와 비교합니다.
  3. 재생된 것으로 확인된 미디어 이벤트의 경우 저장된 광고 시점 태그에서 미디어 ID를 조회하여 유형을 확인합니다. 저장된 태그는 에는 미디어 ID의 접두사만 포함되므로 정확히 일치하는 항목은 찾을 수 없습니다.
  4. 'progress' 이벤트를 사용하여 사용자가 광고 시점 내에 있는지 추적합니다. 이러한 이벤트를 미디어 인증 엔드포인트로 전송하면 안 됩니다. 기타 이벤트 미디어 ID를 미디어 확인 엔드포인트에 추가하고 요청을 전송합니다.
  5. 큐에서 미디어 이벤트를 삭제합니다.

요청 본문 예시

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. 라이브 스트림 세션 매개변수 업데이트

스트림이 종료된 후 세션 매개변수를 조정해야 할 수 있습니다. 생성됨. 이렇게 하려면 세션 업데이트 URL에 요청을 보내야 합니다.

요청 본문 예시

https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session

{
  key1 : "value1",
  stream_parameter1 : "value2"
}

응답 본문 예시

Successful response would be to look for - HTTP/1.1 200

제한사항

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

  • UserAgent: 사용자 에이전트 매개변수가 브라우저별 값으로 전달됩니다. API에 액세스할 수 있습니다
  • rdid님, idtype, is_lat: 기기 ID가 제대로 전달되지 않아 다음 기능을 사용할 수 있습니다.
    • 최대 게재빈도 설정
    • 순차적 광고 로테이션
    • 잠재고객 분류 및 타겟팅

권장사항

라이브 스트림 색인의 메타데이터 엔드포인트는 접두사로 대체합니다. 이는 서드 파티 쿠키의 액세스 차단이나 메타데이터 엔드포인트를 생성합니다.

추가 리소스