

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Visualizzazione dei log AWS Elemental MediaTailor
<a name="monitoring-through-logs"></a>

MediaTailor emette registri che descrivono una serie di traguardi e attività nei canali e nelle configurazioni di riproduzione. È possibile utilizzare questi registri per ottenere visibilità sul flusso di lavoro e risolvere i problemi relativi al servizio. I seguenti argomenti descrivono i log e le opzioni di registrazione. 

**Topics**
+ [Registri ADS](ads-log-format.md)
+ [registri del manifesto](log-types.md)
+ [Registri di transcodifica](tm-log-format.md)
+ [Utilizzo dei registri venduti](vended-logs.md)
+ [Scrittura di log su Logs CloudWatch](monitoring-cw-logs.md)
+ [Controllo del volume dei log delle sessioni di inserimento degli annunci](log-configuration.md)
+ [Filtraggio di registri ed eventi](logs-filter.md)
+ [Generazione di registri di debug](debug-log-mode.md)

# AWS Elemental MediaTailor Descrizione dei log ADS e tipi di eventi
<a name="ads-log-format"></a>

Le sezioni seguenti descrivono i log che vengono MediaTailor emessi per descrivere gli eventi con l'ad decision server (ADS). Si tratta di registri`AdDecisionServerInteractions`.

**Topics**
+ [Eventi AdDecisionServerInteractions](#log-types-adsinteraction)
+ [Descrizione del registro ADS](#ads-log-description)
+ [Schema JSON del registro ADS](#ads-log-json-schema)

## Eventi AdDecisionServerInteractions
<a name="log-types-adsinteraction"></a>

I seguenti eventi vengono emessi durante MediaTailor le interazioni con l'ad decision server (ADS). 


| Log | Description | 
| --- | --- | 
| AD\$1MARKER\$1FOUND | MediaTailor ha trovato un indicatore pubblicitario nel manifesto. | 
| BEACON\$1FIRED | È stato attivato un segnale di tracciamento per segnalare gli eventi pubblicitari. Nella modalità di segnalazione lato server (impostazione predefinita), MediaTailor attiva il beacon. Nella modalità di segnalazione lato client, il dispositivo di riproduzione attiva il beacon. | 
| EMPTY\$1VAST\$1RESPONSE | L'ADS ha restituito una risposta VAST vuota contenente zero annunci. | 
| EMPTY\$1VMAP\$1RESPONSE | L'ADS ha restituito una risposta VMAP vuota. | 
| ERROR\$1ADS\$1INVALID\$1RESPONSE | L'ADS ha restituito un codice di stato diverso da 200. | 
| ERROR\$1ADS\$1IO | MediaTailor si è verificato un errore durante il tentativo di comunicare con l'ADS.  | 
| ERROR\$1ADS\$1RESPONSE\$1PARSE | MediaTailor ha riscontrato un errore durante l'analisi della risposta ADS.  | 
| ERROR\$1ADS\$1RESPONSE\$1UNKNOWN\$1ROOT\$1ELEMENT | La risposta ADS contiene un elemento root non valido. | 
| ERROR\$1ADS\$1TIMEOUT | La MediaTailor richiesta all'ADS è scaduta. | 
| ERROR\$1DISALLOWED\$1HOST | L'host ADS non è consentito. | 
| ERROR\$1FIRING\$1BEACON\$1FAILED | MediaTailor non è riuscito a far scattare il segnale di tracciamento. | 
| ERROR\$1PERSONALIZATION\$1DISABLED | L'inserimento degli annunci è disabilitato per questa sessione. | 
| ERROR\$1UNKNOWN | MediaTailor ha riscontrato un errore sconosciuto durante la richiesta ADS. | 
| ERROR\$1UNKNOWN\$1HOST | L'host ADS è sconosciuto. | 
| ERROR\$1VAST\$1INVALID\$1MEDIA\$1FILE | Il VAST Ad presenta un MediaFile elemento non valido o mancante. | 
| ERROR\$1VAST\$1INVALID\$1VAST\$1AD\$1TAG\$1URI | La risposta VAST contiene un messaggio non VASTAdTagURI valido. | 
| ERROR\$1VAST\$1MISSING\$1CREATIVES | Il VAST Ad contiene zero o più Creatives elementi. È richiesto esattamente un Creatives elemento. | 
| ERROR\$1VAST\$1MISSING\$1IMPRESSION | Il Ad VAST contiene zero Impression elementi. È richiesto almeno un Impression elemento.  | 
| ERROR\$1VAST\$1MISSING\$1MEDIAFILES | Il Ad VAST contiene zero o più MediaFiles elementi. È richiesto esattamente un MediaFiles elemento. | 
| ERROR\$1VAST\$1MISSING\$1OVERLAYS | MediaTailor non ho ricevuto alcuna creatività non lineare dall'ad server.  | 
| ERROR\$1VAST\$1MULTIPLE\$1LINEAR | Il VAST Ad contiene più Linear elementi. | 
| ERROR\$1VAST\$1MULTIPLE\$1TRACKING\$1EVENTS | Il Ad VAST contiene più TrackingEvents elementi. | 
| ERROR\$1VAST\$1REDIRECT\$1EMPTY\$1RESPONSE | La richiesta di reindirizzamento VAST ha restituito una risposta vuota. | 
| ERROR\$1VAST\$1REDIRECT\$1FAILED | La richiesta di reindirizzamento VAST ha rilevato un errore. | 
| ERROR\$1VAST\$1REDIRECT\$1MULTIPLE\$1VAST | La richiesta di reindirizzamento VAST ha restituito più annunci. | 
| FILLED\$1AVAIL | MediaTailor ha riempito con successo il risultato. | 
| FILLED\$1OVERLAY\$1AVAIL | MediaTailor ha riempito con successo la disponibilità dell'overlay. | 
| INTERSTITIAL\$1VOD\$1FAILURE | La richiesta o la risposta ADS ha riscontrato un problema durante la compilazione delle schede interstiziali per la playlist VOD. Non verrà inserito alcun annuncio. | 
| INTERSTITIAL\$1VOD\$1SUCCESS | MediaTailor file interstiziali compilati con successo per la playlist VOD. | 
| MAKING\$1ADS\$1REQUEST | MediaTailor richiede annunci pubblicitari all'ADS. | 
| MODIFIED\$1TARGET\$1URL | MediaTailor ha modificato l'URL di destinazione in uscita. | 
| NON\$1AD\$1MARKER\$1FOUND | MediaTailor ha trovato un indicatore pubblicitario non utilizzabile nel manifesto. | 
| RAW\$1ADS\$1RESPONSE | MediaTailor ha ricevuto una risposta ADS non elaborata. | 
| REDIRECTED\$1VAST\$1RESPONSE | MediaTailor ha ricevuto una risposta VAST dopo aver seguito il reindirizzamento VAST. | 
| VAST\$1REDIRECT | La risposta all'annuncio VAST contiene un reindirizzamento. | 
| VAST\$1RESPONSE | MediaTailor ha ricevuto una risposta VAST. | 
| VOD\$1TIME\$1BASED\$1AVAIL\$1PLAN\$1SUCCESS | MediaTailor ha creato con successo un piano di disponibilità basato sul tempo per il modello VOD. | 
| VOD\$1TIME\$1BASED\$1AVAIL\$1PLAN\$1VAST\$1RESPONSE\$1FOR\$1OFFSET | MediaTailor sta creando un piano di disponibilità basato sul tempo per il modello VOD. MediaTailor ha ricevuto una risposta VAST per l'offset temporale. | 
| VOD\$1TIME\$1BASED\$1AVAIL\$1PLAN\$1WARNING\$1NO\$1ADVERTISEMENTS | La richiesta o la risposta ADS ha riscontrato un problema durante la creazione di un piano di disponibilità basato sul tempo per il modello VOD. Non verrà inserito alcun annuncio. | 
| WARNING\$1NO\$1ADVERTISEMENTS | MediaTailor ha riscontrato un problema durante la compilazione della richiesta. Non viene inserita alcuna pubblicità. | 
| WARNING\$1URL\$1VARIABLE\$1SUBSTITUTION\$1FAILED | MediaTailor non può sostituire variabili dinamiche nell'URL ADS. Controlla la configurazione dell'URL. | 
| WARNING\$1VPAID\$1AD\$1DROPPED | Un annuncio VPAID è stato eliminato a causa di una lista mancante oppure la sessione utilizza la reportistica lato server. | 

## Descrizione del registro ADS
<a name="ads-log-description"></a>

Questa sezione descrive la struttura e i contenuti della descrizione del log ADS. Per esplorare in modo autonomo in un editor JSON, utilizza l'elenco in [Schema JSON del registro ADS](#ads-log-json-schema). 

Ogni evento nel registro ADS contiene i campi standard generati dai CloudWatch registri. Per informazioni, consulta [Analizzare i dati di registro con CloudWatch Logs Insights.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) 

### Proprietà dei log ADS
<a name="ads-logs-main"></a>

Questa sezione descrive le proprietà dei log ADS.


| Proprietà | Tipo | Campo obbligatorio | Descrizione | 
| --- | --- | --- | --- | 
| adsRequestUrl | stringa | false | L'URL completo della richiesta ADS effettuata da MediaTailor. | 
| avail | Oggetto di tipo [disponibilità](#ads-logs-avail) | false | Informazioni su un'offerta che si MediaTailor riempie di annunci. Attualmente, per il tipo di FILLED\$1AVAIL evento, questo è il piano creato la prima MediaTailor volta che ne riscontra i vantaggi. Il modo in cui la disponibilità viene raggiunta può variare da questo piano, a seconda della modalità di riproduzione dei contenuti.  | 
| awsAccountId | stringa | true | L'ID dell'account AWS per la MediaTailor configurazione utilizzata per la sessione. | 
| customerId | stringa | true | La versione con hash dell'ID dell'account AWS, che puoi utilizzare per correlare più voci di log. | 
| eventDescription | stringa | true | Una breve descrizione dell'evento che ha attivato questo messaggio di registro, fornita dal MediaTailor servizio. Per impostazione predefinita, è vuota. Esempio: Got VAST response. | 
| eventTimestamp | stringa | true | La data e l'ora dell'evento | 
| eventType | stringa | true | Il codice per l'evento che ha attivato questo messaggio di log. Esempio: VAST\$1RESPONSE. | 
| originId | stringa | true | Il nome della configurazione risultante dalla MediaTailor configurazione. Questo è diverso dall'origine dei contenuti video, che fa anche parte della configurazione. | 
| prefetchScheduleName | stringa | false | Il nome della pianificazione di prefetch associata a questo evento pubblicitario. | 
| requestHeaders | array di tipo [requestheaders](#ads-logs-requestheaders) | false | Le intestazioni MediaTailor incluse nella richiesta ADS. In genere, i log le includono quando una richiesta all'ADS non riesce, per facilitare la risoluzione dei problemi. | 
| requestId | stringa | true | L'ID della MediaTailor richiesta, che puoi utilizzare per correlare più voci di registro per la stessa richiesta. | 
| sessionId | stringa | true | L'identificatore numerico univoco MediaTailor assegnato alla sessione del giocatore. Tutte le richieste effettuate da un giocatore per una sessione hanno lo stesso ID sessione. Esempio: e039fd39-09f0-46b2-aca9-9871cc116cde. | 
| sessionType | string (valori ammessi: [DASH, HLS]) | true | Il tipo di flusso del giocatore. | 
| vastAd | Oggetto di tipo [vastAd](#ads-logs-vastAd) | false | Informazioni su un singolo annuncio analizzato dalla risposta VAST. | 
| vastResponse | Oggetto di tipo [vastResponse](#ads-logs-vastResponse) | false | Informazioni sulla risposta VAST MediaTailor ricevuta dall'ADS. | 
| vodCreativeOffsets | Oggetto di tipo [vodCreativeOffsets](#ads-logs-vodCreativeOffsets) | false | Una mappa che indica gli spostamenti temporali nel manifesto in cui MediaTailor verranno inseriti gli avail, in base alla risposta VMAP. | 
| vodVastResponseTimeOffset | numero | false | La differenza di orario specifica VMAP per l'inserimento di annunci VOD. | 

### adContent
<a name="ads-logs-adContent"></a>

Questa sezione descrive le proprietà di adContent dei log ADS.


**Proprietà di adContent dei log ADS**  

| Proprietà | Tipo | Campo obbligatorio | Description | 
| --- | --- | --- | --- | 
| adPlaylistUris | Oggetto di tipo [adPlaylistUris](#ads-logs-adPlaylistUris) | false | La mappatura dal manifest di origine per una variante al manifest di annunci per la variante. Per DASH, questo contiene una singola voce, perché tutte le varianti sono rappresentate in un singolo manifest DASH.  | 

### adPlaylistUris
<a name="ads-logs-adPlaylistUris"></a>

Questa sezione descrive le proprietà dei registri adPlaylistUris ADS.


**Proprietà dei registri adPlaylistUris ADS**  

| Proprietà | Tipo | Campo obbligatorio | Descrizione | 
| --- | --- | --- | --- | 
| <any string> | stringa | false | L'URL del manifest di annunci per la variante specifica. | 

### disponibilità
<a name="ads-logs-avail"></a>

Questa sezione descrive le proprietà di avail dei log ADS.


**Proprietà di avail dei log ADS**  

| Proprietà | Tipo | Campo obbligatorio | Descrizione | 
| --- | --- | --- | --- | 
| availId | stringa | true | L'identificatore univoco di questa disponibilità. Per HLS, questo è il numero di sequenza multimediale in cui inizia la disponibilità. Per DASH, questo è l'ID punto. | 
| creativeAds | array di tipo [creativeAd](#ads-logs-creativeAd) | true | Gli annunci che sono MediaTailor stati inseriti nella pagina. | 
| fillRate | numero | true | La frequenza con cui gli annunci raggiungono la durata di disponibilità, da 0,0 (per 0%) a 1,0 (per 100%). | 
| filledDuration | numero | true | La somma delle durate di tutti gli annunci inseriti nella disponibilità. | 
| numAds | numero | true | Il numero di annunci MediaTailor inseriti nell'avail. | 
| originAvailDuration | numero | true | La durata della disponibilità come specificato nel flusso di contenuti dall'origine (CUE\$1OUT o SCTE). | 
| skippedAds | array di tipo [skippedAd](#ads-logs-skippedAd) | false | Gli annunci che MediaTailor non sono stati inseriti, per motivi come TRANSCODE\$1IN\$1PROGRESS eTRANSCODE\$1ERROR. Per un elenco dei motivi per cui l'annuncio è stato ignorato, consulta[Risoluzione dei problemi relativi ai salti degli annunci](troubleshooting-ad-skipping-overview.md). | 
| slateAd | Oggetto di tipo [slateAd](#ads-logs-slateAd) | true | Informazioni sull'annuncio Slate, MediaTailor utilizzato per riempire tutti i segmenti vuoti disponibili. | 

### creativeAd
<a name="ads-logs-creativeAd"></a>

Questa sezione descrive le proprietà di creativeAd dei log ADS.


**Proprietà di creativeAd dei log ADS**  

| Proprietà | Tipo | Campo obbligatorio | Description | 
| --- | --- | --- | --- | 
| adContent | Oggetto di tipo [adContent](#ads-logs-adContent) | true | Informazioni sul contenuto dell'annuncio inserito. | 
| creativeUniqueId | stringa | true | L'identificatore univoco per l'annuncio, utilizzato come chiave per la transcodifica. Questo è il campo ID per la creatività nella risposta VAST, se disponibile. In caso contrario, è l'URL in formato intermedio dell'annuncio.  | 
| trackingEvents | Oggetto di tipo [trackingEvents](#ads-logs-trackingEvents) | true | Il beacon di tracciamento URLs per i vari eventi di tracciamento dell'annuncio. Le chiavi sono i nomi degli eventi e i valori sono un elenco di beacon. URLs | 
| transcodedAdDuration | numero | true | La durata dell'annuncio, calcolata dall'asset transcodificato. | 
| uri | stringa | true | L'URL della versione intermedia dell'annuncio, ovvero l'input per il transcodificatore. | 
| vastDuration | numero | true | La durata dell'annuncio, come analizzato dalla risposta VAST. | 

### requestheaders
<a name="ads-logs-requestheaders"></a>

Questa sezione descrive le proprietà dei requestheader dei log ADS.


**Proprietà dei requestheader dei log ADS.**  

| Proprietà | Tipo | Campo obbligatorio | Descrizione | 
| --- | --- | --- | --- | 
| name | stringa | true | Il nome dell'intestazione | 
| value | stringa | true | Il valore dell'intestazione. | 

### skippedAd
<a name="ads-logs-skippedAd"></a>

Questa sezione descrive le proprietà di skippedAd dei log ADS.


**Proprietà di skippedAd dei log ADS**  

| Proprietà | Tipo | Campo obbligatorio | Descrizione | 
| --- | --- | --- | --- | 
| adMezzanineUrl | stringa | true | L'URL intermedio dell'annuncio ignorato. | 
| creativeUniqueId | stringa | true | L'identificatore univoco per l'annuncio, utilizzato come chiave per la transcodifica. Questo è il campo ID per la creatività nella risposta VAST, se disponibile. In caso contrario, è l'URL in formato intermedio dell'annuncio.  | 
| skippedReason | stringa | true | Il codice che indica il motivo per cui l'annuncio non è stato inserito. Esempio: TRANSCODE\$1IN\$1PROGRESS. Per un elenco dei motivi degli annunci ignorati, consulta. [Risoluzione dei problemi relativi ai salti degli annunci](troubleshooting-ad-skipping-overview.md) | 
| transcodedAdDuration | numero | false | La durata dell'annuncio, calcolata dall'asset transcodificato. | 
| vastDuration | numero | true | La durata dell'annuncio, come analizzato dalla risposta VAST. | 

### slateAd
<a name="ads-logs-slateAd"></a>

Questa sezione descrive le proprietà di slateAd dei log ADS.


**Proprietà di slateAd dei log ADS**  

| Proprietà | Tipo | Campo obbligatorio | Description | 
| --- | --- | --- | --- | 
| adContent | Oggetto di tipo [adContent](#ads-logs-adContent) | true | Informazioni sul contenuto dell'annuncio inserito. | 
| creativeUniqueId | stringa | true | L'identificatore univoco per l'annuncio, utilizzato come chiave per la transcodifica. Questo è il campo ID per la creatività nella risposta VAST, se disponibile. In caso contrario, è l'URL in formato intermedio dell'annuncio.  | 
| transcodedAdDuration | numero | true | La durata dell'annuncio, calcolata dall'asset transcodificato. | 
| uri | stringa | true | L'URL della versione intermedia dell'annuncio, ovvero l'input per il transcodificatore. | 

### trackingEvents
<a name="ads-logs-trackingEvents"></a>

Questa sezione descrive le proprietà di trackingEvents dei log ADS.


**Proprietà di trackingEvents dei log ADS**  

| Proprietà | Tipo | Campo obbligatorio | Description | 
| --- | --- | --- | --- | 
| <any string> | array di tipo string | false | L'elenco dei beacon URLs per l'evento di tracciamento specificato (impression, complete e così via) | 

### vastAd
<a name="ads-logs-vastAd"></a>

Questa sezione descrive le proprietà di vastAd dei log ADS.


**Proprietà di vastAd dei log ADS**  

| Proprietà | Tipo | Campo obbligatorio | Descrizione | 
| --- | --- | --- | --- | 
| adSystem | stringa | true | Il valore del tag AdSystem nella risposta VAST. | 
| adTitle | stringa | true | I file multimediali disponibili per l'annuncio nella risposta VAST. | 
| creativeAdId | stringa | true | Il valore dell'attributo adId del tag Creative nella risposta VAST. | 
| creativeId | stringa | true | Il valore dell'attributo id del tag Creative nella risposta VAST. | 
| duration | numero | true | La durata approssimativa dell'annuncio, in base al tag duration nell'elemento linear della risposta VAST. | 
| trackingEvents | Oggetto di tipo [trackingEvents](#ads-logs-trackingEvents) | true | Il beacon di tracciamento URLs per i vari eventi di tracciamento dell'annuncio. Le chiavi sono i nomi degli eventi e i valori sono un elenco di beacon. URLs | 
| vastAdId | stringa | true | Il valore dell'attributo id del tag Ad nella risposta VAST | 
| vastAdTagUri | stringa | false | L'URI di reindirizzamento specifico di VMAP per un annuncio. | 
| vastMediaFiles | array di tipo [vastMediaFile](#ads-logs-vastMediaFile) | true | L'elenco dei file multimediali disponibili per l'annuncio nella risposta VAST. | 

### vastMediaFile
<a name="ads-logs-vastMediaFile"></a>

Questa sezione descrive le proprietà dei registri vastMediaFile ADS.


**Proprietà dei registri vastMediaFile ADS**  

| Proprietà | Tipo | Campo obbligatorio | Descrizione | 
| --- | --- | --- | --- | 
| apiFramework | stringa | true | Il framework API necessario per gestire il file multimediale. Esempio: VPAID. | 
| bitrate | numero | true | Il bitrate del file multimediale. | 
| delivery | stringa | true | Il protocollo utilizzato per il file multimediale, impostato su progressivo o streaming. | 
| height | numero | true | L'altezza in pixel del file multimediale. | 
| id | stringa | true | Il valore dell'attributo id del tag MediaFile. | 
| type | stringa | true | Il tipo MIME del file multimediale, preso dall'attributo di tipo del tag MediaFile. | 
| uri | stringa | true | L'URL della versione intermedia dell'annuncio, ovvero l'input per il transcodificatore. | 
| width | numero | true | La larghezza in pixel del file multimediale. | 

### vastResponse
<a name="ads-logs-vastResponse"></a>

Questa sezione descrive le proprietà di vastResponse dei log ADS.


**Proprietà di vastResponse dei log ADS**  

| Proprietà | Tipo | Campo obbligatorio | Description | 
| --- | --- | --- | --- | 
| errors | array di tipo string | true | L'errore è URLs stato analizzato dai Error tag nella risposta VAST. | 
| vastAds | array di tipo [vastAd](#ads-logs-vastAd) | true | Gli annunci analizzati dalla risposta VAST. | 
| version | stringa | true | La versione della specifica VAST, analizzata dall'attributo version del tag VAST nella risposta. | 

### vodCreativeOffsets
<a name="ads-logs-vodCreativeOffsets"></a>

Questa sezione descrive le proprietà dei registri vodCreativeOffsets ADS.


**Proprietà dei registri vodCreativeOffsets ADS**  

| Proprietà | Tipo | Campo obbligatorio | Description | 
| --- | --- | --- | --- | 
| <any string> | array di tipo [vodCreativeOffset](#ads-logs-vodCreativeOffset) | false | Una mappatura da un offset temporale nel manifest a un elenco di annunci da inserire in questo momento. | 

### vodCreativeOffset
<a name="ads-logs-vodCreativeOffset"></a>

Questa sezione descrive le proprietà dei registri vodCreativeOffset ADS.


**Proprietà dei registri vodCreativeOffset ADS**  

| Proprietà | Tipo | Campo obbligatorio | Description | 
| --- | --- | --- | --- | 
| adContent | Oggetto di tipo [adContent](#ads-logs-adContent) | true | Informazioni sul contenuto dell'annuncio inserito. | 
| creativeUniqueId | stringa | true | L'identificatore univoco per l'annuncio, utilizzato come chiave per la transcodifica. Questo è il campo ID per la creatività nella risposta VAST, se disponibile. In caso contrario, è l'URL in formato intermedio dell'annuncio.  | 
| trackingEvents | Oggetto di tipo [trackingEvents](#ads-logs-trackingEvents) | true | Il beacon di tracciamento URLs per i vari eventi di tracciamento dell'annuncio. Le chiavi sono i nomi degli eventi e i valori sono un elenco di beacon. URLs | 
| transcodedAdDuration | numero | true | La durata dell'annuncio, calcolata dall'asset transcodificato. | 
| uri | stringa | true | L'URL della versione intermedia dell'annuncio, ovvero l'input per il transcodificatore. | 
| vastDuration | numero | true | La durata dell'annuncio, come analizzato dalla risposta VAST. | 

## Schema JSON del registro ADS
<a name="ads-log-json-schema"></a>

Di seguito è riportato lo schema JSON per il registro 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."
    },
    "prefetchScheduleName": {
      "$id": "#/properties/prefetchScheduleName",
      "type": "string",
      "description": "The name of the prefetch schedule associated with this ad event.",
      "examples": [
        "PrefetchScheduleName"
      ],
      "pattern": "^(.*)$"
    },
    "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"
          ]
        }
      }
    }
  }
}
```

# AWS Elemental MediaTailor i registri manifest, la descrizione e i tipi di eventi.
<a name="log-types"></a>

Le sezioni seguenti descrivono i log che vengono MediaTailor emessi per descrivere gli eventi con il server di origine durante la richiesta e la ricezione di un manifesto. Questi sono registri. `ManifestService`

**Topics**
+ [Eventi ManifestService](#log-types-origininteraction)
+ [Proprietà dei registri del manifesto](#manifest-logs-main)

## Eventi ManifestService
<a name="log-types-origininteraction"></a>

I seguenti eventi vengono emessi durante MediaTailor le interazioni con l'origine. 


| Log | Description | 
| --- | --- | 
| CONFIG\$1SECURITY\$1ERROR | La MediaTailor configurazione presenta un problema di sicurezza.  | 
| CONFIG\$1SYNTAX\$1ERROR | L'origine e il percorso della risorsa generano un URL non valido. | 
| CONNECTION\$1ERROR | La MediaTailor connessione all'origine è stata rifiutata o non riuscita. | 
| GENERATED\$1MANIFEST | MediaTailor ha generato un manifesto. È necessario che la modalità di debug sia abilitata per ricevere questi registri. Per informazioni sulla modalità di registro di debug, incluso come abilitarla, vedere. [Generazione di registri di debug](debug-log-mode.md) | 
| HOST\$1DISALLOWED | MediaTailor non consente richieste HTTP a questo host. | 
| INCOMPATIBLE\$1HLS\$1VERSION | Il manifesto utilizza una versione HLS incompatibile. MediaTailor richiede la versione 3 o successiva. | 
| INVALID\$1SINGLE\$1PERIOD\$1DASH\$1MANIFEST | Il manifesto DASH a periodo singolo non è valido. MediaTailor sta passando attraverso un manifesto DASH a periodo singolo. | 
| IO\$1ERROR | MediaTailor ha rilevato un errore di I/O durante la comunicazione con l'origine. | 
| LAST\$1PERIOD\$1MISSING\$1AUDIO | Nell'ultimo periodo del manifesto DASH manca tutto l'audio a AdaptationSets causa del disallineamento dell'audio o del video di origine. Per evitare problemi di riproduzione, rimanda la pubblicazione dell'ultimo periodo almeno alla richiesta successiva. | 
| LAST\$1PERIOD\$1MISSING\$1AUDIO\$1WARNING | Nell'ultimo periodo del manifesto DASH manca tutto l'audio a AdaptationSets causa del disallineamento dell'audio o del video di origine. Scelta di pubblicare (non ritardare) l'ultimo periodo. L'audio mancante potrebbe causare problemi di riproduzione. | 
| MANIFEST\$1ERROR | La richiesta del MediaTailor manifesto non è riuscita. | 
| NO\$1MASTER\$1OR\$1MEDIA\$1PLAYLIST | La risposta di origine non contiene una playlist principale o una playlist multimediale. | 
| NO\$1MASTER\$1PLAYLIST | La risposta di origine non contiene la playlist principale prevista. | 
| NO\$1MEDIA\$1PLAYLIST | La risposta di origine non contiene la playlist multimediale prevista. | 
| ORIGIN\$1MANIFEST | MediaTailor ha recuperato un manifesto di origine. È necessario che la modalità di debug sia abilitata per ricevere questi registri. Per informazioni sulla modalità di registro di debug, incluso come abilitarla, vedere. [Generazione di registri di debug](debug-log-mode.md) | 
| PARSING\$1ERROR | L'origine non è in grado di analizzare la richiesta del manifesto. | 
| SCTE35\$1PARSING\$1ERROR | MediaTailor non è in grado di analizzare l'Signal Binaryelemento nel manifesto. | 
| SESSION\$1INITIALIZED | È stata inizializzata una sessione. È necessario che la modalità di debug sia abilitata per ricevere questi registri. Per informazioni sulla modalità di registro di debug, incluso come abilitarla, vedere. [Generazione di registri di debug](debug-log-mode.md) | 
| TIMEOUT\$1ERROR | La richiesta del MediaTailor manifesto è scaduta. | 
| TRACKING\$1RESPONSE | MediaTailor ha fornito una risposta di tracciamento. È necessario che la modalità di debug sia abilitata per ricevere questi registri. Per informazioni sulla modalità di registro di debug, incluso come abilitarla, vedere. [Generazione di registri di debug](debug-log-mode.md) | 
| UNKNOWN\$1ERROR | MediaTailor ha riscontrato un errore sconosciuto. | 
| UNKNOWN\$1HOST | L'host è sconosciuto. | 
| UNSUPPORTED\$1SINGLE\$1PERIOD\$1DASH\$1MANIFEST | Il manifesto DASH a periodo singolo non è supportato. MediaTailor sta passando attraverso un manifesto DASH a periodo singolo. | 

## Proprietà dei registri del manifesto
<a name="manifest-logs-main"></a>

Questa sezione descrive le proprietà dei registri del manifesto.


| Proprietà | Tipo | Richiesto | 
| --- | --- | --- | 
| awsAccountId | stringa | true | 
| eventTimestamp | stringa | true | 
| originId | stringa | true | 
| customerId | stringa | false | 
| eventType | stringa | false | 
| sessionId | stringa | false | 
| originRequestUrl | stringa | false | 
| mediaTailorPath | stringa | false | 
| requestId | stringa | false | 
| responseBody | stringa | false | 
| sessionType | string (valori ammessi: [DASH, HLS]) | false | 
| requestNextToken | stringa | false | 
| eventDescription | stringa | false | 
| assetPath | stringa | false | 
| originFullUrl | stringa | false | 
| originPrefixUrl | stringa | false | 
| additionalInfo | stringa | false | 
| cause | stringa | false | 
| response | stringa | false | 
| httpCode | stringa | false | 
| errorMessage | stringa | false | 
| adAdsResponse | stringa | false | 
| adAdsRawResponse | stringa | false | 
| adAdsRequest | stringa | false | 
| adNumNewAvails | stringa | false | 
| generatedMediaPlaylist | stringa | false | 
| requestStartTime | stringa | false | 
| requestEndTime | stringa | false | 
| requestStartTimeEpochMillis | stringa | false | 
| requestEndTimeEpochMillis | stringa | false | 

# AWS Elemental MediaTailor transcode, log, descrizione e tipi di eventi.
<a name="tm-log-format"></a>

Le sezioni seguenti descrivono i log che MediaTailor vengono generati per descrivere gli eventi con il servizio di transcode durante la preparazione delle creatività per l'ad stitching. Si tratta di log. `TranscodeService`

**Topics**
+ [Eventi TranscodeService](#log-types-tminteraction)
+ [Transcodifica le proprietà dei registri](#transcode-logs-main)

## Eventi TranscodeService
<a name="log-types-tminteraction"></a>

I seguenti eventi vengono emessi durante le MediaTailor interazioni durante la transcodifica degli annunci. 


| Log | Description | 
| --- | --- | 
| IMPORT\$1ERROR | MediaTailor ha riscontrato un errore interno durante un processo di importazione (per annunci precondizionati). Utilizzo di un set di annunci vuoto. | 
| INITIALIZED | MediaTailor ha inizializzato un processo di transcodifica o un processo di importazione (per annunci precondizionati). | 
| INTERNAL\$1ERROR | MediaTailor ha riscontrato un errore interno. Utilizzo di un set vuoto di annunci. | 
| MISSING\$1VARIANTS | MediaTailor impossibile transcodificare l'annuncio a causa della mancanza di varianti. Utilizzando un set di annunci vuoto. | 
| PROFILE\$1NOT\$1FOUND | MediaTailor non è riuscito a transcodificare l'annuncio a causa di un profilo mancante da transcodificare. Utilizzando un set di annunci vuoto. | 
| TRANSCODE\$1COMPLETED | La transcodifica video è completa. L'annuncio può essere utilizzato per l'inserimento di annunci. | 
| TRANSCODE\$1ERROR | MediaTailor ha riscontrato un errore interno durante un processo di transcodifica. Utilizzo di un set di annunci vuoto. | 
| TRANSCODE\$1IN\$1PROGRESS | La transcodifica video è in corso. Il video transcodificato non è pronto. Utilizzo di un set di annunci vuoto. | 

## Transcodifica le proprietà dei registri
<a name="transcode-logs-main"></a>

Questa sezione descrive le proprietà dei registri di transcodifica.


| Proprietà | Tipo | Campo obbligatorio | Descrizione | 
| --- | --- | --- | --- | 
| awsAccountId | stringa | true | L'ID AWS dell'account per la MediaTailor configurazione utilizzata per la sessione. | 
| eventTimestamp | stringa | true | La data e l'ora dell'evento | 
| originId | stringa | true | Il nome della configurazione risultante dalla MediaTailor configurazione. Questo è diverso dall'origine dei contenuti video, che fa anche parte della configurazione. | 
| eventType | stringa | false | Il codice per l'evento che ha attivato questo messaggio di log. Esempio: TRANSCODE\$1ERROR. | 
| eventDescription | stringa | false | Una breve descrizione dell'evento che ha attivato questo messaggio di registro, fornita dal MediaTailor servizio. Per impostazione predefinita, è vuota.  | 
| sessionId | stringa | false | L'identificatore numerico univoco MediaTailor assegnato alla sessione del giocatore. Tutte le richieste effettuate da un giocatore per una sessione hanno lo stesso ID sessione. Esempio: e039fd39-09f0-46b2-aca9-9871cc116cde. | 
| creativeUniqueId | stringa | false | L'identificatore univoco della creatività pubblicitaria che viene transcodificata. | 
| profileName | stringa | false |  | 
| adUri | stringa | false | L'URI per la creatività pubblicitaria. | 
| transcodeRequestId | stringa | false | L'identificatore univoco per questa richiesta di transcodifica. | 
| cacheStatus | stringa | false | Indica se l'annuncio transcodificato è MediaTailor stato memorizzato nella cache.  | 

# Utilizzo dei log venduti per inviare i log AWS Elemental MediaTailor
<a name="vended-logs"></a>

È possibile utilizzare i registri venduti per una maggiore flessibilità e controllo su dove distribuire i registri emessi dalla configurazione di riproduzione. MediaTailor 

Con i registri venduti, MediaTailor invia tutte le attività di log associate a una configurazione ad Amazon CloudWatch Logs. CloudWatch Logs invia quindi la percentuale di log specificata alla destinazione prescelta. Le destinazioni supportate sono un gruppo di log Amazon CloudWatch Logs, un bucket Amazon S3 o un flusso Amazon Data Firehose. 

Poiché i log venduti sono disponibili a prezzi scontati, è possibile ottenere risparmi sui costi rispetto all'invio dei log direttamente a Logs. CloudWatch [Per informazioni sui prezzi, *consulta Vending Logs* nella scheda **Logs** di Amazon Pricing. CloudWatch ](https://aws.amazon.com/cloudwatch/pricing/)

Per utilizzare i registri venduti, devi fare quanto segue:

1. [Aggiunta di autorizzazioni](#vended-logs-perms).

1. [Creare destinazioni di consegna dei log](#vended-logs-destinations).

1. [Configura la consegna dei log in CloudWatch Logs](#vended-logs-delivery).

1. [Abilita i log venduti MediaTailor](#vended-logs-config).

Per ulteriori informazioni sui log venduti, consulta [Abilitare la registrazione dai AWS servizi nella guida per](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html) l'utente di Logs. CloudWatch MediaTailor supporta la versione 2 dei log forniti. 

## Passaggio 1: aggiungere le autorizzazioni per la consegna dei log MediaTailor
<a name="vended-logs-perms"></a>

La persona che sta configurando i registri forniti deve disporre delle autorizzazioni per creare la destinazione di consegna, configurare la consegna dei log e abilitare i registri forniti. MediaTailor Utilizza le seguenti politiche per assicurarti di disporre delle autorizzazioni appropriate per configurare i registri venduti. 

**Politiche per i CloudWatch registri e le destinazioni di consegna**  
Le seguenti sezioni della *Amazon CloudWatch Logs User Guide* forniscono le politiche che ti consentono di utilizzare i log in CloudWatch Logs e le tue destinazioni di consegna. Se invii log a più sedi, puoi combinare le dichiarazioni politiche in un'unica politica invece di creare più politiche.   
+ [Registri inviati a Logs CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-CloudWatchLogs)
+ [Registri inviati ad Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-S3)
+ [Log inviati a Firehose](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-Firehose)

**Politica per la configurazione dalla console**  
Se stai configurando la consegna dei log venduti tramite la console anziché tramite l'API oppure AWS CLI, devi disporre delle seguenti autorizzazioni aggiuntive nella tua politica.

**Politica per i log in forniti MediaTailor**  
Per creare, visualizzare o modificare la consegna dei log venduti MediaTailor, è necessario disporre delle seguenti autorizzazioni nella politica.

Per informazioni sull'aggiunta di autorizzazioni e sull'utilizzo delle politiche, consulta. [Identity and Access Management per AWS Elemental MediaTailor](security-iam.md)

## Fase 2: Creare destinazioni di consegna per i registri MediaTailor
<a name="vended-logs-destinations"></a>

Crea le risorse a cui verranno inviati i log. Registrare l'ARN della risorsa da utilizzare nella configurazione della consegna del registro in un passaggio successivo.

**CloudWatch Registra la destinazione di consegna del gruppo di log**  
Utilizza una delle seguenti opzioni per facilitare la creazione di un gruppo di log.  
+ Per la console, consulta [Creare un gruppo di log in CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#Create-Log-Group) nella *Amazon CloudWatch Logs User* Guide.
+ Per l'API, [CreateLogGroup](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html)consulta *Amazon CloudWatch Logs API Reference.* 
+ Per l' SDKs interfaccia a riga di comando e CLI, consulta [Utilizzo `CreateLogGroup` con un AWS SDK o AWS CLI](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/example_cloudwatch-logs_CreateLogGroup_section.html) nella *Amazon CloudWatch Logs* User Guide. 

**Destinazione di consegna dei bucket Amazon S3**  
Utilizza una delle seguenti opzioni per facilitare la creazione di un bucket.  
+ Per la console e la CLI SDKs, consulta [Create a bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) nella *Amazon Simple Storage Service* User Guide.
+ Per l'API, consulta il *riferimento [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)all'API di Amazon Simple Storage Service*. 

**Destinazione di consegna dello stream Firehose**  
Per informazioni sulla creazione di uno stream, consulta [Create a Firehose stream da console](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) nella *Amazon Data Firehose* Developer Guide.

## Passaggio 3: abilitare i log forniti per la configurazione di riproduzione MediaTailor
<a name="vended-logs-config"></a>

Crea o aggiorna la configurazione di riproduzione che invierà i log alla destinazione di consegna creata nel passaggio precedente. Registrate il nome della configurazione da utilizzare nella configurazione della consegna dei log in un passaggio successivo. 
+ **Per abilitare i log forniti tramite la console, utilizzare [Creazione di una configurazione](configurations-create.md) o [Modifica delle impostazioni di configurazione](configurations-edit.md) modificare una configurazione per accedere alle impostazioni di registrazione.** **Per le **strategie di registrazione**, scegli Registri venduti.**
+ Per abilitare i log venduti tramite l'API, è necessario disporre di una configurazione esistente. Utilizzare `ConfigureLogsForPlaybackConfiguration` per aggiungere la strategia di registrazione. `Vended logs`

Se utilizzi la strategia di MediaTailor registrazione precedente che prevede l'invio dei log direttamente a CloudWatch Logs e desideri migrare ai log forniti, consulta. [Migrazione della strategia di registrazione](vended-logs-migrate.md)

**Importante**  
 Se modifichi la strategia di registro da Legacy CloudWatch a vended logs, MediaTailor apporterà questa modifica non appena salverai gli aggiornamenti. Smetterai di ricevere i log finché non avrai configurato completamente la registrazione venduta.

## Fase 4: Configurare la consegna dei log in Logs CloudWatch
<a name="vended-logs-delivery"></a>

In CloudWatch Logs, è necessario creare tre elementi per rappresentare le parti della consegna dei log. Questi elementi sono descritti in dettaglio [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html)nell'*Amazon CloudWatch Logs API Reference*. I passaggi di alto livello per configurare la consegna con l'API CloudWatch Logs sono i seguenti. 

**Per configurare la consegna dei log in CloudWatch Logs (API)**

1. Si usa [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html)per aggiungere l'origine dei log.

   A `DeliverySource` rappresenta la configurazione di riproduzione che genera i registri. È necessario il nome della configurazione di riproduzione per creare il. `DeliverySource` 

1. Utilizzare [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html)per aggiungere la destinazione in cui verranno scritti i log.

   A `DeliveryDestination` rappresenta la destinazione di consegna. È necessario l'ARN del gruppo di log, del bucket o dello stream per creare il. `DeliveryDestination`

1. Utilizzalo [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestinationPolicy.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestinationPolicy.html)se stai distribuendo log tra account. 

   Se la destinazione di consegna si trova in un account diverso dalla configurazione di riproduzione, è necessario un. `DeliveryDestinationPolicy` Questa politica consente a CloudWatch Logs di inviare i log a. `DeliveryDestination`

1. Utilizzare [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html)per collegare il `DeliverySource` a. `DeliveryDestination`

   A `Delivery` rappresenta la connessione tra `DeliverySource` e`DeliveryDestination`.

# Migrazione della strategia di AWS Elemental MediaTailor registrazione
<a name="vended-logs-migrate"></a>

 Se modifichi la strategia di registrazione da Legacy CloudWatch a vended logs, MediaTailor apporterà questa modifica non appena salverai gli aggiornamenti. Per evitare interruzioni nel flusso di lavoro di registrazione, utilizzate i seguenti passaggi per migrare la strategia di registrazione. 

1. Segui i passaggi descritti in [Utilizzo dei registri venduti](vended-logs.md). **Per[Abilita i log venduti MediaTailor](vended-logs.md#vended-logs-config), selezionate *entrambe le* strategie di registrazione (**Vented** logs e Legacy). CloudWatch** 

   MediaTailor invierà i log sia tramite i registri venduti che direttamente a Logs. CloudWatch 

1. Apportate le modifiche necessarie al flusso di lavoro che dipendono dalla strategia di registrazione e dalla destinazione di consegna.

1. Rivisita [Abilita i log venduti MediaTailor](vended-logs.md#vended-logs-config) e rimuovi **Legacy CloudWatch** dalle strategie di **registrazione**.

# Scrivere AWS Elemental MediaTailor i log direttamente su Amazon CloudWatch Logs
<a name="monitoring-cw-logs"></a>

MediaTailor produce log che contengono informazioni dettagliate sull'attività della sessione e sulle interazioni con i server di decisione pubblicitaria e li scrive su Amazon CloudWatch. I log forniscono una descrizione sequenziale dell'attività che si verifica durante la sessione.

MediaTailor può anche utilizzare i registri venduti per garantire flessibilità nella consegna dei registri e ottenere prezzi scontati in base ai volumi. Per informazioni sui registri venduti, consulta. [Utilizzo dei registri venduti](vended-logs.md)

**Topics**
+ [Autorizzazioni per Amazon Logs CloudWatch](monitoring-permissions.md)
+ [Registro «As Run» per AWS Elemental MediaTailor Channel Assembly](as-run-log.md)
+ [AWS Elemental MediaTailor Analisi dei log ADS in Amazon CloudWatch Logs Insights](monitor-cloudwatch-ads-logs.md)

# Autorizzazioni per Amazon Logs CloudWatch
<a name="monitoring-permissions"></a>

Usa AWS Identity and Access Management (IAM) per creare un ruolo che dia AWS Elemental MediaTailor accesso ad Amazon CloudWatch. Devi eseguire questi passaggi per pubblicare CloudWatch i registri per il tuo account. CloudWatch pubblica automaticamente le metriche per il tuo account.

**Per consentire l'accesso MediaTailor a CloudWatch**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel pannello di navigazione della console IAM, scegliere **Ruoli** e quindi **Crea ruolo**.

1. Scegli il tipo di ruolo **Altro AWS account**.

1. Per **Account ID**, inserisci l'ID AWS del tuo account.

1. Selezionare **Require external ID (Richiedi ID esterno)** e immetter **Midas**. Questa opzione aggiunge automaticamente una condizione alla policy di attendibilità che consente al servizio di assumere il ruolo solo se la richiesta include il corretto `sts:ExternalId`.

1. Scegli **Successivo: autorizzazioni**.

1. Aggiungere una policy di autorizzazione che specifichi le azioni che questo ruolo può eseguire. Selezionare una delle opzioni seguenti, quindi scegliere **Next: Review (Successivo: Esamina)**:
   + **CloudWatchLogsFullAccess**per fornire l'accesso completo ad Amazon CloudWatch Logs
   + **CloudWatchFullAccess**per fornire l'accesso completo ad Amazon CloudWatch

1. In **Role name (Nome ruolo)** immettere **MediaTailorLogger** e quindi selezionare **Create role (Crea ruolo)**.

1. Nella pagina **Roles (Ruoli)** scegliere il ruolo appena creato. 

1. Per aggiornare l'entità principale, modificare la relazione di trust:

   1. Nella pagina **Summary (Riepilogo)** del ruolo, selezionare la scheda **Trust relationship (Relazione di trust)**.

   1. Seleziona **Modifica relazione di attendibilità**.

   1. Nel documento relativo alla policy, modifica l'indirizzo principale del MediaTailor servizio. L'URL dovrebbe essere simile a questo:

      ```
      "Principal": {
         "Service": "mediatailor.amazonaws.com"
      },
      ```

      La policy intera dovrebbe risultare come segue:

   1. Scegli **Update Trust Policy (Aggiorna policy di trust)**.

# Registro «As Run» per AWS Elemental MediaTailor Channel Assembly
<a name="as-run-log"></a>

Il registro *As Run*, nel gruppo dei CloudWatch `MediaTailor/Channel/AsRunLog` log, mostra informazioni sui programmi e sulle interruzioni pubblicitarie durante la riproduzione.

Quando si crea un canale, il registro As Run è disabilitato per impostazione predefinita. Utilizzando la Console o il AWS Command Line Interface (AWS CLI), puoi abilitare e disabilitare lo stato del registro As Run per ogni canale del tuo account.

Quando abiliti il registro As Run, crea MediaTailor automaticamente un ruolo collegato al servizio che consente di MediaTailor scrivere e gestire il log As Run nel tuo account CloudWatch Logs. Per ulteriori informazioni sui ruoli collegati al servizio, consulta [Utilizzo di ruoli collegati ai servizi per MediaTailor](using-service-linked-roles.md).

**Nota**  
Attualmente As Run Log supporta solo il programma predefinito. Per ora non supporta AlternateMedia creato dalle regole del programma. Ciò significa che attualmente non genera il registro As Run per AlternateMedia.

**Topics**
+ [Abilitazione del registro As Run](enabling-as-run-log.md)
+ [Disattivazione del registro As Run](disabling-as-run-log.md)

# Abilitazione del registro As Run
<a name="enabling-as-run-log"></a>

Per abilitare il registro As Run, specifica il nome del canale e abilita il tipo di registro As *Run* per quel canale.

------
#### [ Console ]

**Per abilitare il registro As Run durante la creazione di un canale**

1. Accedi a Console di gestione AWS e apri la MediaTailor console all'indirizzo [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Nel pannello di navigazione, scegli **Channel assembly > **Channels****.

1. Nella barra di navigazione, scegli **Crea canale**.

1. Nei riquadri **Imposta i dettagli del canale**, **Configura gli output** e **Access control**, configura il canale come desideri.

1. **Nel pannello di **controllo dell'accesso**, scegli Avanti.**

1. Nel riquadro **Registrazione**, in **Tipi di registro**, seleziona **Abilita come esegui** per abilitare il registro As Run.

**Per abilitare il registro As Run durante l'aggiornamento di un canale**
**Nota**  
Se il canale è attualmente in esecuzione, è necessario interromperlo prima di poterlo aggiornare. Dopo aver interrotto il canale, puoi scegliere **Azioni** > **Modifica** per iniziare ad aggiornare il canale.

1. Accedi Console di gestione AWS e apri la MediaTailor console all'indirizzo [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Nel pannello di navigazione, scegli **Channel assembly > **Channels****.

1. Scegliete il canale che desiderate aggiornare per abilitare il registro As Run.

1. Scegli **Operazioni** > **Modifica**.

1. Nei riquadri **Imposta i dettagli del canale**, **Configura le uscite** e **Controllo dell'accesso**, aggiorna la configurazione del canale come desideri.

1. **Nel pannello di **controllo dell'accesso**, scegli Avanti.**

1. Nel riquadro **Registrazione**, in **Tipi di registro**, seleziona **Abilita come esegui** per abilitare il registro As Run.

**Per abilitare il registro As Run dalla scheda **Logging****
**Nota**  
Se il canale è attualmente in esecuzione, è necessario utilizzare la scheda **Registrazione** anziché scegliere **Azioni** > **Modifica** per abilitare il registro As Run.

1. Accedi Console di gestione AWS e apri la MediaTailor console all'indirizzo [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Nel pannello di navigazione, scegli **Channel assembly > **Channels****.

1. Scegliete il canale per il quale desiderate abilitare il registro As Run.

1. Nella barra di navigazione sotto il nome del canale, scegli **Registrazione.**

1. In **Registrazione** > **Tipi di registro**, seleziona As **run** per abilitare il registro As Run.

------
#### [ AWS Command Line Interface (AWS CLI) ]

**Per abilitare il registro As Run**

Esegui il [configure-logs-for-channel](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/configure-logs-for-channel.html)comando e specifica i valori appropriati per i parametri richiesti.

Questo esempio è formattato per Linux, macOS o Unix e utilizza il carattere di continuazione di barra rovesciata (\$1) per migliorare la leggibilità.

```
$ aws mediatailor configure-logs-for-channel \
--channel-name MyChannel \
--log-types AS_RUN
```

Questo esempio è formattato per Microsoft Windows e utilizza il carattere di continuazione di riga (^) per migliorare la leggibilità.

```
C:\> aws mediatailor configure-logs-for-channel ^
--channel-name MyChannel ^
--log-types AS_RUN
```

Dove:
+ `MyChannel`è il nome del canale di cui sei proprietario e per cui desideri abilitare il registro As Run.

Se eseguirai il comando correttamente, riceverai un output simile al seguente.

```
{
    "ChannelName": "MyChannel",
    "LogTypes": [
       "AS_RUN"
    ]
}
```

------

# Disattivazione del registro As Run
<a name="disabling-as-run-log"></a>

Per disabilitare il registro As Run per un canale che lo ha abilitato, specifica il nome del canale e disabilita il tipo di registro As *Run* per quel canale.

------
#### [ Console ]

**Per disabilitare il registro As Run durante l'aggiornamento di un canale**
**Nota**  
Se il canale è attualmente in esecuzione, è necessario interromperlo prima di poterlo aggiornare. Dopo aver interrotto il canale, puoi scegliere **Azioni** > **Modifica** per iniziare ad aggiornare il canale.

1. Accedi Console di gestione AWS e apri la MediaTailor console all'indirizzo [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Nel pannello di navigazione, scegli **Channel assembly > **Channels****.

1. Scegliete il canale che desiderate aggiornare per abilitare il registro As Run.

1. Scegli **Operazioni** > **Modifica**.

1. Nei riquadri **Imposta i dettagli del canale**, **Configura le uscite** e **Controllo dell'accesso**, aggiorna la configurazione del canale come desideri.

1. **Nel pannello di **controllo dell'accesso**, scegli Avanti.**

1. Nel riquadro **Registrazione**, in **Tipi di registro**, deseleziona **Abilita come esegui** per disabilitare il registro As Run.

**Per disabilitare il registro As Run dalla scheda **Logging****
**Nota**  
Se il canale è attualmente in esecuzione, è necessario utilizzare la scheda **Registrazione** anziché scegliere **Azioni** > **Modifica** per disabilitare il registro As Run.

1. Accedi a Console di gestione AWS e apri la MediaTailor console all'indirizzo [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Nel pannello di navigazione, scegli **Channel assembly > **Channels****.

1. Scegliete il canale per il quale desiderate disabilitare il registro As Run.

1. Nella barra di navigazione sotto il nome del canale, scegli **Registrazione.**

1. In **Registrazione** > **Tipi di registro**, deseleziona As **run** per disabilitare il registro As Run.

------
#### [ AWS Command Line Interface (AWS CLI) ]

**Per disabilitare il registro As Run**

Esegui il [configure-logs-for-channel](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/configure-logs-for-channel.html)comando e specifica i valori appropriati per i parametri richiesti.

Questo esempio è formattato per Linux, macOS o Unix e utilizza il carattere di continuazione di barra rovesciata (\$1) per migliorare la leggibilità.

```
$ aws mediatailor configure-logs-for-channel \
--channel-name MyChannel \
--log-types
```

Questo esempio è formattato per Microsoft Windows e utilizza il carattere di continuazione di riga (^) per migliorare la leggibilità.

```
C:\> aws mediatailor configure-logs-for-channel ^
--channel-name MyChannel ^
--log-types
```

Dove:
+ `MyChannel`è il nome del canale di cui sei proprietario e per cui desideri disabilitare il registro As Run.

Se eseguirai il comando correttamente, riceverai un output simile al seguente.

```
{
    "ChannelName": "MyChannel",
    "LogTypes": []
}
```

------

# AWS Elemental MediaTailor Analisi dei log ADS in Amazon CloudWatch Logs Insights
<a name="monitor-cloudwatch-ads-logs"></a>

Puoi visualizzare e interrogare i log di AWS Elemental MediaTailor Ad Decision Server (ADS) utilizzando Amazon CloudWatch Logs Insights. MediaTailor invia i log degli eventi a CloudWatch per le normali condizioni di elaborazione e di errore. I log aderiscono a uno schema JSON. Tramite CloudWatch Logs Insights, è possibile selezionare i log per intervallo di tempo e quindi eseguire query su di essi. 

Per informazioni generali, consulta [Analizzare i dati di log con CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) Logs Insights. 

**Nota**  
Per accedere ai log, hai bisogno delle autorizzazioni per accedere ad Amazon. CloudWatch Per istruzioni, consulta [Autorizzazioni per Amazon Logs CloudWatch](monitoring-permissions.md). 

**Per visualizzare e interrogare i log ADS utilizzando la console CloudWatch**

1. Apri la CloudWatch console all'indirizzo[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Nel riquadro di navigazione, in **Logs**, (Log), scegli **Insights**.

1. Nella barra di ricerca, inserisci**AdDec**, quindi dall'elenco a discesa seleziona. `MediaTailor/AdDecisionServerInteractions`

1. (Facoltativo) Regolare il periodo di tempo che si desidera studiare. 

1. (Facoltativo) Modificare la query nella finestra di dialogo. Per indicazioni generali, consulta la sintassi delle query di [CloudWatch Logs Insights.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html) Per esempi di query per ADS MediaTailor, consulta [Interrogazione dei log ADS](querying-the-ads-logs.md).

1. Scegli **Esegui query**. La query potrebbe richiedere alcuni secondi, durante i quali viene visualizzato **Cancel (Annulla)** al posto di **Run query (Esegui query**). 

1. (Facoltativo) Per esportare i risultati come file CSV, scegliere **Actions (Operazioni)**, quindi scegliere **Download query results (CSV) (Scarica risultati query (CSV))**. 

**Nota**  
La console limita il numero di record che restituisce nei risultati delle query e che esporta, quindi per dati di massa, usa l'API, il AWS Command Line Interface (AWS CLI) o un SDK.

**Topics**
+ [Interrogazione dei log ADS](querying-the-ads-logs.md)

# Interrogazione dei log ADS
<a name="querying-the-ads-logs"></a>

CloudWatch Logs Insights offre un ricco set di opzioni per interrogare i log. [Per informazioni dettagliate sulla sintassi delle interrogazioni, vedi CloudWatch Sintassi delle query di Logs Insights.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html) Questa sezione fornisce esempi di query comuni per iniziare a utilizzare le query dei log ADS. Tutte le query vengono eseguite sui log per l'impostazione dell'intervallo di tempo corrente.

La query seguente recupera tutte le informazioni dai log ADS. 

```
fields @timestamp, eventType, sessionId, requestId, @message
| sort sessionId, @timestamp asc
```

La query seguente recupera tutte le richieste a ADS. Questa query mostra un modo per recuperare il contenuto dell'intestazione della richiesta per i log. MediaTailor 

```
fields @timestamp, adsRequestUrl, requestHeaders.0.value as @userAgent, requestHeaders.1.value as @xForwardedFor, sessionId, requestId
| filter eventType = "MAKING_ADS_REQUEST"
| sort @timestamp asc
```

La seguente query recupera gli annunci MediaTailor inseriti per una determinata sessione.

```
fields @timestamp, sessionId, requestId, @message
| filter eventType = "FILLED_AVAIL"
| sort @timestamp asc
```

La seguente query recupera il tracciamento URLs effettuato MediaTailor per conto del giocatore.

```
fields @timestamp, beaconInfo.trackingEvent, beaconInfo.beaconUri, beaconInfo.headers.0.value as @userAgent, beaconInfo.headers.1.value as @xForwardedFor, sessionId, requestId
| filter eventType = "BEACON_FIRED"
| sort @timestamp asc
```

La query seguente recupera le informazioni per una sessione di riproduzione specifica filtrando i risultati in base a `sessionId`. 

```
fields @timestamp, eventType, sessionId, requestId, @message
| filter sessionId = "0aaf6507-c6f9-4884-bfe7-f2f841cb8195"
| sort @timestamp asc
```

La query seguente recupera le informazioni per una singola richiesta filtrando i risultati in base a `requestId`.

```
fields @timestamp, eventType, sessionId, requestId, @message
| filter requestId = "f5d3cf39-6258-4cf1-b3f6-a34ff8bf641d"
| sort @timestamp asc
```

La query seguente recupera un conteggio delle voci di log per ogni tipo di evento registrato.

```
fields eventType
| stats count() as @eventCount by eventType
```

La query seguente recupera l'ID disponibilità e l'elenco di annunci ignorati per tutte le disponibilità che hanno ignorato gli annunci.

```
fields avail.availId
| parse @message '"skippedAds":[*]' as @skippedAdsList
| filter ispresent(@skippedAdsList)
```

# Controllo del volume dei log AWS Elemental MediaTailor
<a name="log-configuration"></a>

MediaTailor i registri delle sessioni di inserimento degli annunci sono talvolta dettagliati. Per ridurre i costi di registrazione, puoi definire la percentuale di log di sessione MediaTailor da inviare ad Amazon CloudWatch Logs. Ad esempio, se la configurazione di riproduzione prevede 1000 sessioni di inserimento di annunci e imposti un valore percentuale abilitato pari a`60`, MediaTailor invia i log per 600 sessioni a Logs. CloudWatch MediaTailor decide a caso per quale sessione inviare i log. Se si desidera visualizzare i log di una sessione specifica, è possibile utilizzare la modalità di registro di [debug](debug-log-mode.md). 

Quando imposti una percentuale di registrazione, crea MediaTailor automaticamente un ruolo collegato al servizio che concede le autorizzazioni necessarie per scrivere i log MediaTailor sul tuo account. CloudWatch Per informazioni sull'utilizzo MediaTailor dei ruoli collegati ai servizi, consulta. [Utilizzo di ruoli collegati ai servizi per MediaTailor](using-service-linked-roles.md)

## Creazione di una configurazione di registro
<a name="creating-log-configuration"></a>

Per controllare la percentuale di registri di sessione che vengono MediaTailor scritti CloudWatch nei registri, create una configurazione di *registro per la configurazione* di riproduzione. *Quando create una configurazione di registro, specificate un *nome di configurazione di riproduzione* e un valore di percentuale abilitata.*

------
#### [ Console ]

**Per creare una configurazione di registro per una configurazione di riproduzione *esistente***

1. Accedi a Console di gestione AWS e apri la MediaTailor console all'indirizzo [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Nel riquadro di **configurazione della riproduzione**, seleziona la configurazione di riproduzione per la quale desideri impostare la configurazione del registro.

1. Scegli **Modifica**.

1. In **Configurazione del registro**, specificate un valore **percentuale abilitato**.

**Per creare una configurazione di registro per una *nuova* configurazione di riproduzione**
+ Segui la procedura riportata in [Configurazione dei log](configurations-create.md#configurations-log-configurations).

------
#### [ AWS Command Line Interface (AWS CLI) ]

**Per creare una configurazione di registro per una configurazione di riproduzione *esistente***

Per creare una configurazione di registro utilizzando AWS CLI, eseguite il comando [configure-logs-for-playback-configuration](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/configure-logs-for-playback-configuration.html) e specificate i valori appropriati per i parametri richiesti.

Questo esempio è formattato per Linux, macOS o Unix e utilizza il carattere di continuazione di barra rovesciata (\$1) per migliorare la leggibilità.

```
$ aws mediatailor configure-logs-for-playback-configuration \
--percent-enabled 10 \
--playback-configuration-name MyPlaybackConfiguration
```

Questo esempio è formattato per Microsoft Windows e utilizza il carattere di continuazione di riga (^) per migliorare la leggibilità.

```
C:\> aws mediatailor configure-logs-for-playback-configuration ^
--percent-enabled 10 ^
--playback-configuration-name MyPlaybackConfiguration
```

Dove:
+ `percent-enabled`è la percentuale di registri delle sessioni di configurazione di riproduzione inviati a Logs. MediaTailor CloudWatch 
+ `playback-configuration-name`è il nome della configurazione di riproduzione per cui impostare le impostazioni di configurazione del registro.

Se eseguirai il comando correttamente, riceverai un output simile al seguente.

```
{
    "PercentEnabled": 10,
    "PlaybackConfigurationName": "MyPlaybackConfiguration"
}
```

**Per creare una configurazione di registro per una *nuova* configurazione di riproduzione**
+ Utilizzate l'`configure-logs-for-playback-configuration`opzione per il [put-playback-configuration](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/put-playback-configuration.html)comando.

------

## Disattivazione di una configurazione di registro
<a name="deactivating-logging-configuration"></a>

*Dopo aver creato una configurazione di registro, non è possibile eliminarla, ma solo disattivarla.* Per disattivare la configurazione del registro, imposta il valore della **percentuale abilitata** su **0** con la console o l' MediaTailor API. Questa operazione disattiva la registrazione di tutte le sessioni per quella configurazione di riproduzione.

Se desideri eliminare il ruolo collegato al servizio MediaTailor utilizzato per le configurazioni di registro nel tuo account, devi prima disattivare tutte le configurazioni di registro. Per informazioni su come eliminare il ruolo collegato al servizio, consulta. [Utilizzo di ruoli collegati ai servizi per MediaTailor](using-service-linked-roles.md)

------
#### [ Console ]

**Per disattivare la configurazione del registro su una configurazione di riproduzione**

1. Accedi a Console di gestione AWS e apri la MediaTailor console all'indirizzo. [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)

1. Nel riquadro di **configurazione della riproduzione**, seleziona la configurazione di riproduzione su cui desideri disattivare la configurazione del registro.

1. Scegli **Modifica**.

1. In **Configurazione del registro**, imposta il valore della **percentuale abilitata** su. `0` Questa operazione disattiva la registrazione di tutte le sessioni per questa configurazione di riproduzione.

1. Seleziona **Salva**.

------
#### [ AWS Command Line Interface (AWS CLI) ]

**Per disattivare una configurazione di registro**
+ Imposta il `percent-enabled` valore sull'`0`utilizzo del comando [configure-logs-for-playback-configuration](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/configure-logs-for-playback-configuration.html).

------

# Filtraggio di AWS Elemental MediaTailor log ed eventi
<a name="logs-filter"></a>

I registri emessi da una configurazione di riproduzione MediaTailor includono informazioni su una serie di attività che si svolgono durante la sessione di riproduzione. Queste attività sono identificate nel tipo di evento dei registri. Per impostazione predefinita, molti eventi vengono registrati. Per aiutare a controllare il costo dei log in Amazon CloudWatch, puoi specificare i log che MediaTailor vengono emessi. 

MediaTailor ti consente di controllare il filtraggio dei log in modo da poter effettuare le seguenti operazioni:
+ Specificate gli eventi di registro che desiderate escludere dai registri
+ Abilita la registrazione delle risposte non elaborate dall'ad decision server (ADS)

Puoi impostare queste preferenze di filtraggio dei registri indipendentemente per ogni sessione di riproduzione o come impostazione predefinita per tutte le sessioni di riproduzione per una configurazione di riproduzione. 
+ Per filtrare i log in base alla sessione, includete i parametri di interrogazione nella richiesta di inizializzazione della sessione di riproduzione.
+ Per filtrare i log in base alla configurazione di riproduzione, usa la MediaTailor console o l'API per indicare le tue preferenze nelle impostazioni di configurazione della riproduzione. 

Le seguenti sezioni forniscono istruzioni per abilitare il filtraggio dei registri sulle sessioni e sulle configurazioni di riproduzione.

# Filtri di registro per sessione
<a name="logs-filter-session"></a>

Per definire un livello personalizzato di dettaglio del registro per ogni sessione, aggiungi i seguenti parametri alla richiesta iniziale di sessione di riproduzione lato server o lato client. Aggiungi valori ai parametri per rappresentare gli eventi che desideri includere o escludere, in un formato delimitato da virgole:
+ `aws.adsInteractionLogPublishOptInEventTypes`per ricevere registri per interazioni specifiche con l'Ad Decision Server (ADS).
+ `aws.adsInteractionLogExcludeEventTypes`per interrompere la ricezione dei log per interazioni ADS specifiche.
+ `aws.manifestServiceLogExcludeEventTypes`per interrompere la ricezione dei log per interazioni specifiche con il servizio manifest. 

Per un elenco dei tipi di log ed eventi che vengono MediaTailor emessi, consulta [registri del manifesto](log-types.md)[Registri ADS](ads-log-format.md), e. [Registri di transcodifica](tm-log-format.md)

Se non utilizzi alcun parametro di query per il filtraggio dei log, MediaTailor scrive tutti i log nella destinazione di consegna. 

**Example inizializzazione della sessione lato server con filtri di registro**  
Per escludere `GENERATED_MANIFEST` `PARSING_ERROR` eventi dai registri del manifesto e `MAKING_ADS_REQUEST` dai registri ADS, la richiesta di inizializzazione della sessione avrebbe il seguente aspetto:  

```
GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/index.m3u8?aws.logMode=DEBUG&aws.manifestServiceLogExcludeEventTypes=GENERATED_MANIFEST,PARSING_ERROR&aws.adsInteractionLogExcludeEventTypes=MAKING_ADS_REQUEST
```
Per abilitare i log non elaborati del tuo ADS, includi il `RAW_ADS_RESPONSE` valore del parametro: `AdsInteractionPublishOptInEventType`  

```
GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/index.m3u8?aws.adsInteractionPublishOptInEventType=RAW_ADS_RESPONSE
```

**Example inizializzazione della sessione lato client con filtri di registro**  
Per escludere gli eventi di registro durante l'inizializzazione della sessione lato client, includi `availSuppression` e digita i parametri di registro nella richiesta POST del client a. MediaTailor Per ulteriori informazioni su come costruire una richiesta di sessione di riproduzione lato client, vedere [Monitoraggio degli annunci lato client](ad-reporting-client-side.md). L'esempio seguente esclude `PARSING_ERROR` gli eventi dai registri del manifesto `CONFIG_SECURITY_ERROR` e dai registri ADS. `MAKING_ADS_REQUEST`  

```
POST parent.m3u8
   {
       "adsInteractionLog": {
           ...
           "excludeEventTypes": [
               "MAKING_ADS_REQUEST"
           ]
       },
       "manifestServiceLog": {
           ...
           "excludeEventTypes": [
               "GENERATED_MANIFEST",
               "PARSING_ERROR"
           ]
       },
      "logMode": "DEBUG"
   }
```
 Per abilitare i log non elaborati del tuo ADS, includi il `RAW_ADS_RESPONSE ` valore del parametro: `publishOptInEventTypes`   

```
POST parent.m3u8
   {
       "adsInteractionLog": {
           "publishOptInEventTypes": ["RAW_ADS_RESPONSE"],
           "excludeEventTypes": [
               "MAKING_ADS_REQUEST"
           ]
       },
       "manifestServiceLog": {
           ...
           "excludeEventTypes": [
               "GENERATED_MANIFEST",
               "PARSING_ERROR"
           ]
       },
       "logMode": "DEBUG"
   }
```

# Filtri di registro di configurazione per riproduzione
<a name="logs-filter-config"></a>

Utilizzate le impostazioni della configurazione di riproduzione per definire i tipi di eventi di registro che vengono MediaTailor emessi di default da questa configurazione di riproduzione. MediaTailor utilizza queste impostazioni di filtraggio dei log predefinite per tutte le sessioni che non includono i parametri di filtraggio delle interrogazioni sulla richiesta di avvio della sessione. 

Puoi scegliere di fare quanto segue:
+ Ricevi registri per interazioni specifiche con l'Ad Decision Server (ADS).
+ Escludi i log per interazioni ADS specifiche.
+ Escludi i log per interazioni specifiche con il servizio manifest. 

Per configurare queste impostazioni dalla MediaTailor console, consulta[Creazione di una configurazione](configurations-create.md). Per l' MediaTailor API, [https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PutPlaybackConfiguration.html](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PutPlaybackConfiguration.html)consulta l'*AWS Elemental MediaTailor API Reference*.

Per un elenco dei tipi di log e di eventi che MediaTailor emette, consulta [registri del manifesto](log-types.md)[Registri ADS](ads-log-format.md), e[Registri di transcodifica](tm-log-format.md).

# Generazione di registri di AWS Elemental MediaTailor debug
<a name="debug-log-mode"></a>

Utilizza i log di debug per risolvere i problemi relativi alla sessione di riproduzione di inserzioni MediaTailor pubblicitarie. Per generare registri di debug, imposta la modalità di registro su debug nella richiesta del player. MediaTailor *Per la segnalazione lato server, imposta la modalità di registro nella richiesta di riproduzione.* *Per i report lato client, imposta la modalità di registro nella richiesta di inizializzazione della sessione.* 

Quando la modalità di registro è impostata su debug, MediaTailor scrive tutti i tipi di eventi di registro in Logs. CloudWatch I log forniscono informazioni sui seguenti eventi. [Per un elenco completo dei dati prodotti nei log di debug, consultate Debug log fields.](https://docs.aws.amazon.com/mediatailor/latest/ug/debug-log-mode.html#debug-log-mode-fields)
+ **Interazione con l'origine**: dettagli sulle MediaTailor interazioni con il server di origine. Ad esempio, la risposta del manifesto di origine, il tipo di manifesto e l'URL di origine.
+ **Manifesto generato**: dettagli sulla risposta della sessione di riproduzione da MediaTailor. Ad esempio, il manifesto che MediaTailor genera.
+ **Sessione inizializzata**: dettagli di inizializzazione della sessione, come l'ID della sessione.

Per personalizzare i tipi di eventi di registro che ricevi per sessione, consulta. [Filtraggio di registri ed eventi](logs-filter.md)

## Prerequisiti
<a name="prerequisites"></a>

Per impostare la modalità di registro su debug, devi prima concedere l' MediaTailor autorizzazione a inviare i log CloudWatch, se non l'hai già fatto. Dopo aver concesso l'autorizzazione MediaTailor all'accesso CloudWatch, sei pronto per abilitare la modalità di registro di debug. Per informazioni su come concedere l' MediaTailor autorizzazione all'accesso, CloudWatch consulta [Configurazione delle autorizzazioni per Amazon CloudWatch](https://docs.aws.amazon.com/mediatailor/latest/ug/monitoring-permissions.html).

## Come impostare la modalità di registro per il debug
<a name="how-to-turn-on-debug-log-mode"></a>

Questa sezione spiega come impostare la modalità di registro per il debug per il reporting lato server e il reporting lato client.

### Reportistica lato server
<a name="server-side-reporting"></a>

Per i report lato server, includi il parametro e il valore della `?aws.logMode=DEBUG` query nella richiesta di `GET HTTP` riproduzione del lettore all'endpoint HLS o DASH. MediaTailor [Per informazioni generali sulla reportistica lato server, consulta Server-side Reporting.](https://docs.aws.amazon.com/mediatailor/latest/ug/ad-reporting-server-side.html)

**Importante**  
Il valore `DEBUG` prevede la distinzione tra lettere maiuscole e minuscole.

 Una richiesta di riproduzione che include `?aws.logMode=DEBUG` è simile alla seguente:

**Example Richiesta di riproduzione su un endpoint HLS**  

```
GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.logMode=DEBUG
```
Dopo aver impostato la modalità di registro su debug, si consiglia di verificare che la sessione di registrazione di debug sia attiva. Per verificare che la sessione di debug sia attiva, controlla se ci sono CloudWatch registri per l'ID della sessione. L'ID di sessione è incluso nell'endpoint di riproduzione che lo fornisce. MediaTailor Per ulteriori informazioni, consulta [Verify that the debug log mode is active for your playback session](#debug-active). 

### Reportistica lato client
<a name="client-side-reporting"></a>

Per i report lato client, includi la `logMode` chiave e il `DEBUG` valore nel corpo della richiesta di inizializzazione della `POST HTTP` sessione del client all'endpoint /v1/session. MediaTailor [Per informazioni generali sui report lato client, consulta Client-Side Reporting.](https://docs.aws.amazon.com/mediatailor/latest/ug/ad-reporting-client-side.html)

**Importante**  
Il valore `DEBUG` prevede la distinzione tra lettere maiuscole e minuscole.

 Dopo aver impostato la modalità di registro su debug, si consiglia di verificare che la sessione di debug sia attiva. Per verificare che la sessione di debug sia attiva, verifica che nei registri sia presente un `SESSION_INITIALIZED` evento associato all'ID di sessione. CloudWatch L'ID di sessione è incluso nell'endpoint di riproduzione che fornisce. MediaTailor Per ulteriori informazioni, consulta [Verify that the debug log mode is active for your playback session](#debug-active). 

## Numero massimo di sessioni di debug attive
<a name="maximum-active-debug-log-sessions"></a>

È possibile avere un massimo di 10 sessioni di registro di debug attive. Quando il lettore invia la richiesta di inizializzazione della sessione o di riproduzione a MediaTailor, MediaTailor verifica se il limite è stato raggiunto. In caso affermativo, MediaTailor controlla se ci sono sessioni obsolete. Una sessione è obsoleta se non vi si accede entro un certo periodo di tempo. Per i live streaming questo periodo di tempo è di 10 minuti, per gli stream VOD è di 30 minuti.

Se è stato raggiunto il limite massimo di sessioni di registro di debug attive, i log di debug non vengono scritti nei registri della sessione. CloudWatch Se non vedi i log di debug nei CloudWatch log della tua sessione, potresti aver raggiunto questo limite. Per confermare se il limite è stato raggiunto, consulta. [Verify that the debug log mode is active for your playback session](#debug-active) 

## Campi di registro di debug
<a name="debug-log-mode-fields"></a>

 La tabella seguente elenca i campi del registro di debug in cui è possibile MediaTailor scrivere. CloudWatch 


| Campo | Description | 
| --- | --- | 
| awsAccountId | Il tuo Account AWS ID. | 
| customerId | Il tuo ID MediaTailor cliente. | 
| eventTimestamp | Il timestamp ISO 8601 associato all'evento del registro di debug. | 
| eventType | Il tipo di evento del registro di debug. Valori:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/mediatailor/latest/ug/debug-log-mode.html) | 
| originRequestUrl | L'URL del server di origine recuperato per questa richiesta. | 
| mediaTailorPath | L' MediaTailor endpoint che è stato chiamato, inclusi tutti i parametri passati MediaTailor nella richiesta manifesta iniziale. | 
| requestId | L'ID di una richiesta HTTP specifica a MediaTailor. | 
| responseBody | Il manifesto nel corpo della risposta da MediaTailor. Questo è il manifesto di origine non elaborato o il manifesto generato da MediaTailor. | 
| sessionId | L'ID della sessione di riproduzione. | 
| sessionType | Il tipo di sessione di riproduzione. Valori: `HLS`, `DASH` | 

## Leggi i log di debug
<a name="read-the-debug-logs"></a>

MediaTailor scrive i log di debug su Amazon CloudWatch Logs. Si applicano le tariffe tipiche CloudWatch dei log. Usa CloudWatch Insights per leggere i log di debug. Per informazioni su come utilizzare CloudWatch Logs Insights, consulta [Analyzing Log Data with CloudWatch Logs Insights nella * CloudWatch AWS* Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) User Guide.

**Nota**  
La visualizzazione dei log di debug può richiedere alcuni minuti. CloudWatch Se non vedi i log, attendi qualche minuto e riprova. Se continui a non visualizzare i log, è possibile che tu abbia raggiunto il numero massimo di sessioni di registro di debug attive. Per verificare se questo è il caso, esegui una CloudWatch query per vedere se è stata inizializzata una sessione di debug per la sessione di riproduzione. Per ulteriori informazioni, consulta [Verify that the debug log mode is active for your playback session](#debug-active).

### Esempi
<a name="query-examples"></a>

 Questa sezione include interrogazioni di esempio che è possibile utilizzare per leggere MediaTailor i dati del registro di debug. 

**Example 1: Verificate che la modalità di registro di debug sia attiva per la sessione di riproduzione**  

```
fields @timestamp, @message
 | filter sessionId = "32002de2-837c-4e3e-9660-f3075e8dfd90"
 | filter eventType = "SESSION_INITIALIZED" # client-side reporting
 or mediaTailorPath like “/v1/master" # server-side reporting HLS
 or mediaTailorPath like “/v1/dash" # server-side reporting DASH
```

**Example 2: Visualizza le risposte dalla tua origine**  

```
fields @timestamp, responseBody, @message, mediaTailorPath
 | filter eventType = "ORIGIN_MANIFEST" and sessionId = "32002de2-837c-4e3e-9660-f3075e8dfd90"
```

**Example 3: Visualizza il manifesto generato da MediaTailor per una determinata sessione**  

```
fields @timestamp, responseBody, @message
 | filter mediaTailorPath like "/v1/master/" and eventType = "GENERATED_MANIFEST" and sessionId = "32002de2-837c-4e3e-9660-f3075e8dfd90"
```

**Example 4: Visualizza tutti gli eventi per una determinata `requestId`**  
 Usa questa query per visualizzare il manifesto di origine e il manifesto generato da MediaTailor.   

```
fields @timestamp, responseBody, @message, mediaTailorPath
 | filter requestId = "e5ba82a5-f8ac-4efb-88a0-55bed21c45b4"
```