쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

AWS Elemental MediaTailor ADS 로그 설명 및 이벤트 유형

포커스 모드
AWS Elemental MediaTailor ADS 로그 설명 및 이벤트 유형 - AWS Elemental MediaTailor

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

다음 섹션에서는 MediaTailor가 광고 결정 서버(ADS)를 사용하여 이벤트를 설명하기 위해 내보내는 로그를 설명합니다. 로그는 AdDecisionServerInteractions 로그입니다.

AdDecisionServerInteractions 이벤트

광고 결정 서버(ADS)와 MediaTailor 상호 작용 중에 다음 이벤트가 발생합니다.

Log 설명
AD_MARKER_FOUND MediaTailor가 매니페스트에서 광고 마커를 찾았습니다.
BEACON_FIRED MediaTailor가 추적 비컨을 실행했습니다.
EMPTY_VAST_RESPONSE ADS는 0개의 광고가 포함된 빈 VAST 응답을 반환했습니다.
EMPTY_VMAP_RESPONSE ADS가 빈 VMAP 응답을 반환했습니다.
ERROR_ADS_INVALID_RESPONSE ADS가 200이 아닌 상태 코드를 반환했습니다.
ERROR_ADS_IO MediaTailor가 ADS와 통신을 시도하는 동안 오류가 발생했습니다.
ERROR_ADS_RESPONSE_PARSE ADS 응답을 구문 분석하는 동안 MediaTailor에서 오류가 발생했습니다.
ERROR_ADS_RESPONSE_UNKNOWN_ROOT_ELEMENT ADS 응답에 잘못된 루트 요소가 포함되어 있습니다.
ERROR_ADS_TIMEOUT ADS에 대한 MediaTailor 요청이 시간 초과되었습니다.
ERROR_DISALLOWED_HOST ADS 호스트는 허용되지 않습니다.
ERROR_FIRING_BEACON_FAILED MediaTailor가 추적 비컨을 실행하는 데 실패했습니다.
ERROR_PERSONALIZATION_DISABLED 이 세션에서는 광고 삽입이 비활성화됩니다.
ERROR_UNKNOWN ADS 요청 중에 MediaTailor에서 알 수 없는 오류가 발생했습니다.
ERROR_UNKNOWN_HOST ADS 호스트를 알 수 없습니다.
ERROR_VAST_INVALID_MEDIA_FILE VAST에 유효하지 않거나 누락된 MediaFile 요소가 Ad 있습니다.
ERROR_VAST_INVALID_VAST_AD_TAG_URI VAST 응답에 잘못된이 포함되어 있습니다VASTAdTagURI.
ERROR_VAST_MISSING_CREATIVES VAST에는 0개 또는 여러 Creatives 요소가 Ad 포함됩니다. 정확히 하나의 Creatives 요소가 필요합니다.
ERROR_VAST_MISSING_IMPRESSION VAST에는 0개의 Impression 요소가 Ad 포함되어 있습니다. 하나 이상의 Impression 요소가 필요합니다.
ERROR_VAST_MISSING_MEDIAFILES VAST에는 0개 또는 여러 MediaFiles 요소가 Ad 포함됩니다. 정확히 하나의 MediaFiles 요소가 필요합니다.
ERROR_VAST_MISSING_OVERLAYS MediaTailor는 광고 서버에서 비선형 크리에이티브를 수신하지 않았습니다.
ERROR_VAST_MULTIPLE_LINEAR VAST에는 여러 Linear 요소가 Ad 포함되어 있습니다.
ERROR_VAST_MULTIPLE_TRACKING_EVENTS VAST에는 여러 TrackingEvents 요소가 Ad 포함되어 있습니다.
ERROR_VAST_REDIRECT_EMPTY_RESPONSE VAST 리디렉션 요청이 빈 응답을 반환했습니다.
ERROR_VAST_REDIRECT_FAILED VAST 리디렉션 요청에 오류가 발생했습니다.
ERROR_VAST_REDIRECT_MULTIPLE_VAST VAST 리디렉션 요청이 여러 광고를 반환했습니다.
FILLED_AVAIL MediaTailor가 가용 영역을 성공적으로 채웠습니다.
FILLED_OVERLAY_AVAIL MediaTailor가 오버레이 가용을 성공적으로 채웠습니다.
INTERSTITIAL_VOD_FAILURE ADS 요청 또는 응답에서 VOD 재생 목록에 대한 중간 공간을 채우는 동안 문제가 발생했습니다. 광고는 삽입되지 않습니다.
INTERSTITIAL_VOD_SUCCESS MediaTailor가 VOD 재생 목록에 대한 중간 공간을 성공적으로 채웠습니다.
MAKING_ADS_REQUEST MediaTailor가 ADS에서 광고를 요청하고 있습니다.
MODIFIED_TARGET_URL MediaTailor가 아웃바운드 대상 URL을 수정했습니다.
NON_AD_MARKER_FOUND MediaTailor가 매니페스트에서 실행 불가능한 광고 마커를 찾았습니다.
RAW_ADS_RESPONSE MediaTailor가 원시 ADS 응답을 받았습니다.
REDIRECTED_VAST_RESPONSE MediaTailor는 VAST 리디렉션 후 VAST 응답을 받았습니다.
VAST_REDIRECT VAST 광고 응답에는 리디렉션이 포함됩니다.
VAST_RESPONSE MediaTailor가 VAST 응답을 받았습니다.
VOD_TIME_BASED_AVAIL_PLAN_SUCCESS MediaTailor는 VOD 템플릿에 대한 시간 기반 가용 계획을 성공적으로 생성했습니다.
VOD_TIME_BASED_AVAIL_PLAN_VAST_RESPONSE_FOR_OFFSET MediaTailor는 VOD 템플릿에 대한 시간 기반 가용 계획을 생성하고 있습니다. MediaTailor가 시간 오프셋에 대한 VAST 응답을 받았습니다.
VOD_TIME_BASED_AVAIL_PLAN_WARNING_NO_ADVERTISEMENTS ADS 요청 또는 응답에서 VOD 템플릿에 대한 시간 기반 가용 계획을 생성하는 동안 문제가 발생했습니다. 광고는 삽입되지 않습니다.
WARNING_NO_ADVERTISEMENTS MediaTailor에서 가용 영역을 채우는 동안 문제가 발생했습니다. 광고가 삽입되지 않습니다.
WARNING_URL_VARIABLE_SUBSTITUTION_FAILED MediaTailor는 ADS URL에서 동적 변수를 대체할 수 없습니다. URL 구성을 확인합니다.
WARNING_VPAID_AD_DROPPED 누락된 슬레이트로 인해 VPAID 광고가 삭제되었거나 세션에서 서버 측 보고를 사용합니다.

ADS 로그 설명

이 섹션에서는 ADS 로그 설명의 구조 및 콘텐츠에 관해 설명합니다. JSON 편집기에서 직접 탐색하려면 ADS 로그 JSON 스키마에 있는 목록을 사용하십시오.

ADS 로그의 각 이벤트에는 CloudWatch Logs에서 생성되는 표준 필드가 포함되어 있습니다. 자세한 내용은 CloudWatch Logs 인사이트를 사용하여 로그 데이터 분석을 참조하세요.

ADS 로그 속성

이 섹션에서는 ADS 로그의 속성에 관해 설명합니다.

속성 유형 필수 설명
adsRequestUrl 문자열 false MediaTailor가 수행하는 ADS 요청의 전체 URL
avail avail 형식의 객체 false MediaTailor가 광고로 채우는 가능 구간에 관한 정보. 현재 FILLED_AVAIL 이벤트 유형의 경우 이것은 MediaTailor가 가능 구간을 처음 만날 때 생성하는 계획입니다. 가능 구간이 결국 어떻게 채워지느냐는 이 계획과 콘텐츠가 전개되는 방식에 따라 달라집니다.
awsAccountId 문자열 true 세션에 사용된 MediaTailor 구성용 AWS 계정 ID
customerId 문자열 true 여러 로그 항목을 상호 연관시키는 데 사용할 수 있는 해시된 버전의 AWS 계정 ID
eventDescription 문자열 true 이 로그 메시지를 트리거한 이벤트에 대한 짧은 설명으로, MediaTailor 서비스에서 제공합니다. 기본적으로 이 문자열은 비어 있습니다. 예시: Got VAST response.
eventTimestamp 문자열 true 이벤트의 날짜 및 시간
eventType 문자열 true 이 로그 메시지를 트리거한 이벤트의 코드. 예시: VAST_RESPONSE.
originId 문자열 true MediaTailor 구성의 구성 이름. 이것은 구성의 일부이기도 한 동영상 콘텐츠 원본과 다릅니다.
requestHeaders requestheaders 형식의 배열 false MediaTailor가 ADS 요청과 함께 포함한 헤더. 일반적으로 ADS에 대한 요청이 실패한 경우 문제 해결을 돕기 위해 로그에 이 헤더가 포함됩니다.
requestId 문자열 true 동일 요청에 대해 여러 로그 항목을 상호 연관시키는 데 사용할 수 있는 MediaTailor 요청 ID
sessionId 문자열 true MediaTailor가 플레이어 세션에 지정한 고유한 숫자 식별자. 세션에 대해 플레이어가 하는 모든 요청은 세션 ID가 동일합니다. 예시: e039fd39-09f0-46b2-aca9-9871cc116cde.
sessionType 문자열(법정 값: [DASH, HLS]) true 플레이어의 스트림 유형
vastAd vastAd 형식의 객체 false VAST 응답에서 구문 분석된 단일 광고에 관한 정보
vastResponse vastResponse 형식의 객체 false MediaTailor가 ADS에서 받은 VAST 응답에 관한 정보
vodCreativeOffsets vodCreativeOffsets 형식의 객체 false VMAP 응답에 근거하여 MediaTailor가 가능 구간을 삽입할 매니페스트의 시간 오프셋을 나타내는 맵
vodVastResponseTimeOffset 숫자 false VOD 광고 삽입을 위한 VMAP별 시간 오프셋

adContent

이 섹션에서는 ADS 로그 adContent의 속성에 관해 설명합니다.

ADS 로그 adContent의 속성
속성 유형 필수 설명
adPlaylistUris adPlaylistUris 형식의 객체 false 변형의 원본 매니페스트에서 변형의 광고 매니페스트로 매핑. DASH의 경우 여기에는 단일 항목이 포함되어 있는데, 그 이유는 모든 변형이 단일 DASH 매니페스트에 표시되기 때문입니다.

adPlaylistUris

이 섹션에서는 ADS 로그 adPlaylistUris의 속성에 관해 설명합니다.

ADS 로그 adPlaylistUris의 속성
속성 유형 필수 설명
<any string> 문자열 false 특정 변형에 대한 ad 매니페스트의 URL

avail

이 섹션에서는 ADS 로그 가능 구간의 속성에 관해 설명합니다.

ADS 로그 가능 구간의 속성
속성 유형 필수 설명
availId 문자열 true 이 가능 구간의 고유 식별자. HLS의 경우 이것은 가능 구간이 시작되는 미디어 시퀀스 번호입니다. DASH의 경우 이것은 기간 ID입니다.
creativeAds creativeAd 형식의 배열 true MediaTailor가 가능 구간에 삽입한 광고
fillRate 숫자 true 광고가 가능 구간 지속시간을 채우는 속도로서 0.0(0%인 경우)에서 1.0(100%인 경우)까지입니다.
filledDuration 숫자 true 가능 구간에 삽입된 모든 광고의 지속시간을 합한 것
numAds 숫자 true MediaTailor가 가능 구간에 삽입한 광고의 수
originAvailDuration 숫자 true 원본의 콘텐츠 스트림에 지정된 가능 구간의 지속시간(CUE_OUT 또는 SCTE)
skippedAds skippedAd 형식의 배열 false TRANSCODE_IN_PROGRESS 또는 TRANSCODE_ERROR와 같은 이유로 MediaTailor가 삽입하지 않은 광고
slateAd slateAd 형식의 객체 true 슬레이트 광고에 관한 정보로서 MediaTailor는 이 정보를 사용해 가능 구간 내에 채워지지 않은 세그먼트를 모두 채웁니다.

creativeAd

이 섹션에서는 ADS 로그 creativeAd의 속성에 관해 설명합니다.

ADS 로그 creativeAd의 속성
속성 유형 필수 설명
adContent adContent 형식의 객체 true 삽입된 광고의 콘텐츠에 관한 정보
creativeUniqueId 문자열 true 트랜스코딩용 키로 사용되는 광고용 고유 식별자. 이것은 VAST 응답의 크리에이티브에 대한 ID 필드입니다(제공되는 경우). 또는 광고의 메자닌 URL입니다.
trackingEvents trackingEvents 형식의 객체 true 광고의 다양한 추적 이벤트에 대한 추적 비콘 URL. 키는 이벤트 이름이고, 값은 비콘 URL의 목록입니다.
transcodedAdDuration 숫자 true 트랜스코딩된 자산에서 계산된 광고의 지속시간
uri 문자열 true 메자닌 버전 광고의 URL로서, 트랜스코더에 입력되는 값
vastDuration 숫자 true VAST 응답에서 구문 분석되는 광고의 지속시간

requestheaders

이 섹션에서는 ADS 로그 requestheaders의 속성에 관해 설명합니다.

ADS 로그 requestheaders의 속성
속성 유형 필수 설명
name 문자열 true 헤더의 이름
value 문자열 true 헤더의 값

skippedAd

이 섹션에서는 ADS 로그 skippedAd의 속성에 관해 설명합니다.

ADS 로그 skippedAd의 속성
속성 유형 필수 설명
adMezzanineUrl 문자열 true 건너뛴 광고의 메자닌 URL
creativeUniqueId 문자열 true 트랜스코딩용 키로 사용되는 광고용 고유 식별자. 이것은 VAST 응답의 크리에이티브에 대한 ID 필드입니다(제공되는 경우). 또는 광고의 메자닌 URL입니다.
skippedReason 문자열 true 광고가 삽입되지 않은 이유를 나타내는 코드. 예시: TRANSCODE_IN_PROGRESS.
transcodedAdDuration 숫자 false 트랜스코딩된 자산에서 계산된 광고의 지속시간
vastDuration 숫자 true VAST 응답에서 구문 분석되는 광고의 지속시간

slateAd

이 섹션에서는 ADS 로그 slateAd의 속성에 관해 설명합니다.

ADS 로그 slateAd의 속성
속성 유형 필수 설명
adContent adContent 형식의 객체 true 삽입된 광고의 콘텐츠에 관한 정보
creativeUniqueId 문자열 true 트랜스코딩용 키로 사용되는 광고용 고유 식별자. 이것은 VAST 응답의 크리에이티브에 대한 ID 필드입니다(제공되는 경우). 또는 광고의 메자닌 URL입니다.
transcodedAdDuration 숫자 true 트랜스코딩된 자산에서 계산된 광고의 지속시간
uri 문자열 true 메자닌 버전 광고의 URL로서, 트랜스코더에 입력되는 값

trackingEvents

이 섹션에서는 ADS 로그 trackingEvents의 속성에 관해 설명합니다.

ADS 로그 trackingEvents의 속성
속성 유형 필수 설명
<any string> 문자열 형식의 배열 false 지정된 추적 이벤트의 비콘 URL 목록(노출, 완료 등)

vastAd

이 섹션에서는 ADS 로그 vastAd의 속성에 관해 설명합니다.

ADS 로그 vastAd의 속성
속성 유형 필수 설명
adSystem 문자열 true VAST 응답에 있는 AdSystem 태그의 값
adTitle 문자열 true VAST 응답에서 광고에 사용할 수 있는 미디어 파일
creativeAdId 문자열 true VAST 응답에 있는 Creative 태그의 adId 속성에 대한 값
creativeId 문자열 true VAST 응답에 있는 Creative 태그의 id 속성에 대한 값
duration 숫자 true VAST 응답의 linear 요소에 있는 duration 태그에 근거하여 산출한 대략적인 광고 지속시간
trackingEvents trackingEvents 형식의 객체 true 광고의 다양한 추적 이벤트에 대한 추적 비콘 URL. 키는 이벤트 이름이고, 값은 비콘 URL의 목록입니다.
vastAdId 문자열 true VAST 응답에 있는 Ad 태그의 id 속성에 대한 값
vastAdTagUri 문자열 false 광고에 대한 VMAP별 리디렉션 URI
vastMediaFiles vastMediaFile 형식의 배열 true VAST 응답에서 광고에 사용할 수 있는 미디어 파일의 목록

vastMediaFile

이 섹션에서는 ADS 로그 vastMediaFile의 속성에 관해 설명합니다.

ADS 로그 vastMediaFile의 속성
속성 유형 필수 설명
apiFramework 문자열 true 미디어 파일 관리에 필요한 API 프레임워크 예시: VPAID.
bitrate 숫자 true 미디어 파일의 비트레이트
delivery 문자열 true 미디어 파일에 사용되는 프로토콜로서 프로그레시브 또는 스트리밍으로 설정됨
height 숫자 true 미디어 파일의 픽셀 높이
id 문자열 true MediaFile 태그의 id 속성에 대한 값
type 문자열 true MediaFile 태그의 형식 속성에서 얻은 MIME 형식의 미디어 파일
uri 문자열 true 메자닌 버전 광고의 URL로서, 트랜스코더에 입력되는 값
width 숫자 true 미디어 파일의 픽셀 너비

vastResponse

이 섹션에서는 ADS 로그 vastResponse의 속성에 관해 설명합니다.

ADS 로그 vastResponse 속성
속성 유형 필수 설명
errors 문자열 형식의 배열 true VAST 응답의 Error 태그에서 구문 분석된 오류 URL
vastAds vastAd 형식의 배열 true VAST 응답에서 구문 분석된 광고
version 문자열 true 응답에 있는 VAST 태그의 version 속성에서 구문 분석된 VAST 사양 버전

vodCreativeOffsets

이 섹션에서는 ADS 로그 vodCreativeOffsets의 속성에 관해 설명합니다.

ADS 로그 vodCreativeOffsets의 속성
속성 유형 필수 설명
<any string> vodCreativeOffset 형식의 배열 false 매니페스트의 시간 오프셋에서 이 시점에 삽입할 광고 목록으로 매핑

vodCreativeOffset

이 섹션에서는 ADS 로그 vodCreativeOffset의 속성에 관해 설명합니다.

ADS 로그 vodCreativeOffset의 속성
속성 유형 필수 설명
adContent adContent 형식의 객체 true 삽입된 광고의 콘텐츠에 관한 정보
creativeUniqueId 문자열 true 트랜스코딩용 키로 사용되는 광고용 고유 식별자. 이것은 VAST 응답의 크리에이티브에 대한 ID 필드입니다(제공되는 경우). 또는 광고의 메자닌 URL입니다.
trackingEvents trackingEvents 형식의 객체 true 광고의 다양한 추적 이벤트에 대한 추적 비콘 URL. 키는 이벤트 이름이고, 값은 비콘 URL의 목록입니다.
transcodedAdDuration 숫자 true 트랜스코딩된 자산에서 계산된 광고의 지속시간
uri 문자열 true 메자닌 버전 광고의 URL로서, 트랜스코더에 입력되는 값
vastDuration 숫자 true VAST 응답에서 구문 분석되는 광고의 지속시간

ADS 로그 JSON 스키마

다음은 AWS Elemental MediaTailor ADS 로그에 대한 JSON 스키마를 나열합니다.

{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://amazon.com/elemental/midas/mms/adsLogSchema.json", "type": "object", "title": "AWS Elemental MediaTailor ADS Log JSON Schema", "required": [ "eventType", "eventTimestamp", "requestId", "sessionType", "eventDescription", "awsAccountId", "customerId", "originId", "sessionId" ], "additionalProperties": false, "properties": { "eventType": { "$id": "#/properties/eventType", "type": "string", "description": "The code for the event that triggered this log message. Example: <code>VAST_RESPONSE</code>.", "examples": [ "FILLED_AVAIL" ] }, "eventTimestamp": { "$id": "#/properties/eventTimestamp", "type": "string", "description": "The date and time of the event.", "examples": [ "1970-01-01T00:00:00Z" ], "format": "date-time" }, "requestId": { "$id": "#/properties/requestId", "type": "string", "description": "The MediaTailor request ID, which you can use to correlate multiple log entries for the same request.", "examples": [ "c7c7ae8c-a61e-44e0-8efd-7723995337a1" ], "pattern": "^(.*)$" }, "sessionType": { "$id": "#/properties/sessionType", "type": "string", "enum": [ "HLS", "DASH" ], "description": "The player's stream type." }, "eventDescription": { "$id": "#/properties/eventDescription", "type": "string", "description": "A short description of the event that triggered this log message, provided by the MediaTailor service. By default, this is empty. Example: <code>Got VAST response</code>.", "default": "", "examples": [ "Got VAST response" ], "pattern": "^(.*)$" }, "awsAccountId": { "$id": "#/properties/awsAccountId", "type": "string", "description": "The AWS account ID for the MediaTailor configuration that was used for the session." }, "customerId": { "$id": "#/properties/customerId", "type": "string", "description": "The hashed version of the AWS account ID, which you can use to correlate multiple log entries.", "pattern": "^(.*)$" }, "originId": { "$id": "#/properties/originId", "type": "string", "description": "The configuration name from the MediaTailor configuration. This is different from the video content source, which is also part of the configuration.", "examples": [ "external-canary-dash-serverside-reporting-onebox" ], "pattern": "^(.*)$" }, "sessionId": { "$id": "#/properties/sessionId", "type": "string", "description": "The unique numeric identifier that MediaTailor assigned to the player session. All requests that a player makes for a session have the same session ID. Example: <code>e039fd39-09f0-46b2-aca9-9871cc116cde</code>.", "examples": [ "120b9873-c007-40c8-b3db-0f1bd194970b" ], "pattern": "^(.*)$" }, "avail": { "$id": "#/properties/avail", "type": "object", "title": "avail", "description": "Information about an avail that MediaTailor fills with ads. Currently, for the <code>FILLED_AVAIL</code> event type, this is the plan created by MediaTailor when it first encounters the avail. How the avail is eventually filled may vary from this plan, depending on how the content plays out. ", "required": [ "creativeAds", "originAvailDuration", "filledDuration", "fillRate", "driftMillisecondsAtAvailStart", "numAds", "slateAd", "availId" ], "additionalProperties": false, "properties": { "originAvailDuration": { "$id": "#/properties/avail/originAvailDuration", "type": "number", "description": "The duration of the avail as specified in the content stream from the origin (<code>CUE_OUT</code> or <code>SCTE</code>)." }, "filledDuration": { "$id": "#/properties/avail/filledDuration", "type": "number", "description": "The sum of the durations of all the ads inserted into the avail." }, "fillRate": { "$id": "#/properties/avail/fillRate", "type": "number", "description": "The rate at which the ads fill the avail duration, from 0.0 (for 0%) to 1.0 (for 100%)." }, "driftMillisecondsAtAvailStart": { "$id": "#/properties/avail/driftMillisecondsAtAvailStart", "type": "number", "description": "The cumulative drift at the beginning of this avail. A positive value implies that we are moving away from the live edge, a negative value implies that we are moving towards the live edge." }, "creativeAds": { "$id": "#/properties/avail/creativeAds", "type": "array", "description": "The ads that MediaTailor inserted into the avail.", "items": { "type": "object", "title": "creativeAd", "description": "Information about a single inserted ad.", "required": [ "uri", "creativeUniqueId", "adSystem", "adContent", "trackingEvents", "vastDuration", "transcodedAdDuration" ], "additionalProperties": false, "properties": { "uri": { "$ref": "#/definitions/adMezzanineUri" }, "creativeUniqueId": { "$ref": "#/definitions/creativeUniqueId" }, "adSystem": { "$ref": "#/definitions/adSystem" }, "adContent": { "$ref": "#/definitions/adContent" }, "trackingEvents": { "$ref": "#/definitions/trackingEvents" }, "vastDuration": { "$ref": "#/definitions/vastDuration" }, "transcodedAdDuration": { "$ref": "#/definitions/transcodedAdDuration" } } } }, "numAds": { "$id": "#/properties/avail/numAds", "type": "number", "description": "The number of ads that MediaTailor inserted into the avail." }, "slateAd": { "$id": "#/properties/avail/slateAd", "type": ["object", "null"], "title": "slateAd", "description": "Information about the slate ad, which MediaTailor uses to fill any unfilled segments in the avail.", "additionalProperties": false, "required": [ "uri", "creativeUniqueId", "adContent", "transcodedAdDuration" ], "properties": { "uri": { "$ref": "#/definitions/adMezzanineUri" }, "creativeUniqueId": { "$ref": "#/definitions/creativeUniqueId" }, "adContent": { "$ref": "#/definitions/adContent" }, "transcodedAdDuration": { "$ref": "#/definitions/transcodedAdDuration" } } }, "availId": { "$id": "#/properties/avail/availId", "type": "string", "description": "The unique identifier for this avail. For HLS, this is the media sequence number where the avail begins. For DASH, this is the period ID." }, "skippedAds": { "$id": "#/properties/avail/skippedAds", "type": "array", "description": "The ads that MediaTailor didn't insert, for reasons like <code>TRANSCODE_IN_PROGRESS</code> and <code>TRANSCODE_ERROR</code>.", "items": { "type": "object", "title": "skippedAd", "description": "Information about a single skipped ad.", "required": [ "creativeUniqueId", "adMezzanineUrl", "skippedReason", "vastDuration" ], "additionalProperties": false, "properties": { "creativeUniqueId": { "$ref": "#/definitions/creativeUniqueId" }, "adMezzanineUrl": { "type": "string", "description": "The mezzanine URL of the skipped ad." }, "skippedReason": { "type": "string", "description": "The code that indicates why the ad wasn't inserted. Example: <code>TRANSCODE_IN_PROGRESS</code>." }, "vastDuration": { "$ref": "#/definitions/vastDuration" }, "transcodedAdDuration": { "$ref": "#/definitions/transcodedAdDuration" }, "targetVariant": { "type": "object", "title": "targetVariant", "description": "The target variant of the source content. This key is present when an ad wasn't inserted due to the source content containing a variant that could not match to any variants present in this ad.", "required": [ "mediaProtocol", "mediaType", "bitrate", "mediaResolution", "codecs" ], "additionalProperties": false, "properties": { "mediaProtocol": { "type": "string", "description": "The media protocol of this variant, such as HLS.", "enum": [ "HLS", "DASH" ] }, "mediaType": { "type": "array", "description": "The media type of this variant, such as VIDEO.", "items": { "type": "string", "enum": [ "VIDEO", "AUDIO", "SUBTITLES", "TRICK_PLAY" ], "description": "Media type, such as VIDEO." } }, "bitrate": { "$ref": "#/definitions/bitrate" }, "mediaResolution": { "type": "object", "title": "mediaResolution", "description": "The media resolution of this variant.", "required": [ "width", "height" ], "additionalProperties": false, "properties": { "width": { "$ref": "#/definitions/width" }, "height": { "$ref": "#/definitions/height" } } }, "codecs": { "type": "array", "description": "The codecs of this variant.", "items": { "type": "string", "description": "Codec, such as avc1." } } } } } } }, "adBreakTrackingEvents": { "$id": "#properties/avail/adBreakTrackingEvents", "type": "object", "title": "adBreakTrackingEvents", "description": "VMAP/ad break tracking events and corresponding URL", "properties": { "items": { "$ref": "#/definitions/adBreakTrackingEvents" } } } } }, "vastResponse": { "$id": "#/properties/vastResponse", "type": "object", "title": "vastResponse", "description": "Information about the VAST response that MediaTailor received from the ADS.", "required": [ "version", "vastAds", "errors", "nonLinearAdsList" ], "additionalProperties": false, "properties": { "version": { "$id": "#/properties/vastResponse/version", "type": "string", "description": "The VAST specification version, parsed from the <code>version</code> attribute of the <code>VAST</code> tag in the response.", "examples": [ "3.0" ], "pattern": "^(.*)$" }, "vastAds": { "$id": "#/properties/vastResponse/vastAds", "type": "array", "description": "The ads parsed from the VAST response.", "items": { "$ref": "#/definitions/vastAd" } }, "errors": { "$id": "#/properties/vastResponse/errors", "type": "array", "description": "The error URLs parsed from the <code>Error</code> tags in the VAST response.", "items": { "type": "string", "description": "A single error URL." } }, "nonLinearAdsList": { "$id": "#/properties/vastResponse/nonLinearAds", "type": "array", "description": "A list of NonLinearAds as they are read from the VAST response.", "items": { "$ref": "#/definitions/nonLinearAds" } } } }, "vastAd": { "$ref": "#/definitions/vastAd" }, "vodVastResponseTimeOffset": { "$id": "#/properties/vodVastResponseTimeOffset", "type": "number", "description": "The VMAP specific time offset for VOD ad insertion.", "examples": [ 5.0 ] }, "vodCreativeOffsets": { "$id": "#/properties/vodCreativeOffsets", "type": "object", "title": "vodCreativeOffsets", "description": "A map that indicates the time offsets in the manifest where MediaTailor will insert avails, based on the VMAP response.", "additionalProperties": { "type": "array", "$id": "#/properties/vodCreativeOffsets/entry", "description": "A mapping from a time offset in the manifest to a list of ads to insert at this time.", "items": { "type": "object", "$id": "#/properties/vodCreativeOffsets/entry/items", "title": "vodCreativeOffset", "description": "The list of ads to insert at the specified time offset.", "additionalProperties": false, "required": [ "uri", "creativeUniqueId", "vastDuration", "transcodedAdDuration", "adContent", "trackingEvents" ], "properties": { "uri": { "$ref": "#/definitions/adMezzanineUri" }, "creativeUniqueId": { "$ref": "#/definitions/creativeUniqueId" }, "vastDuration": { "$ref": "#/definitions/vastDuration" }, "transcodedAdDuration": { "$ref": "#/definitions/transcodedAdDuration" }, "adContent": { "$ref": "#/definitions/adContent" }, "trackingEvents": { "$ref": "#/definitions/trackingEvents" } } } } }, "adsRequestUrl": { "$id": "#/properties/adsRequestUrl", "type": "string", "description": "The full URL of the ADS request made by MediaTailor." }, "adMarkers": { "$id": "#/properties/adMarkers", "type": "string", "description": "Found Ad Marker in the Manifest." }, "segmentationUpid": { "$id": "#/properties/segmentationUpid", "type": "string", "description": "Value of segmentation upid parsed from ad markers in manifest." }, "segmentationTypeId": { "$id": "#/properties/segmentationTypeId", "type": "integer", "description": "Value of segmentation typeId parsed from ad markers in manifest." }, "requestHeaders": { "$id": "#/properties/requestHeaders", "type": "array", "description": "The headers that MediaTailor included with the ADS request. Typically, the logs include these when a request to the ADS fails, to help with troubleshooting.", "items": { "type": "object", "title": "requestheaders", "description": "The name and value for a single header included in the ADS request.", "required": [ "name", "value" ], "additionalProperties": false, "properties": { "name": { "type": "string", "description": "The name of the header." }, "value": { "type": "string", "description": "The value of the header." } } } }, "originalTargetUrl": { "$id": "#/properties/originalTargetUrl", "type": "string", "description": "The old URL to which MediaTailor was going to make a request." }, "updatedTargetUrl": { "$id": "#/properties/updatedTargetUrl", "type": "string", "description": "The new URL to which MediaTailor is making a request." }, "rawAdsResponse": { "$id": "#/properties/rawAdsResponse", "type": "string", "description": "Paginated ADS response as it's exactly returned to MediaTailor." }, "rawAdsResponseIndex": { "$id": "#/properties/rawAdsResponseIndex", "type": "integer", "description": "Integer value denoting this rawAdsResponse's index into the full ADS response. This value is used to order the paginated messages for this ADS response." } }, "__COMMENT_oneOf": "The oneOf section defines subtypes for our events. Subtypes can have different rules, including which fields are required. For more information, see https://json-schema.org/understanding-json-schema/reference/combining.html#oneof ", "oneOf": [ { "$ref": "#/definitions/eventAdMarkersFound" }, { "$ref": "#/definitions/eventNonAdMarkerFound" }, { "$ref": "#/definitions/eventMakingAdsRequest" }, { "$ref": "#/definitions/eventModifiedTargetUrl" }, { "$ref": "#/definitions/eventRawAdsResponse" }, { "$ref": "#/definitions/eventVastResponse" }, { "$ref": "#/definitions/eventFilledAvail" }, { "$ref": "#/definitions/eventFilledOverlayAvail" }, { "$ref": "#/definitions/eventErrorFiringBeaconFailed" }, { "$ref": "#/definitions/eventWarningNoAdvertisements" }, { "$ref": "#/definitions/eventUnknownHost" }, { "$ref": "#/definitions/eventErrorAdsTimeout" }, { "$ref": "#/definitions/eventErrorVastMissingOverlays" }, { "$ref": "#/definitions/eventPlannedAvail" }, { "$ref": "#/definitions/eventEmptyVastResponse" }, { "$ref": "#/definitions/eventEmptyVmapResponse" }, { "$ref": "#/definitions/eventErrorUnknown" }, { "$ref": "#/definitions/eventVastRedirect" }, { "$ref": "#/definitions/eventRedirectedVastResponse" }, { "$ref": "#/definitions/eventErrorAdsMissingImpression" }, { "$ref": "#/definitions/eventErrorAdsResponseParse" }, { "$ref": "#/definitions/eventErrorAdsInvalidResponse" }, { "$ref": "#/definitions/eventErrorDisallowedHost"}, { "$ref": "#/definitions/eventPersonalizationDisabled"}, { "$ref": "#/definitions/eventWarningDynamicVariableSubFailed"}, { "$ref": "#/definitions/eventVodTimeBasedAvailPlanVastResponseForOffset" }, { "$ref": "#/definitions/eventVodTimeBasedAvailPlanSuccess" } ], "definitions": { "eventAdMarkersFound": { "$id": "#/definitions/eventAdMarkersFound", "required": [ "eventType", "adMarkers" ], "properties": { "eventType": { "type": "string", "const": "AD_MARKER_FOUND" } } }, "eventNonAdMarkerFound": { "$id": "#/definitions/eventNonAdMarkerFound", "required": [ "eventType", "adMarkers" ], "properties": { "eventType": { "type": "string", "const": "NON_AD_MARKER_FOUND" } } }, "eventMakingAdsRequest": { "$id": "#/definitions/eventMakingAdsRequest", "required": [ "eventType", "adsRequestUrl" ], "properties": { "eventType": { "type": "string", "const": "MAKING_ADS_REQUEST" } } }, "eventModifiedTargetUrl": { "$id": "#/definitions/eventModifiedTargetUrl", "required": [ "eventType", "originalTargetUrl", "updatedTargetUrl" ], "properties": { "eventType": { "type": "string", "const": "MODIFIED_TARGET_URL" } } }, "eventRawAdsResponse": { "$id": "#/definitions/eventRawAdsResponse", "required": [ "eventType", "rawAdsResponse", "rawAdsResponseIndex" ], "properties": { "eventType": { "type": "string", "const": "RAW_ADS_RESPONSE" } } }, "eventVastResponse": { "$id": "#/definitions/eventVastResponse", "_comment": "NOTE: the vastResponse property should ideally be marked as a required field for this event, but unfortunately, in the case of an empty vast response, we currently emit an EMPTY_VAST_RESPONSE followed by a VAST_RESPONSE, and the vastResponse property is not present in the latter. We need to fix this so that we don't emit both of those events in the empty response case, and update this schema to flag vastResponse as required for VAST_RESPONSE.", "required": [ "eventType" ], "properties": { "eventType": { "type": "string", "const": "VAST_RESPONSE" } } }, "eventFilledAvail": { "$id": "#/definitions/eventFilledAvail", "required": [ "eventType", "avail" ], "properties": { "eventType": { "type": "string", "const": "FILLED_AVAIL" } } }, "eventFilledOverlayAvail": { "$id": "#/definitions/eventFilledOverlayAvail", "required": [ "eventType", "avail" ], "properties": { "eventType": { "type": "string", "const": "FILLED_OVERLAY_AVAIL" } } }, "eventErrorVastMissingOverlays": { "$id": "#/definitions/eventErrorVastMissingOverlays", "required": [ "eventType", "adsRequestUrl", "requestHeaders" ], "properties": { "eventType": { "type": "string", "const": "ERROR_VAST_MISSING_OVERLAYS" } } }, "eventErrorFiringBeaconFailed": { "$id": "#/definitions/eventErrorFiringBeaconFailed", "required": [ "eventType", "error", "beaconInfo" ], "properties": { "eventType": { "type": "string", "const": "ERROR_FIRING_BEACON_FAILED" } } }, "eventWarningNoAdvertisements": { "$id": "#/definitions/eventWarningNoAdvertisements", "required": [ "eventType" ], "_comment": "We should really have a more descriptive error field for these events", "properties": { "eventType": { "type": "string", "const": "WARNING_NO_ADVERTISEMENTS" } } }, "eventUnknownHost": { "$id": "#/definitions/eventUnknownHost", "required": [ "eventType", "requestHeaders" ], "properties": { "eventType": { "type": "string", "const": "ERROR_UNKNOWN_HOST" } } }, "eventErrorAdsTimeout": { "$id": "#/definitions/eventErrorAdsTimeout", "required": [ "eventType", "adsRequestUrl", "requestHeaders" ], "properties": { "eventType": { "type": "string", "const": "ERROR_ADS_TIMEOUT" } } }, "eventPlannedAvail": { "$id": "#/definitions/eventPlannedAvail", "required": [ "eventType" ], "_comment": "TODO: Flesh this out as we implement it", "properties": { "eventType": { "type": "string", "const": "PLANNED_AVAIL" } } }, "eventEmptyVastResponse": { "$id": "#/definitions/eventEmptyVastResponse", "required": [ "eventType" ], "properties": { "eventType": { "type": "string", "const": "EMPTY_VAST_RESPONSE" } } }, "eventEmptyVmapResponse": { "$id": "#/definitions/eventEmptyVmapResponse", "required": [ "eventType" ], "properties": { "eventType": { "type": "string", "const": "EMPTY_VMAP_RESPONSE" } } }, "eventErrorUnknown": { "$id": "#/definitions/eventErrorUnknown", "required": [ "eventType" ], "_comment": "TODO: we should have a field for the exception message or something", "properties": { "eventType": { "type": "string", "const": "ERROR_UNKNOWN" } } }, "eventVastRedirect": { "$id": "#/definitions/eventVastRedirect", "required": [ "eventType" ], "properties": { "eventType": { "type": "string", "const": "VAST_REDIRECT" } } }, "eventRedirectedVastResponse": { "$id": "#/definitions/eventRedirectedVastResponse", "required": [ "eventType" ], "properties": { "eventType": { "type": "string", "const": "REDIRECTED_VAST_RESPONSE" } }, "_comment": "NOTE that the property vastResponse is not required because empty vast responses do not contain a vastResponse." }, "eventErrorAdsResponseParse": { "$id": "#/definitions/eventErrorAdsResponseParse", "required": [ "eventType" ], "_comment": "We should have a field with an error message here", "properties": { "eventType": { "type": "string", "const": "ERROR_ADS_RESPONSE_PARSE" } } }, "eventErrorAdsInvalidResponse": { "$id": "#/definitions/eventErrorAdsInvalidResponse", "required": [ "eventType", "additionalInfo" ], "properties": { "eventType": { "type": "string", "const": "ERROR_ADS_INVALID_RESPONSE" } } }, "eventErrorAdsMissingImpression": { "$id": "#/definitions/eventErrorAdsMissingImpression", "required": [ "eventType" ], "properties": { "eventType": { "type": "string", "const": "ERROR_VAST_MISSING_IMPRESSION" } } }, "eventErrorDisallowedHost": { "$id": "#/definitions/eventErrorDisallowedHost", "required": [ "eventType" ], "properties": { "eventType": { "type": "string", "const": "ERROR_DISALLOWED_HOST" } } }, "eventPersonalizationDisabled": { "$id": "#/definitions/eventPersonalizationDisabled", "required": [ "eventType" ], "properties": { "eventType": { "type": "string", "const": "ERROR_PERSONALIZATION_DISABLED" } } }, "eventWarningDynamicVariableSubFailed": { "$id": "#/definitions/eventWarningDynamicVariableSubFailed", "required": [ "eventType", "adsRequestUrl" ], "properties": { "eventType": { "type": "string", "const": "WARNING_URL_VARIABLE_SUBSTITUTION_FAILED" } } }, "eventVodTimeBasedAvailPlanVastResponseForOffset": { "$id": "#/definitions/eventVodTimeBasedAvailPlanVastResponseForOffset", "required": [ "eventType", "vastResponse" ], "properties": { "eventType": { "type": "string", "const": "VOD_TIME_BASED_AVAIL_PLAN_VAST_RESPONSE_FOR_OFFSET" } } }, "eventVodTimeBasedAvailPlanSuccess": { "$id": "#/definitions/eventVodTimeBasedAvailPlanSuccess", "required": [ "eventType", "vodCreativeOffsets" ], "properties": { "eventType": { "type": "string", "const": "VOD_TIME_BASED_AVAIL_PLAN_SUCCESS" } } }, "creativeUniqueId": { "type": "string", "description": "The unique identifier for the ad, used as a key for transcoding. This is the ID field for the creative in the VAST response, if available. Otherwise, it's the mezzanine URL of the ad. " }, "adSystem": { "type": "string", "description": "The value of the <code>AdSystem</code> tag in the VAST response. " }, "vastDuration": { "type": "number", "description": "The duration of the ad, as parsed from the VAST response." }, "transcodedAdDuration": { "type": "number", "description": "The duration of the ad, calculated from the transcoded asset." }, "adContent": { "$id": "#/properties/adContent", "type": ["object", "null"], "title": "adContent", "description": "Information about the content of the inserted ad.", "additionalProperties": false, "properties": { "adPlaylistUris": { "$id": "#/properties/adContent/adPlaylistUris", "type": "object", "title": "adPlaylistUris", "description": "The mapping from the origin manifest for a variant to the ad manifest for the variant. For DASH, this contains a single entry, because all variants are represented in a single DASH manifest. ", "additionalProperties": { "$id": "#/properties/adContent/adPlaylistUris/adPlaylistUri", "type": "string", "description": "The URL of the ad manifest for the specific variant." } } } }, "adMezzanineUri": { "type": "string", "description": "The URL of the mezzanine version of the ad, which is the input to the transcoder." }, "bitrate": { "type": "integer", "examples": [ 533 ], "description": "The bitrate." }, "width": { "type": "integer", "examples": [ 1280 ], "description": "Width in pixels." }, "height": { "type": "integer", "examples": [ 720 ], "description": "Height in pixels." }, "trackingEvents": { "type": "object", "title": "trackingEvents", "description": "The tracking beacon URLs for the various tracking events for the ad. The keys are the event names, and the values are a list of beacon URLs.", "additionalProperties": { "type": "array", "description": "The list of beacon URLs for the specified tracking event (impression, complete, and so on)", "items": { "type": "string", "description": "The beacon URLs for this tracking event." } } }, "nonLinearAds": { "$id": "#/properties/nonLinearAds", "type": "object", "title": "nonLinearAds", "description": "A NonLinearAds as it appears in the VAST response.", "required": [ "nonLinearAdList", "nonLinearTrackingEvents" ], "properties": { "nonLinearAdList": { "type": "array", "description": "List of non linear ads as they exist within one NonLinearAds.", "items": { "type": "object", "title": "nonLinearAdList", "description": "List of NonLinearAd as they are parsed from its parent NonLinearAds.", "properties": { "nonLinearAdId": { "type": "string", "description": "Ad ID of this non linear ad." }, "nonLinearAdSystem": { "type": "string", "description": "Ad system of this non linear ad's parent Inline ad." }, "nonLinearAdTitle": { "type": "string", "description": "Ad title of this non linear ad's parent Inline ad." }, "nonLinearCreativeId": { "type": "string", "description": "Creative ID of this non linear ad's parent Creative ad." }, "nonLinearCreativeAdId": { "type": "string", "description": "Creative ad ID of this non linear ad." }, "nonLinearCreativeSequence": { "type": "string", "description": "Creative sequence of this non linear ad." }, "nonLinearWidth": { "type": "string", "description": "Width of this non linear ad." }, "nonLinearHeight": { "type": "string", "description": "Height of this non linear ad." }, "nonLinearExpandedWidth": { "type": "string", "description": "Expanded width of this non linear ad." }, "nonLinearExpandedHeight": { "type": "string", "description": "Expanded height of this non linear ad." }, "nonLinearScalable": { "type": "boolean", "description": "Boolean denoting if this non linear ad is scalable." }, "nonLinearMaintainAspectRatio": { "type": "boolean", "description": "Boolean denoting if aspect ratio should be maintained for this non linear ad." }, "nonLinearMinSuggestedDuration": { "type": "string", "description": "Min suggested duration for this non linear ad." }, "nonLinearApiFramework": { "type": "string", "description": "API framework for this non linear ad's parent Inline ad." }, "nonLinearStaticResource": { "type": "string", "description": "Static resource for this non linear ad." }, "nonLinearStaticResourceCreativeType": { "type": "string", "description": "Static Resource creative type for this non linear ad." }, "nonLinearIFrameResource": { "type": "string", "description": "I-Frame resource for this non linear ad." }, "nonLinearHtmlResource": { "type": "string", "description": "HTML resource for this non linear ad." }, "nonLinearAdParameters": { "type": "string", "description": "Ad parameters for this non linear ad." }, "nonLinearClickThrough": { "type": "string", "description": "Click Through data for this non linear ad." }, "nonLinearClickTracking": { "type": "string", "description": "Click Tracking data for this non linear ad." }, "nonLinearClickTrackingId": { "type": "string", "description": "Click Tracking ID for this non linear ad." } } } }, "nonLinearTrackingEvents": { "$ref": "#/definitions/trackingEvents" }, "extensions": { "$id": "#/properties/nonLinearAds/extensions", "type": "array", "description": "Extensions that exist for this NonLinearAds.", "items": { "$id": "#/properties/nonLinearAds/extensions/items", "type": "object", "title": "Extensions", "description": "Extensions found in non linear ads", "additionalProperties": false, "properties": { "extensionType": { "$id": "#/properties/nonLinearAds/extensions/extensionType", "type": "string", "description": "The value of the extension type attribute of the <code>Extensions</code> tag.", "examples": [ "FreeWheel" ] }, "extensionContent": { "$id": "#/properties/nonLinearAds/extensions/extensionContent", "type": "string", "description": "The extension content attribute of the <code>Extensions</code> tag.", "examples": [ "progressive" ] } } } } } }, "adBreakTrackingEvents": { "$id": "#/properites/adBreakTrackingEvents", "type": "object", "title": "adBreakTrackingEvents", "description": "These are all VMAP ad break tracking events.", "additionalProperties": { "type": "array", "description": "VMAP/ad break tracking events and corresponding URL", "items": { "type": "string", "description": "The beacon URLs for this tracking event." } } }, "vastAd": { "$id": "#/properties/vastAd", "type": "object", "title": "vastAd", "description": "Information about a single ad parsed from the VAST response.", "required": [ "vastAdId", "adSystem", "adTitle", "creativeId", "creativeAdId", "duration", "vastMediaFiles", "trackingEvents" ], "additionalProperties": false, "properties": { "vastAdId": { "$id": "#/properties/vastAd/vastAdId", "type": "string", "description": "The value of the id attribute of the <code>Ad</code> tag in the VAST response", "examples": [ "ad1" ] }, "adSystem": {"$ref": "#/definitions/adSystem" } , "adTitle": { "$id": "#/properties/vastAd/adTitle", "type": "string", "description": "The media files that are available for the ad in the VAST response.", "examples": [ "External NCA1C1L1 LinearInlineSkippable" ] }, "creativeId": { "$id": "#/properties/vastAd/creativeId", "type": "string", "description": "The value of the id attribute of the <code>Creative</code> tag in the VAST response.", "examples": [ "creative1" ] }, "creativeAdId": { "$id": "#/properties/vastAd/creativeAdId", "type": "string", "description": "The value of the adId attribute of the <code>Creative</code> tag in the VAST response." }, "duration": { "$id": "#/properties/vastAd/duration", "type": "number", "description": "The approximate duration of the ad, based on the <code>duration</code> tag in the <code>linear</code> element of the VAST response.", "examples": [ 30, 30.0 ] }, "vastMediaFiles": { "$id": "#/properties/vastAd/vastMediaFiles", "type": "array", "description": "The list of available media files for the ad in the VAST response.", "items": { "$id": "#/properties/vastAd/vastMediaFiles/items", "type": "object", "title": "vastMediaFile", "description": "Information about a media file for the ad.", "required": [ "uri", "id", "delivery", "type", "apiFramework", "width", "height", "bitrate" ], "additionalProperties": false, "properties": { "uri": { "$ref": "#/definitions/adMezzanineUri" }, "id": { "$id": "#/properties/vastAd/vastMediaFiles/items/properties/id", "type": "string", "description": "The value of the id attribute of the <code>MediaFile</code> tag.", "examples": [ "GDFP" ] }, "delivery": { "$id": "#/properties/vastAd/vastMediaFiles/items/properties/delivery", "type": "string", "description": "The protocol used for the media file, set to either progressive or streaming.", "examples": [ "progressive" ] }, "type": { "$id": "#/properties/vastAd/vastMediaFiles/items/properties/type", "type": "string", "description": "The MIME type of the media file, taken from the type attribute of the <code>MediaFile</code> tag.", "examples": [ "video/mp4" ] }, "apiFramework": { "$id": "#/properties/vastAd/vastMediaFiles/items/properties/apiFramework", "type": "string", "description": "The API framework needed to manage the media file. Example: <code>VPAID</code>." }, "width": { "$ref": "#/definitions/width" }, "height": { "$ref": "#/definitions/height" }, "bitrate": { "$ref": "#/definitions/bitrate" } } } }, "trackingEvents": { "$ref": "#/definitions/trackingEvents" }, "vastAdTagUri": { "$id": "#/properties/vastAd/vastAdTagUri", "type": "string", "description": "The VMAP-specific redirect URI for an ad.", "examples": [ "https://ads.redirect.com/redirect1" ] } } } } }

이 페이지에서

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.