Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bagian berikut menjelaskan log yang MediaTailor memancarkan untuk menggambarkan peristiwa dengan server keputusan iklan (ADS). ini adalah AdDecisionServerInteractions
log.
AdDecisionServerInteractions peristiwa
Peristiwa berikut dipancarkan selama MediaTailor interaksi dengan server keputusan iklan (ADS).
Log | Deskripsi |
---|---|
AD_MARKER_FOUND |
MediaTailor menemukan penanda iklan di manifes. |
BEACON_FIRED |
MediaTailor menembakkan suar pelacak. |
EMPTY_VAST_RESPONSE |
ADS mengembalikan respons VAST kosong yang berisi nol iklan. |
EMPTY_VMAP_RESPONSE |
ADS mengembalikan respons VMAP kosong. |
ERROR_ADS_INVALID_RESPONSE |
ADS mengembalikan kode status non-200. |
ERROR_ADS_IO |
MediaTailor mengalami kesalahan saat mencoba berkomunikasi dengan ADS. |
ERROR_ADS_RESPONSE_PARSE |
MediaTailor mengalami kesalahan saat mengurai respons ADS. |
ERROR_ADS_RESPONSE_UNKNOWN_ROOT_ELEMENT |
Respons ADS berisi elemen root yang tidak valid. |
ERROR_ADS_TIMEOUT |
MediaTailor Permintaan ke ADS habis waktunya. |
ERROR_DISALLOWED_HOST |
Host ADS tidak diperbolehkan. |
ERROR_FIRING_BEACON_FAILED |
MediaTailor gagal menembakkan suar pelacak. |
ERROR_PERSONALIZATION_DISABLED |
Penyisipan iklan dinonaktifkan untuk sesi ini. |
ERROR_UNKNOWN |
MediaTailor mengalami kesalahan yang tidak diketahui selama permintaan ADS. |
ERROR_UNKNOWN_HOST |
Host ADS tidak diketahui. |
ERROR_VAST_INVALID_MEDIA_FILE |
VAST Ad memiliki elemen yang tidak valid atau hilangMediaFile . |
ERROR_VAST_INVALID_VAST_AD_TAG_URI |
Respons VAST berisi invalidVASTAdTagURI . |
ERROR_VAST_MISSING_CREATIVES |
VAST Ad berisi nol atau beberapa Creatives elemen. Tepat satu Creatives elemen diperlukan. |
ERROR_VAST_MISSING_IMPRESSION |
VAST Ad mengandung nol Impression elemen. Setidaknya satu Impression elemen diperlukan. |
ERROR_VAST_MISSING_MEDIAFILES |
VAST Ad berisi nol atau beberapa MediaFiles elemen. Tepat satu MediaFiles elemen diperlukan. |
ERROR_VAST_MISSING_OVERLAYS |
MediaTailor tidak menerima materi iklan non-linier dari server iklan. |
ERROR_VAST_MULTIPLE_LINEAR |
VAST Ad berisi banyak Linear elemen. |
ERROR_VAST_MULTIPLE_TRACKING_EVENTS |
VAST Ad berisi banyak TrackingEvents elemen. |
ERROR_VAST_REDIRECT_EMPTY_RESPONSE |
Permintaan pengalihan VAST mengembalikan respons kosong. |
ERROR_VAST_REDIRECT_FAILED |
Permintaan pengalihan VAST mengalami kesalahan. |
ERROR_VAST_REDIRECT_MULTIPLE_VAST |
Permintaan pengalihan VAST menampilkan beberapa iklan. |
FILLED_AVAIL |
MediaTailor berhasil mengisi keberhasilannya. |
FILLED_OVERLAY_AVAIL |
MediaTailor berhasil mengisi overlay yang berhasil. |
INTERSTITIAL_VOD_FAILURE |
Permintaan atau respons ADS mengalami masalah saat mengisi ketersediaan pengantara untuk daftar putar VOD. Tidak ada iklan yang akan dimasukkan. |
INTERSTITIAL_VOD_SUCCESS |
MediaTailor berhasil mengisi ketersediaan pengantara untuk daftar putar VOD. |
MAKING_ADS_REQUEST |
MediaTailor meminta iklan dari ADS. |
MODIFIED_TARGET_URL |
MediaTailor memodifikasi URL target keluar. |
NON_AD_MARKER_FOUND |
MediaTailor menemukan penanda iklan yang tidak dapat ditindaklanjuti dalam manifes. |
RAW_ADS_RESPONSE |
MediaTailor menerima respons ADS mentah. |
REDIRECTED_VAST_RESPONSE |
MediaTailor menerima tanggapan VAST setelah mengikuti pengalihan VAST. |
VAST_REDIRECT |
Respons iklan VAST berisi pengalihan. |
VAST_RESPONSE |
MediaTailor menerima tanggapan yang luas. |
VOD_TIME_BASED_AVAIL_PLAN_SUCCESS |
MediaTailor berhasil membuat rencana penggunaan berbasis waktu untuk template VOD. |
VOD_TIME_BASED_AVAIL_PLAN_VAST_RESPONSE_FOR_OFFSET |
MediaTailor sedang membuat rencana penggunaan berbasis waktu untuk template VOD. MediaTailor menerima respons VAST untuk offset waktu. |
VOD_TIME_BASED_AVAIL_PLAN_WARNING_NO_ADVERTISEMENTS |
Permintaan atau respons ADS mengalami masalah saat membuat rencana penggunaan berbasis waktu untuk template VOD. Tidak ada iklan yang akan dimasukkan. |
WARNING_NO_ADVERTISEMENTS |
MediaTailor mengalami masalah saat mengisi avail. Tidak ada iklan yang disisipkan. |
WARNING_URL_VARIABLE_SUBSTITUTION_FAILED |
MediaTailor tidak dapat mengganti variabel dinamis di URL ADS. Periksa konfigurasi URL. |
WARNING_VPAID_AD_DROPPED |
Iklan VPAID turun karena batu tulis yang hilang, atau sesi menggunakan pelaporan sisi server. |
Deskripsi log ADS
Bagian ini menjelaskan struktur dan isi deskripsi log ADS. Untuk menjelajah sendiri di editor JSON, gunakan daftar diSkema JSON log ADS.
Setiap peristiwa dalam log ADS berisi bidang standar yang dihasilkan oleh CloudWatch Log. Untuk selengkapnya, lihat Menganalisis data CloudWatch log dengan wawasan Log.
Properti log ADS
Bagian ini menjelaskan properti log ADS.
Properti | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
adsRequestUrl |
string | false | URL lengkap dari permintaan ADS yang dibuat oleh MediaTailor. |
avail |
objek tipe berhasil | false | Informasi tentang pemanfaatan yang MediaTailor diisi dengan iklan. Saat ini, untuk jenis FILLED_AVAIL acara, ini adalah rencana yang dibuat oleh MediaTailor saat pertama kali menemukan keuntungan. Bagaimana hasil akhirnya diisi dapat bervariasi dari rencana ini, tergantung pada bagaimana konten diputar. |
awsAccountId |
string | true | ID akun AWS untuk MediaTailor konfigurasi yang digunakan untuk sesi tersebut. |
customerId |
string | true | Versi hash dari ID akun AWS, yang dapat Anda gunakan untuk mengkorelasikan beberapa entri log. |
eventDescription |
string | true | Deskripsi singkat tentang peristiwa yang memicu pesan log ini, yang disediakan oleh MediaTailor layanan. Secara default, ini kosong. Contoh:Got VAST response . |
eventTimestamp |
string | true | Tanggal dan waktu acara. |
eventType |
string | true | Kode untuk acara yang memicu pesan log ini. Contoh:VAST_RESPONSE . |
originId |
string | true | Nama konfigurasi dari MediaTailor konfigurasi. Ini berbeda dari sumber konten video, yang juga merupakan bagian dari konfigurasi. |
requestHeaders |
array tipe pembaca ulang | false | Header yang MediaTailor disertakan dengan permintaan ADS. Biasanya, log menyertakan ini ketika permintaan ke ADS gagal, untuk membantu pemecahan masalah. |
requestId |
string | true | ID MediaTailor permintaan, yang dapat Anda gunakan untuk menghubungkan beberapa entri log untuk permintaan yang sama. |
sessionId |
string | true | Pengidentifikasi numerik unik yang MediaTailor ditugaskan ke sesi pemain. Semua permintaan yang dibuat pemain untuk sesi memiliki ID sesi yang sama. Contoh:e039fd39-09f0-46b2-aca9-9871cc116cde . |
sessionType |
string (nilai hukum: [DASH, HLS]) | true | Jenis aliran pemain. |
vastAd |
objek tipe VastAd | false | Informasi tentang satu iklan yang diuraikan dari respons VAST. |
vastResponse |
objek tipe VastResponse | false | Informasi tentang respons VAST yang MediaTailor diterima dari ADS. |
vodCreativeOffsets |
objek tipe vodCreativeOffsets | false | Peta yang menunjukkan offset waktu dalam manifes tempat MediaTailor akan menyisipkan avails, berdasarkan respons VMAP. |
vodVastResponseTimeOffset |
number | false | Offset waktu khusus VMAP untuk penyisipan iklan VOD. |
Konten iklan
Bagian ini menjelaskan properti AdContent log ADS.
Properti | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
adPlaylistUris |
objek tipe adPlaylistUris | false | Pemetaan dari manifes asal untuk varian ke manifes iklan untuk varian tersebut. Untuk DASH, ini berisi satu entri, karena semua varian diwakili dalam manifes DASH tunggal. |
adPlaylistUris
Bagian ini menjelaskan properti log ADS adPlaylistUris.
Properti | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
<any string> |
string | false | URL manifes iklan untuk varian tertentu. |
berhasil
Bagian ini menjelaskan properti log ADS yang tersedia.
Properti | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
availId |
string | true | Pengidentifikasi unik untuk penggunaan ini. Untuk HLS, ini adalah nomor urut media tempat ketersediaan dimulai. Untuk DASH, ini adalah ID periode. |
creativeAds |
array tipe CreativeAD | true | Iklan yang MediaTailor dimasukkan ke dalam avail. |
fillRate |
number | true | Tingkat di mana iklan mengisi durasi avail, dari 0,0 (untuk 0%) hingga 1,0 (untuk 100%). |
filledDuration |
number | true | Jumlah durasi semua iklan yang dimasukkan ke dalam avail. |
numAds |
number | true | Jumlah iklan yang MediaTailor dimasukkan ke dalam avail. |
originAvailDuration |
number | true | Durasi penggunaan sebagaimana ditentukan dalam aliran konten dari asal (CUE_OUT atauSCTE ). |
skippedAds |
array tipe SkippeDad | false | Iklan yang MediaTailor tidak menyisipkan, karena alasan seperti TRANSCODE_IN_PROGRESS danTRANSCODE_ERROR . |
slateAd |
objek tipe SlateAD | true | Informasi tentang iklan batu tulis, yang MediaTailor digunakan untuk mengisi segmen yang tidak terisi dalam avail. |
CreativeAD
Bagian ini menjelaskan properti log ADS CreativeAd.
Properti | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
adContent |
objek tipe Konten iklan | true | Informasi tentang konten iklan yang disisipkan. |
creativeUniqueId |
string | true | Pengenal unik untuk iklan, digunakan sebagai kunci untuk transcoding. Ini adalah bidang ID untuk materi iklan dalam respons VAST, jika tersedia. Jika tidak, itu adalah URL mezzanine iklan. |
trackingEvents |
objek tipe Melacak Acara | true | Suar pelacakan URLs untuk berbagai acara pelacakan untuk iklan. Kuncinya adalah nama acara, dan nilainya adalah daftar suar URLs. |
transcodedAdDuration |
number | true | Durasi iklan, dihitung dari aset yang ditranskode. |
uri |
string | true | URL versi mezzanine iklan, yang merupakan input ke transcoder. |
vastDuration |
number | true | Durasi iklan, sebagaimana diuraikan dari respons VAST. |
pembaca ulang
Bagian ini menjelaskan properti dari log ADS requestheaders.
Properti | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
name |
string | true | Nama header. |
value |
string | true | Nilai header. |
SkippeDad
Bagian ini menjelaskan properti log ADS SkippeDad.
Properti | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
adMezzanineUrl |
string | true | URL mezzanine dari iklan yang dilewati. |
creativeUniqueId |
string | true | Pengenal unik untuk iklan, digunakan sebagai kunci untuk transcoding. Ini adalah bidang ID untuk materi iklan dalam respons VAST, jika tersedia. Jika tidak, itu adalah URL mezzanine iklan. |
skippedReason |
string | true | Kode yang menunjukkan mengapa iklan tidak dimasukkan. Contoh:TRANSCODE_IN_PROGRESS . |
transcodedAdDuration |
number | false | Durasi iklan, dihitung dari aset yang ditranskode. |
vastDuration |
number | true | Durasi iklan, sebagaimana diuraikan dari respons VAST. |
SlateAD
Bagian ini menjelaskan properti log ADS SlateAd.
Properti | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
adContent |
objek tipe Konten iklan | true | Informasi tentang konten iklan yang disisipkan. |
creativeUniqueId |
string | true | Pengenal unik untuk iklan, digunakan sebagai kunci untuk transcoding. Ini adalah bidang ID untuk materi iklan dalam respons VAST, jika tersedia. Jika tidak, itu adalah URL mezzanine iklan. |
transcodedAdDuration |
number | true | Durasi iklan, dihitung dari aset yang ditranskode. |
uri |
string | true | URL versi mezzanine iklan, yang merupakan input ke transcoder. |
Melacak Acara
Bagian ini menjelaskan properti log ADS TrackingEvents.
Properti | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
<any string> |
array tipe string | false | Daftar suar URLs untuk acara pelacakan yang ditentukan (tayangan, lengkap, dan sebagainya) |
VastAd
Bagian ini menjelaskan properti log ADS VastAd.
Properti | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
adSystem |
string | true | Nilai AdSystem tag dalam respons VAST. |
adTitle |
string | true | File media yang tersedia untuk iklan dalam respons VAST. |
creativeAdId |
string | true | Nilai atribut aDid dari Creative tag dalam respons VAST. |
creativeId |
string | true | Nilai atribut id Creative tag dalam respon VAST. |
duration |
number | true | Perkiraan durasi iklan, berdasarkan duration tag di linear elemen respons VAST. |
trackingEvents |
objek tipe Melacak Acara | true | Suar pelacakan URLs untuk berbagai acara pelacakan untuk iklan. Kuncinya adalah nama acara, dan nilainya adalah daftar suar URLs. |
vastAdId |
string | true | Nilai atribut id Ad tag dalam respon VAST |
vastAdTagUri |
string | false | URI pengalihan khusus VMAP untuk iklan. |
vastMediaFiles |
array tipe vastMediaFile | true | Daftar file media yang tersedia untuk iklan dalam respons VAST. |
vastMediaFile
Bagian ini menjelaskan properti log ADS vastMediaFile.
Properti | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
apiFramework |
string | true | Framework API diperlukan untuk mengelola file media. Contoh:VPAID . |
bitrate |
number | true | Bitrate dari file media. |
delivery |
string | true | Protokol yang digunakan untuk file media, diatur ke progresif atau streaming. |
height |
number | true | Tinggi piksel file media. |
id |
string | true | Nilai atribut id dari MediaFile tag. |
type |
string | true | Jenis MIME dari file media, diambil dari atribut tipe MediaFile tag. |
uri |
string | true | URL versi mezzanine iklan, yang merupakan input ke transcoder. |
width |
number | true | Lebar piksel file media. |
VastResponse
Bagian ini menjelaskan properti log ADS VastResponse.
Properti | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
errors |
array tipe string | true | Kesalahan URLs diuraikan dari Error tag dalam respons VAST. |
vastAds |
array tipe VastAd | true | Iklan diuraikan dari respons VAST. |
version |
string | true | Versi spesifikasi VAST, diuraikan dari version atribut VAST tag dalam respons. |
vodCreativeOffsets
Bagian ini menjelaskan properti log ADS vodCreativeOffsets.
Properti | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
<any string> |
array tipe vodCreativeOffset | false | Pemetaan dari offset waktu dalam manifes ke daftar iklan yang akan disisipkan saat ini. |
vodCreativeOffset
Bagian ini menjelaskan properti log ADS vodCreativeOffset.
Properti | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
adContent |
objek tipe Konten iklan | true | Informasi tentang konten iklan yang disisipkan. |
creativeUniqueId |
string | true | Pengenal unik untuk iklan, digunakan sebagai kunci untuk transcoding. Ini adalah bidang ID untuk materi iklan dalam respons VAST, jika tersedia. Jika tidak, itu adalah URL mezzanine iklan. |
trackingEvents |
objek tipe Melacak Acara | true | Suar pelacakan URLs untuk berbagai acara pelacakan untuk iklan. Kuncinya adalah nama acara, dan nilainya adalah daftar suar URLs. |
transcodedAdDuration |
number | true | Durasi iklan, dihitung dari aset yang ditranskode. |
uri |
string | true | URL versi mezzanine iklan, yang merupakan input ke transcoder. |
vastDuration |
number | true | Durasi iklan, sebagaimana diuraikan dari respons VAST. |
Skema JSON log ADS
Berikut ini mencantumkan skema JSON untuk log AWS Elemental MediaTailor ADS.
{ "$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" ] } } } } }