이 가이드에서는 광고 포드 세그먼트 메서드를 사용하여 광고 또는 슬레이트 세그먼트를 요청하도록 매니페스트 조작기를 구성하는 방법을 설명합니다.
스트리밍 프로토콜을 선택합니다.
기본 요건
계속하기 전에 광고 모음 게재 리디렉션 동적 광고 삽입 (DAI) 유형 및 인코딩 프로필에 대한 라이브 스트림 이벤트를 설정해야 합니다. 라이브 스트림 이벤트를 설정하려면 다음 방법 중 하나를 선택하세요.
- Ad Manager UI: DAI용 라이브 스트림을 설정합니다.
- Ad Manager API: 클라이언트 라이브러리를 사용하여
LiveStreamEventService.createLiveStreamEvents메서드를 호출합니다.LiveStreamEvent.dynamicAdInsertionType매개변수를POD_SERVING_REDIRECT로 설정합니다.
라이브 스트림 이벤트를 설정한 후 DaiEncodingProfileService.getDaiEncodingProfilesByStatement 메서드를 호출하여 Ad Manager UI 또는 API에서 이벤트의 인코딩 프로필을 가져옵니다.
콘텐츠 스트림 가져오기
사용자가 라이브 스트림 이벤트를 선택하면 클라이언트 앱이 Google Ad Manager에 스트림 요청을 합니다. 스트림 응답에서 앱은 스트림 매니페스트 요청에 포함할 Google DAI 세션 ID와 메타데이터를 추출합니다.
다음 예에서는 Google DAI 세션 ID를 매니페스트 조작기에 전달합니다.
https://MANIFEST_MANIPULATOR_URL/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY
동영상 콘텐츠 재생 요청을 처리할 때 광고 스티칭을 준비하기 위해 요청에서 Google DAI 세션 ID와 CUSTOM_ASSET_KEY을 저장합니다.
광고 시점 세그먼트 식별 및 불연속성 삽입
각 변형 매니페스트를 처리할 때 스트림에서 EXT-X-CUE-IN 및 EXT-X-CUE-OUT 태그를 식별하여 광고 시점의 시작과 종료를 나타냅니다.
EXT-X-CUE-IN 및 EXT-X-CUE-OUT 태그를 EXT-X-DISCONTINUITY 요소로 바꿔 클라이언트 동영상 플레이어가 콘텐츠와 광고 간에 전환할 수 있도록 합니다.
다음 예시 매니페스트는 EXT-X-CUE-IN 및 EXT-X-CUE-OUT 태그를 대체합니다.
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-CUE-OUT:15.000
#EXTINF:5.000,
contentorigin.com/3.ts
#EXTINF:5.000,
contentorigin.com/4.ts
#EXTINF:5.000,
contentorigin.com/5.ts
#EXT-X-CUE-IN
#EXTINF:5.000,
contentorigin.com/6.ts
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
다음 예시는 대체된 매니페스트를 보여줍니다.
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXTINF:5.000,
#EXT-X-DISCONTINUITY
{... Insert ad segments here ...}
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/6.mp4
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
Google DAI 광고 세그먼트는 암호화되지 않습니다. 콘텐츠가 암호화된 경우 각 광고 시점의 첫 번째 광고 세그먼트 앞에 EXT-X-KEY:METHOD=NONE 요소를 삽입하여 암호화를 삭제합니다. 광고 시점이 끝나면 적절한 EXT-X-KEY를 삽입하여 암호화를 다시 추가합니다.
예정된 광고 시점의 시작 시간, 재생 시간, 색인을 추적합니다.
해시 기반 메시지 인증 코드 (HMAC) 토큰 생성
세그먼트 리디렉션 포드 서비스를 사용하여 이루어진 각 세그먼트 요청에는 인증을 위한 HMAC 서명 토큰이 포함되어야 합니다.
이 토큰은 광고 시점당 한 번 계산하고 모든 스트림 세션에서 공유합니다.
토큰 매개변수 수집
토큰 본문을 채우려면 현재 광고 시점에서 다음을 수집하세요.
| 토큰 매개변수 | ||
|---|---|---|
custom_asset_key
|
필수 | Google Ad Manager의 맞춤 라이브 스트림 애셋 키입니다. |
cust_params
|
선택사항 | 맞춤 타겟팅 매개변수입니다. cust_params를 참조하세요.
|
exp
|
필수 | 현재 토큰의 만료 타임스탬프(초)입니다. |
network_code
|
필수 | Ad Manager 360 네트워크 코드입니다. |
pod_id
|
필수 | 광고 시간의 식별자입니다. 1부터 시작하는 정수입니다. 각 광고 시점마다 이 식별자가 1씩 증가합니다.
이 값은 현재 이벤트에서 동일한 광고 시점을 보는 모든 사용자에게 동일해야 합니다. |
pd
|
길이가 없는 광고 시점이 사용 설정된 이벤트를 제외하고 필수입니다. | 광고 시점의 재생 시간(밀리초)입니다. ad_pod_duration이라고 합니다.
|
scte35
|
선택사항 | Base64로 인코딩된 SCTE-35 신호입니다. Google DAI는 신호가 잘못된 경우에도 항상 생성된 광고 시점으로 신호를 복사합니다.
잘못된 경우 응답의 X-Ad-Manager-Dai-Warning HTTP 헤더에 메시지가 표시되며 신호는 계속 광고 시점을 만듭니다. DAI에서 SCTE-35 신호를 사용하는 방법에 관한 자세한 내용은 지원되는 광고 마커를 참고하세요.
|
토큰 문자열 만들기
토큰 문자열을 만들려면 각 매개변수를 알파벳순으로 NAME=VALUE 형식으로 나열하고 각 이름-값 쌍을 ~ 물결표 문자로 구분합니다.
사용하지 않는 선택적 매개변수의 경우 빈 문자열을 값으로 사용하거나 매개변수를 완전히 삭제하세요.
다음 예시에서는 토큰 문자열을 형식화합니다.
custom_asset_key=CUSTOM_ASSET_STRING~exp=EXPIRATION~network_code=NETWORK_CODE~pd=POD_DURATION~pod_id=AD_POD_INDEX~scte35=SCTE35_MESSAGE
HMAC 서명 생성
HMAC 서명은 16진수 형식의 토큰 문자열의 SHA-256 해시입니다. 비밀 키는 Google Ad Manager의 라이브 스트림 이벤트와 연결된 HMAC 인증 키입니다.
토큰 문자열 서명
HMAC 서명을 생성한 후 다음 형식으로 토큰 문자열에 서명을 추가합니다.
~hmac=HMAC_SIGNATURE
토큰 문자열 인코딩
토큰을 URL 매개변수로 전달하려면 안전을 위해 URL을 인코딩하세요.
다음 예에서는 사용되지 않는 선택적 매개변수가 빈 문자열인 서명되고 인코딩된 HMAC 토큰을 생성합니다.
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=
Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
HMAC signature:
86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=~hmac=86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~cust_params%3D~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~scte35%3D~hmac%3D86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
다음 예에서는 사용하지 않는 선택적 매개변수 없이 서명되고 인코딩된 HMAC 토큰을 생성합니다.
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g3~exp=1489680000~network_code=6062~pd=180000~pod_id=5
Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
HMAC signature:
6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5~hmac=6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~hmac%3D6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
광고 세그먼트 URL 빌드
EXT-X-DISCONTINUITY 태그 사이의 각 콘텐츠 세그먼트를 광고 애드팟 세그먼트 메서드를 가리키는 URL로 바꿉니다.
다음 예에서는 광고 모음 세그먼트를 어셈블합니다. 광고 세그먼트는 0부터 시작하는 색인을 사용합니다.
https://dai.google.com/linear/pods/v1/seg/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=AD_SEGMENT_DURATION&pd=AD_BREAK_DURATION&stream_id=SESSION_ID&auth-token=HMAC
다음 예에서는 광고 애드팟 세그먼트를 매니페스트에 삽입합니다.
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.00,
contentorigin.com/1.ts
#EXTINF:5.00,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=5000&so=0&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/1.ts?sd=5000&so=5000&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/2.ts?sd=5000&so=10000&pd=15000&stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
contentorigin.com/6.mp4
#EXTINF:5.00,
contentorigin.com/7.mp4
#EXTINF:5.00,
contentorigin.com/8.mp4
선택사항: 광고 시점 예약
게재율을 높이려면 광고 애드팟 기간, 맞춤 타겟팅 매개변수, SCTE-35 신호 데이터와 함께 EABN (Early Ad Break Notification)을 전송하세요. 자세한 내용은 조기 광고 시점 알림 전송을 참고하세요.