기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
다음 섹션에서는 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의 속성에 관해 설명합니다.
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
adPlaylistUris |
adPlaylistUris 형식의 객체 | false | 변형의 원본 매니페스트에서 변형의 광고 매니페스트로 매핑. DASH의 경우 여기에는 단일 항목이 포함되어 있는데, 그 이유는 모든 변형이 단일 DASH 매니페스트에 표시되기 때문입니다. |
adPlaylistUris
이 섹션에서는 ADS 로그 adPlaylistUris의 속성에 관해 설명합니다.
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
<any string> |
문자열 | false | 특정 변형에 대한 ad 매니페스트의 URL |
avail
이 섹션에서는 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의 속성에 관해 설명합니다.
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
adContent |
adContent 형식의 객체 | true | 삽입된 광고의 콘텐츠에 관한 정보 |
creativeUniqueId |
문자열 | true | 트랜스코딩용 키로 사용되는 광고용 고유 식별자. 이것은 VAST 응답의 크리에이티브에 대한 ID 필드입니다(제공되는 경우). 또는 광고의 메자닌 URL입니다. |
trackingEvents |
trackingEvents 형식의 객체 | true | 광고의 다양한 추적 이벤트에 대한 추적 비콘 URL. 키는 이벤트 이름이고, 값은 비콘 URL의 목록입니다. |
transcodedAdDuration |
숫자 | true | 트랜스코딩된 자산에서 계산된 광고의 지속시간 |
uri |
문자열 | true | 메자닌 버전 광고의 URL로서, 트랜스코더에 입력되는 값 |
vastDuration |
숫자 | true | VAST 응답에서 구문 분석되는 광고의 지속시간 |
requestheaders
이 섹션에서는 ADS 로그 requestheaders의 속성에 관해 설명합니다.
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
name |
문자열 | true | 헤더의 이름 |
value |
문자열 | true | 헤더의 값 |
skippedAd
이 섹션에서는 ADS 로그 skippedAd의 속성에 관해 설명합니다.
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
adMezzanineUrl |
문자열 | true | 건너뛴 광고의 메자닌 URL |
creativeUniqueId |
문자열 | true | 트랜스코딩용 키로 사용되는 광고용 고유 식별자. 이것은 VAST 응답의 크리에이티브에 대한 ID 필드입니다(제공되는 경우). 또는 광고의 메자닌 URL입니다. |
skippedReason |
문자열 | true | 광고가 삽입되지 않은 이유를 나타내는 코드. 예시: TRANSCODE_IN_PROGRESS . |
transcodedAdDuration |
숫자 | false | 트랜스코딩된 자산에서 계산된 광고의 지속시간 |
vastDuration |
숫자 | true | VAST 응답에서 구문 분석되는 광고의 지속시간 |
slateAd
이 섹션에서는 ADS 로그 slateAd의 속성에 관해 설명합니다.
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
adContent |
adContent 형식의 객체 | true | 삽입된 광고의 콘텐츠에 관한 정보 |
creativeUniqueId |
문자열 | true | 트랜스코딩용 키로 사용되는 광고용 고유 식별자. 이것은 VAST 응답의 크리에이티브에 대한 ID 필드입니다(제공되는 경우). 또는 광고의 메자닌 URL입니다. |
transcodedAdDuration |
숫자 | true | 트랜스코딩된 자산에서 계산된 광고의 지속시간 |
uri |
문자열 | true | 메자닌 버전 광고의 URL로서, 트랜스코더에 입력되는 값 |
trackingEvents
이 섹션에서는 ADS 로그 trackingEvents의 속성에 관해 설명합니다.
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
<any string> |
문자열 형식의 배열 | false | 지정된 추적 이벤트의 비콘 URL 목록(노출, 완료 등) |
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의 속성에 관해 설명합니다.
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
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의 속성에 관해 설명합니다.
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
errors |
문자열 형식의 배열 | true | VAST 응답의 Error 태그에서 구문 분석된 오류 URL |
vastAds |
vastAd 형식의 배열 | true | VAST 응답에서 구문 분석된 광고 |
version |
문자열 | true | 응답에 있는 VAST 태그의 version 속성에서 구문 분석된 VAST 사양 버전 |
vodCreativeOffsets
이 섹션에서는 ADS 로그 vodCreativeOffsets의 속성에 관해 설명합니다.
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
<any string> |
vodCreativeOffset 형식의 배열 | false | 매니페스트의 시간 오프셋에서 이 시점에 삽입할 광고 목록으로 매핑 |
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" ] } } } } }