

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Visualización de AWS Elemental MediaTailor los registros
<a name="monitoring-through-logs"></a>

MediaTailor emite registros que describen una variedad de hitos y actividades en los canales y las configuraciones de reproducción. Puede usar estos registros para obtener visibilidad de su flujo de trabajo y solucionar problemas relacionados con el servicio. En los temas siguientes se describen los registros y las opciones de registro. 

**Topics**
+ [Registros de ADS](ads-log-format.md)
+ [Registros de manifiestos](log-types.md)
+ [Transcodificar registros](tm-log-format.md)
+ [Uso de registros vendidos](vended-logs.md)
+ [Escribir registros en CloudWatch Logs](monitoring-cw-logs.md)
+ [Controlar el volumen de los registros de las sesiones de inserción de anuncios](log-configuration.md)
+ [Filtrar registros y eventos](logs-filter.md)
+ [Generar registros de depuración](debug-log-mode.md)

# AWS Elemental MediaTailor Descripción de los registros de ADS y tipos de eventos
<a name="ads-log-format"></a>

En las siguientes secciones se describen los registros que se MediaTailor emiten para describir los eventos relacionados con el servidor de decisiones publicitarias (ADS). Estos son `AdDecisionServerInteractions` registros.

**Topics**
+ [Eventos de AdDecisionServerInteractions](#log-types-adsinteraction)
+ [Descripción del registro de ADS](#ads-log-description)
+ [Esquema JSON del registro ADS](#ads-log-json-schema)

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

Los siguientes eventos se emiten durante MediaTailor las interacciones con el servidor de decisiones publicitarias (ADS). 


| Registro | Description (Descripción) | 
| --- | --- | 
| AD\$1MARKER\$1FOUND | MediaTailor encontró un marcador publicitario en el manifiesto. | 
| BEACON\$1FIRED | Se activó una baliza de rastreo para informar sobre eventos publicitarios. En el modo de generación de informes del lado del servidor (predeterminado), se MediaTailor activa la baliza. En el modo de generación de informes del lado del cliente, el dispositivo de reproducción dispara la baliza. | 
| EMPTY\$1VAST\$1RESPONSE | El ADS devolvió una respuesta VAST vacía que no contenía anuncios. | 
| EMPTY\$1VMAP\$1RESPONSE | El ADS devolvió una respuesta de VMAP vacía. | 
| ERROR\$1ADS\$1INVALID\$1RESPONSE | El ADS devolvió un código de estado distinto del 200. | 
| ERROR\$1ADS\$1IO | MediaTailor detectó un error al intentar comunicarse con el ADS.  | 
| ERROR\$1ADS\$1RESPONSE\$1PARSE | MediaTailor se produjo un error al analizar la respuesta del ADS.  | 
| ERROR\$1ADS\$1RESPONSE\$1UNKNOWN\$1ROOT\$1ELEMENT | La respuesta de ADS contiene un elemento raíz no válido. | 
| ERROR\$1ADS\$1TIMEOUT | Se agotó el tiempo de espera de la MediaTailor solicitud al ADS. | 
| ERROR\$1DISALLOWED\$1HOST | No se permite el alojamiento de ADS. | 
| ERROR\$1FIRING\$1BEACON\$1FAILED | MediaTailor falló al disparar la baliza de rastreo. | 
| ERROR\$1PERSONALIZATION\$1DISABLED | La inserción de anuncios está deshabilitada para esta sesión. | 
| ERROR\$1UNKNOWN | MediaTailor detectó un error desconocido durante la solicitud de ADS. | 
| ERROR\$1UNKNOWN\$1HOST | Se desconoce el host de ADS. | 
| ERROR\$1VAST\$1INVALID\$1MEDIA\$1FILE | El VAST Ad tiene un MediaFile elemento no válido o falta. | 
| ERROR\$1VAST\$1INVALID\$1VAST\$1AD\$1TAG\$1URI | La respuesta VAST contiene un elemento no válidoVASTAdTagURI. | 
| ERROR\$1VAST\$1MISSING\$1CREATIVES | El Ad VAST contiene cero o varios Creatives elementos. Se requiere exactamente un Creatives elemento. | 
| ERROR\$1VAST\$1MISSING\$1IMPRESSION | El VAST no Ad contiene ningún Impression elemento. Se requiere al menos un Impression elemento.  | 
| ERROR\$1VAST\$1MISSING\$1MEDIAFILES | El Ad VAST contiene cero o varios MediaFiles elementos. Se requiere exactamente un MediaFiles elemento. | 
| ERROR\$1VAST\$1MISSING\$1OVERLAYS | MediaTailor no recibí ninguna creatividad no lineal del servidor de anuncios.  | 
| ERROR\$1VAST\$1MULTIPLE\$1LINEAR | El VAST Ad contiene varios Linear elementos. | 
| ERROR\$1VAST\$1MULTIPLE\$1TRACKING\$1EVENTS | El Ad VAST contiene varios TrackingEvents elementos. | 
| ERROR\$1VAST\$1REDIRECT\$1EMPTY\$1RESPONSE | La solicitud de redireccionamiento de VAST devolvió una respuesta vacía. | 
| ERROR\$1VAST\$1REDIRECT\$1FAILED | La solicitud de redireccionamiento de VAST detectó un error. | 
| ERROR\$1VAST\$1REDIRECT\$1MULTIPLE\$1VAST | La solicitud de redireccionamiento de VAST devolvió varios anuncios. | 
| FILLED\$1AVAIL | MediaTailor llenó correctamente el formulario de disponibilidad. | 
| FILLED\$1OVERLAY\$1AVAIL | MediaTailor llenó correctamente la función de superposición. | 
| INTERSTITIAL\$1VOD\$1FAILURE | La solicitud o respuesta de ADS detectó un problema al llenar las reservas intersticiales de la lista de reproducción de VOD. No se insertará ningún anuncio. | 
| INTERSTITIAL\$1VOD\$1SUCCESS | MediaTailor campos intersticiales rellenados correctamente para la lista de reproducción de VOD. | 
| MAKING\$1ADS\$1REQUEST | MediaTailor solicita anuncios a la ADS. | 
| MODIFIED\$1TARGET\$1URL | MediaTailor modificó la URL de destino saliente. | 
| NON\$1AD\$1MARKER\$1FOUND | MediaTailor ha encontrado un marcador publicitario inutilizable en el manifiesto. | 
| RAW\$1ADS\$1RESPONSE | MediaTailor recibió una respuesta de ADS sin procesar. | 
| REDIRECTED\$1VAST\$1RESPONSE | MediaTailor recibió una respuesta de VAST después de seguir la redirección de VAST. | 
| VAST\$1REDIRECT | La respuesta al anuncio VAST contiene una redirección. | 
| VAST\$1RESPONSE | MediaTailor recibió una respuesta VAST. | 
| VOD\$1TIME\$1BASED\$1AVAIL\$1PLAN\$1SUCCESS | MediaTailor creó correctamente un plan de disponibilidad temporal para la plantilla de VOD. | 
| VOD\$1TIME\$1BASED\$1AVAIL\$1PLAN\$1VAST\$1RESPONSE\$1FOR\$1OFFSET | MediaTailor está creando un plan de disponibilidad temporal para la plantilla de VOD. MediaTailor recibió una gran respuesta en relación con el intervalo de tiempo. | 
| VOD\$1TIME\$1BASED\$1AVAIL\$1PLAN\$1WARNING\$1NO\$1ADVERTISEMENTS | La solicitud o respuesta de ADS detectó un problema al crear un plan de disponibilidad temporal para la plantilla de VOD. No se insertará ningún anuncio. | 
| WARNING\$1NO\$1ADVERTISEMENTS | MediaTailor Se ha producido un problema al rellenar el formulario. No se ha insertado ningún anuncio. | 
| WARNING\$1URL\$1VARIABLE\$1SUBSTITUTION\$1FAILED | MediaTailor no puede sustituir variables dinámicas en la URL de ADS. Comprueba la configuración de la URL. | 
| WARNING\$1VPAID\$1AD\$1DROPPED | Se ha eliminado un anuncio de VPAID porque falta una lista o porque la sesión utiliza informes del lado del servidor. | 

## Descripción del registro de ADS
<a name="ads-log-description"></a>

En esta sección se describe la estructura y el contenido de la descripción del registro de ADS. Para explorar por su cuenta en un editor JSON, utilice el listado en [Esquema JSON del registro ADS](#ads-log-json-schema). 

Cada evento del registro de ADS contiene los campos estándar que generan los CloudWatch registros. Para obtener más información, consulte [Analizar los datos de registro con CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html). 

### ADS registra las propiedades
<a name="ads-logs-main"></a>

En esta sección se describen las propiedades de los registros de ADS.


| Propiedad | Tipo | Obligatorio | Descripción | 
| --- | --- | --- | --- | 
| adsRequestUrl | cadena | false | La URL completa de la solicitud de ADS realizada por MediaTailor. | 
| avail | objeto de tipo [avail](#ads-logs-avail) | false | Información sobre una página que está MediaTailor llena de anuncios. Actualmente, para el tipo de FILLED\$1AVAIL evento, este es el plan que se creó MediaTailor cuando apareció por primera vez la función Avail. La forma en que se llena finalmente el espacio publicitario puede variar de este plan, en función de cómo se reproduce el contenido.  | 
| awsAccountId | cadena | true | El ID de la cuenta de AWS MediaTailor de la configuración que se utilizó para la sesión. | 
| customerId | cadena | true | La versión hash del ID de cuenta de AWS, que puede utilizar para correlacionar varias entradas de registro. | 
| eventDescription | cadena | true | Una breve descripción del evento que activó este mensaje de registro, proporcionada por el MediaTailor servicio. De forma predeterminada, está vacío. Ejemplo: Got VAST response. | 
| eventTimestamp | cadena | true | La fecha y la hora del evento. | 
| eventType | cadena | true | El código del evento que activó este mensaje de registro. Ejemplo: VAST\$1RESPONSE. | 
| originId | cadena | true | El nombre de la MediaTailor configuración. Esto es diferente del origen de contenido del vídeo, que también forma parte de la configuración. | 
| prefetchScheduleName | cadena | false | El nombre del programa de captura previa asociado a este evento publicitario. | 
| requestHeaders | matriz de tipo [requestheaders](#ads-logs-requestheaders) | false | Los encabezados que se MediaTailor incluyen en la solicitud de ADS. Normalmente, los registros los incluyen cuando se produce un error en una solicitud al ADS, para facilitar la solución de problemas. | 
| requestId | cadena | true | El ID de la MediaTailor solicitud, que puede utilizar para correlacionar varias entradas de registro de la misma solicitud. | 
| sessionId | cadena | true | El identificador numérico único que MediaTailor se asignó a la sesión del jugador. Todas las solicitudes que un jugador realiza para una sesión tienen el mismo ID de sesión. Ejemplo: e039fd39-09f0-46b2-aca9-9871cc116cde. | 
| sessionType | string (valores legales: [DASH, HLS]) | true | El tipo de transmisión del jugador. | 
| vastAd | objeto de tipo [vastAd](#ads-logs-vastAd) | false | Información sobre un único anuncio analizado a partir de la respuesta VAST. | 
| vastResponse | objeto de tipo [vastResponse](#ads-logs-vastResponse) | false | Información sobre la respuesta VAST que MediaTailor recibió del ADS. | 
| vodCreativeOffsets | objeto de tipo [vodCreativeOffsets](#ads-logs-vodCreativeOffsets) | false | En función de la respuesta del VMAP, en función de la respuesta del VMAP, está disponible un mapa que indica los intervalos de tiempo en el manifiesto en los que se MediaTailor insertará. | 
| vodVastResponseTimeOffset | número | false | Desfase de tiempo específico de VMAP para la inserción de anuncios de VOD. | 

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

En esta sección se describen las propiedades adContent de los registros de ADS.


**Propiedades adContent de registros de ADS**  

| Propiedad | Tipo | Obligatorio | Description (Descripción) | 
| --- | --- | --- | --- | 
| adPlaylistUris | objeto de tipo [adPlaylistUris](#ads-logs-adPlaylistUris) | false | La correspondencia desde el manifiesto de origen de una variante al manifiesto de anuncios de la variante. Para DASH, este contiene una única entrada, ya que todas las variantes están representadas en un único manifiesto de DASH.  | 

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

En esta sección se describen las propiedades de los registros de ADS adPlaylistUris.


**adPlaylistUris Propiedades de los registros de ADS**  

| Propiedad | Tipo | Obligatorio | Descripción | 
| --- | --- | --- | --- | 
| <any string> | cadena | false | La URL del manifiesto de anuncios para la variante específica. | 

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

En esta sección se describen las propiedades de la disponibilidad de los registros de ADS.


**Propiedades de espacio publicitario de registros de ADS**  

| Propiedad | Tipo | Obligatorio | Descripción | 
| --- | --- | --- | --- | 
| availId | cadena | true | El identificador único para esta disponibilidad. Para HLS, este es el número de secuencia de medios donde comienza el espacio publicitario. Para DASH, este es el ID del periodo. | 
| creativeAds | matriz de tipo [creativeAd](#ads-logs-creativeAd) | true | Los anuncios que MediaTailor se insertaron en él están disponibles. | 
| fillRate | número | true | La velocidad a la que los anuncios rellenan la duración del espacio publicitario, de 0,0 (para 0 %) a 1,0 (para 100 %). | 
| filledDuration | número | true | La suma de las duraciones de todos los anuncios insertados en el espacio publicitario. | 
| numAds | número | true | La cantidad de anuncios que MediaTailor se insertaron en la oferta. | 
| originAvailDuration | número | true | La duración del espacio publicitario tal y como se especifica en la transmisión de contenido desde el origen (CUE\$1OUT o SCTE). | 
| skippedAds | matriz de tipo [skippedAd](#ads-logs-skippedAd) | false | Los anuncios que MediaTailor no se insertaron, por motivos como TRANSCODE\$1IN\$1PROGRESS yTRANSCODE\$1ERROR. Para ver una lista de los motivos por los que se omiten los anuncios, consulte[Solución de problemas de omisión de anuncios](troubleshooting-ad-skipping-overview.md). | 
| slateAd | objeto de tipo [slateAd](#ads-logs-slateAd) | true | La información sobre el anuncio de pizarra, que se MediaTailor utiliza para rellenar los segmentos vacíos, está disponible. | 

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

En esta sección se describen las propiedades creativeAd de los registros de ADS.


**Propiedades creativeAd de registros de ADS**  

| Propiedad | Tipo | Obligatorio | Description (Descripción) | 
| --- | --- | --- | --- | 
| adContent | objeto de tipo [adContent](#ads-logs-adContent) | true | Información sobre el contenido del anuncio insertado. | 
| creativeUniqueId | cadena | true | El identificador único del anuncio, que se utiliza como clave para la transcodificación. Este es el campo de ID del anuncio en la respuesta VAST, si está disponible. De lo contrario, es la URL intermedia del anuncio.  | 
| trackingEvents | objeto de tipo [trackingEvents](#ads-logs-trackingEvents) | true | La baliza de seguimiento URLs de los distintos eventos de seguimiento del anuncio. Las claves son los nombres de los eventos y los valores son una lista de balizas URLs. | 
| transcodedAdDuration | número | true | La duración del anuncio, calculada a partir del recurso transcodificado. | 
| uri | cadena | true | La URL de la versión intermedia del anuncio, que es la entrada del transcodificador. | 
| vastDuration | número | true | La duración del anuncio, tal como se analiza a partir de la respuesta VAST. | 

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

En esta sección se describen las propiedades requestheaders de los registros de ADS.


**Propiedades de requestheaders de registros de ADS**  

| Propiedad | Tipo | Obligatorio | Descripción | 
| --- | --- | --- | --- | 
| name | cadena | true | El nombre del encabezado. | 
| value | cadena | true | El valor del encabezado. | 

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

En esta sección se describen las propiedades skippedAd de los registros de ADS.


**Propiedades skippedAd de los registros de ADS**  

| Propiedad | Tipo | Obligatorio | Descripción | 
| --- | --- | --- | --- | 
| adMezzanineUrl | cadena | true | La URL intermedia del anuncio omitido. | 
| creativeUniqueId | cadena | true | El identificador único del anuncio, que se utiliza como clave para la transcodificación. Este es el campo de ID del anuncio en la respuesta VAST, si está disponible. De lo contrario, es la URL intermedia del anuncio.  | 
| skippedReason | cadena | true | El código que indica por qué no se insertó el anuncio. Ejemplo: TRANSCODE\$1IN\$1PROGRESS. Para ver una lista de los motivos por los que se omiten los anuncios, consulte[Solución de problemas de omisión de anuncios](troubleshooting-ad-skipping-overview.md). | 
| transcodedAdDuration | número | false | La duración del anuncio, calculada a partir del recurso transcodificado. | 
| vastDuration | número | true | La duración del anuncio, tal como se analiza a partir de la respuesta VAST. | 

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

En esta sección se describen las propiedades slateAd de los registros de ADS.


**Propiedades slateAd de los registros de ADS**  

| Propiedad | Tipo | Obligatorio | Description (Descripción) | 
| --- | --- | --- | --- | 
| adContent | objeto de tipo [adContent](#ads-logs-adContent) | true | Información sobre el contenido del anuncio insertado. | 
| creativeUniqueId | cadena | true | El identificador único del anuncio, que se utiliza como clave para la transcodificación. Este es el campo de ID del anuncio en la respuesta VAST, si está disponible. De lo contrario, es la URL intermedia del anuncio.  | 
| transcodedAdDuration | número | true | La duración del anuncio, calculada a partir del recurso transcodificado. | 
| uri | cadena | true | La URL de la versión intermedia del anuncio, que es la entrada del transcodificador. | 

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

En esta sección se describen las propiedades trackingEvents de los registros de ADS.


**Propiedades trackingEvents de los registros de ADS**  

| Propiedad | Tipo | Obligatorio | Description (Descripción) | 
| --- | --- | --- | --- | 
| <any string> | matriz de tipo string | false | La lista URLs de indicadores del evento de seguimiento especificado (impresión, completo, etc.) | 

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

En esta sección se describen las propiedades vastAd de de los registros de ADS.


**Propiedades de vastAd de registros de ADS**  

| Propiedad | Tipo | Obligatorio | Descripción | 
| --- | --- | --- | --- | 
| adSystem | cadena | true | El valor de la etiqueta AdSystem en la respuesta VAST. | 
| adTitle | cadena | true | Los archivos multimedia que están disponibles para el anuncio en la respuesta VAST. | 
| creativeAdId | cadena | true | El valor del atributo adId de la etiqueta Creative en la respuesta VAST. | 
| creativeId | cadena | true | El valor del atributo id de la etiqueta Creative en la respuesta VAST. | 
| duration | número | true | La duración aproximada del anuncio, en función de la etiqueta duration en el elemento linear de la respuesta VAST. | 
| trackingEvents | objeto de tipo [trackingEvents](#ads-logs-trackingEvents) | true | La baliza URLs de seguimiento de los distintos eventos de seguimiento del anuncio. Las claves son los nombres de los eventos y los valores son una lista de balizas URLs. | 
| vastAdId | cadena | true | El valor del atributo id de la etiqueta Ad en la respuesta VAST | 
| vastAdTagUri | cadena | false | El URI de redirección específico de VMAP para un anuncio. | 
| vastMediaFiles | matriz de tipo [vastMediaFile](#ads-logs-vastMediaFile) | true | La lista de archivos multimedia disponibles para el anuncio en la respuesta VAST. | 

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

En esta sección se describen las propiedades de los registros de ADS vastMediaFile.


**vastMediaFile Propiedades de los registros de ADS**  

| Propiedad | Tipo | Obligatorio | Descripción | 
| --- | --- | --- | --- | 
| apiFramework | cadena | true | El marco de API necesario para administrar el archivo multimedia. Ejemplo: VPAID. | 
| bitrate | número | true | La velocidad de bits del archivo multimedia. | 
| delivery | cadena | true | El protocolo utilizado para el archivo multimedia, establecido en progresivo o en streaming. | 
| height | número | true | La altura en píxeles del archivo multimedia. | 
| id | cadena | true | El valor del atributo id de la etiqueta MediaFile. | 
| type | cadena | true | El tipo MIME del archivo multimedia, tomado del atributo type de la etiqueta MediaFile. | 
| uri | cadena | true | La URL de la versión intermedia del anuncio, que es la entrada del transcodificador. | 
| width | número | true | El ancho de píxeles del archivo multimedia. | 

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

En esta sección se describen las propiedades vastResponse de los registros de ADS.


**Propiedades vastResponse de los registros de ADS**  

| Propiedad | Tipo | Obligatorio | Description (Descripción) | 
| --- | --- | --- | --- | 
| errors | matriz de tipo string | true | El error URLs se analizó a partir de las Error etiquetas de la respuesta VAST. | 
| vastAds | matriz de tipo [vastAd](#ads-logs-vastAd) | true | Los anuncios analizados desde la respuesta VAST. | 
| version | cadena | true | La versión de la especificación VAST, analizada a partir del atributo version de la etiqueta VAST en la respuesta. | 

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

En esta sección se describen las propiedades de los registros de ADS vodCreativeOffsets.


**vodCreativeOffsets Propiedades de los registros de ADS**  

| Propiedad | Tipo | Obligatorio | Description (Descripción) | 
| --- | --- | --- | --- | 
| <any string> | matriz de tipo [vodCreativeOffset](#ads-logs-vodCreativeOffset) | false | Un mapeo desde un desfase de tiempo en el manifiesto a una lista de anuncios que se van a insertar en este momento. | 

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

En esta sección se describen las propiedades de los registros de ADS vodCreativeOffset.


**vodCreativeOffset Propiedades de los registros de ADS**  

| Propiedad | Tipo | Obligatorio | Description (Descripción) | 
| --- | --- | --- | --- | 
| adContent | objeto de tipo [adContent](#ads-logs-adContent) | true | Información sobre el contenido del anuncio insertado. | 
| creativeUniqueId | cadena | true | El identificador único del anuncio, que se utiliza como clave para la transcodificación. Este es el campo de ID del anuncio en la respuesta VAST, si está disponible. De lo contrario, es la URL intermedia del anuncio.  | 
| trackingEvents | objeto de tipo [trackingEvents](#ads-logs-trackingEvents) | true | La baliza URLs de seguimiento de los distintos eventos de seguimiento del anuncio. Las claves son los nombres de los eventos y los valores son una lista de balizas URLs. | 
| transcodedAdDuration | número | true | La duración del anuncio, calculada a partir del recurso transcodificado. | 
| uri | cadena | true | La URL de la versión intermedia del anuncio, que es la entrada del transcodificador. | 
| vastDuration | número | true | La duración del anuncio, tal como se analiza a partir de la respuesta VAST. | 

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

A continuación, se muestra el esquema JSON del registro de 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 los registros de manifiesto, la descripción y los tipos de eventos
<a name="log-types"></a>

En las siguientes secciones se describen los registros que se MediaTailor emiten para describir los eventos del servidor de origen al solicitar y recibir un manifiesto. Estos son `ManifestService` registros.

**Topics**
+ [Eventos de ManifestService](#log-types-origininteraction)
+ [El manifiesto registra las propiedades](#manifest-logs-main)

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

Los siguientes eventos se emiten durante MediaTailor las interacciones con el origen. 


| Registro | Description (Descripción) | 
| --- | --- | 
| CONFIG\$1SECURITY\$1ERROR | La MediaTailor configuración tiene un problema de seguridad.  | 
| CONFIG\$1SYNTAX\$1ERROR | El origen y la ruta del activo dan como resultado una URL mal formada. | 
| CONNECTION\$1ERROR | Se ha rechazado o se ha producido un error en la MediaTailor conexión con el origen. | 
| GENERATED\$1MANIFEST | MediaTailor generó un manifiesto. Debe tener el modo de depuración activado para recibir estos registros. Para obtener información sobre el modo de registro de depuración, incluido cómo activarlo, consulte. [Generar registros de depuración](debug-log-mode.md) | 
| HOST\$1DISALLOWED | MediaTailor no permite solicitudes HTTP a este host. | 
| INCOMPATIBLE\$1HLS\$1VERSION | El manifiesto usa una versión HLS incompatible. MediaTailor requiere la versión 3 o superior. | 
| INVALID\$1SINGLE\$1PERIOD\$1DASH\$1MANIFEST | El manifiesto DASH de un solo período no es válido. MediaTailor pasa por un manifiesto DASH de un solo período. | 
| IO\$1ERROR | MediaTailor detectó un error de E/S durante la comunicación con el origen. | 
| LAST\$1PERIOD\$1MISSING\$1AUDIO | En el último punto del manifiesto de DASH falta todo el audio AdaptationSets debido a una desalineación del audio o vídeo de origen. Para evitar problemas de reproducción, retrasa la publicación del último período hasta, al menos, la siguiente solicitud. | 
| LAST\$1PERIOD\$1MISSING\$1AUDIO\$1WARNING | En el último punto del manifiesto de DASH falta todo el audio AdaptationSets porque el audio de origen o el vídeo no están alineados correctamente. Elegir publicar (no retrasar) el último período. La falta de audio puede provocar problemas de reproducción. | 
| MANIFEST\$1ERROR | Error en la solicitud de MediaTailor manifiesto. | 
| NO\$1MASTER\$1OR\$1MEDIA\$1PLAYLIST | La respuesta de origen no contiene una lista de reproducción principal ni una lista de reproducción multimedia. | 
| NO\$1MASTER\$1PLAYLIST | La respuesta de origen no contiene la lista de reproducción principal esperada. | 
| NO\$1MEDIA\$1PLAYLIST | La respuesta de origen no contiene la lista de reproducción multimedia esperada. | 
| ORIGIN\$1MANIFEST | MediaTailor obtuvo un manifiesto de origen. Debe tener el modo de depuración activado para recibir estos registros. Para obtener información sobre el modo de registro de depuración, incluido cómo activarlo, consulte. [Generar registros de depuración](debug-log-mode.md) | 
| PARSING\$1ERROR | El origen no puede analizar la solicitud de manifiesto. | 
| SCTE35\$1PARSING\$1ERROR | MediaTailor no puede analizar el Signal Binary elemento del manifiesto. | 
| SESSION\$1INITIALIZED | Se ha inicializado una sesión. Debe tener el modo de depuración activado para recibir estos registros. Para obtener información sobre el modo de registro de depuración, incluido cómo activarlo, consulte. [Generar registros de depuración](debug-log-mode.md) | 
| TIMEOUT\$1ERROR | Se agotó el tiempo de espera de la solicitud de MediaTailor manifiesto. | 
| TRACKING\$1RESPONSE | MediaTailor proporcionó una respuesta de seguimiento. Debe tener el modo de depuración activado para recibir estos registros. Para obtener información sobre el modo de registro de depuración, incluido cómo activarlo, consulte. [Generar registros de depuración](debug-log-mode.md) | 
| UNKNOWN\$1ERROR | MediaTailor ha detectado un error desconocido. | 
| UNKNOWN\$1HOST | Se desconoce el anfitrión. | 
| UNSUPPORTED\$1SINGLE\$1PERIOD\$1DASH\$1MANIFEST | No se admite el manifiesto DASH de un solo período. MediaTailor pasa por un manifiesto DASH de un solo período. | 

## El manifiesto registra las propiedades
<a name="manifest-logs-main"></a>

En esta sección se describen las propiedades de los registros de manifiestos.


| Propiedad | Tipo | Obligatorio/a | 
| --- | --- | --- | 
| awsAccountId | cadena | true | 
| eventTimestamp | cadena | true | 
| originId | cadena | true | 
| customerId | cadena | false | 
| eventType | cadena | false | 
| sessionId | cadena | false | 
| originRequestUrl | cadena | false | 
| mediaTailorPath | cadena | false | 
| requestId | cadena | false | 
| responseBody | cadena | false | 
| sessionType | string (valores legales: [DASH, HLS]) | false | 
| requestNextToken | cadena | false | 
| eventDescription | cadena | false | 
| assetPath | cadena | false | 
| originFullUrl | cadena | false | 
| originPrefixUrl | cadena | false | 
| additionalInfo | cadena | false | 
| cause | cadena | false | 
| response | cadena | false | 
| httpCode | cadena | false | 
| errorMessage | cadena | false | 
| adAdsResponse | cadena | false | 
| adAdsRawResponse | cadena | false | 
| adAdsRequest | cadena | false | 
| adNumNewAvails | cadena | false | 
| generatedMediaPlaylist | cadena | false | 
| requestStartTime | cadena | false | 
| requestEndTime | cadena | false | 
| requestStartTimeEpochMillis | cadena | false | 
| requestEndTimeEpochMillis | cadena | false | 

# AWS Elemental MediaTailor la descripción de los registros de transcodificación y los tipos de eventos
<a name="tm-log-format"></a>

En las siguientes secciones se describen los registros que se MediaTailor emiten para describir los eventos del servicio de transcodificación cuando se preparan las creatividades para la creación de anuncios. Estos son registros. `TranscodeService`

**Topics**
+ [Eventos de TranscodeService](#log-types-tminteraction)
+ [Transcodificar las propiedades de los registros](#transcode-logs-main)

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

Los siguientes eventos se emiten durante MediaTailor las interacciones durante la transcodificación de anuncios. 


| Registro | Description (Descripción) | 
| --- | --- | 
| IMPORT\$1ERROR | MediaTailor se produjo un error interno durante un trabajo de importación (en el caso de anuncios preacondicionados). Uso de un conjunto de anuncios vacío. | 
| INITIALIZED | MediaTailor inicializó un trabajo de transcodificación o un trabajo de importación (para anuncios preacondicionados). | 
| INTERNAL\$1ERROR | MediaTailor ha detectado un error interno. Uso de un conjunto de anuncios vacío. | 
| MISSING\$1VARIANTS | MediaTailor no se ha podido transcodificar el anuncio porque faltan variantes. Uso de un conjunto de anuncios vacío. | 
| PROFILE\$1NOT\$1FOUND | MediaTailor no se ha podido transcodificar el anuncio porque falta un perfil para transcodificar. Uso de un conjunto de anuncios vacío. | 
| TRANSCODE\$1COMPLETED | La transcodificación de vídeo está completa. El anuncio se puede utilizar para la inserción de anuncios. | 
| TRANSCODE\$1ERROR | MediaTailor se produjo un error interno durante un trabajo de transcodificación. Uso de un conjunto de anuncios vacío. | 
| TRANSCODE\$1IN\$1PROGRESS | La transcodificación de vídeo está en curso. El vídeo transcodificado no está listo. Uso de un conjunto de anuncios vacío. | 

## Transcodificar las propiedades de los registros
<a name="transcode-logs-main"></a>

En esta sección se describen las propiedades de los registros de transcodificación.


| Propiedad | Tipo | Obligatorio | Descripción | 
| --- | --- | --- | --- | 
| awsAccountId | cadena | true | El ID de AWS cuenta de la MediaTailor configuración que se utilizó para la sesión. | 
| eventTimestamp | cadena | true | La fecha y la hora del evento. | 
| originId | cadena | true | El nombre de la MediaTailor configuración. Esto es diferente del origen de contenido del vídeo, que también forma parte de la configuración. | 
| eventType | cadena | false | El código del evento que activó este mensaje de registro. Ejemplo: TRANSCODE\$1ERROR. | 
| eventDescription | cadena | false | Una breve descripción del evento que activó este mensaje de registro, proporcionada por el MediaTailor servicio. De forma predeterminada, está vacío.  | 
| sessionId | cadena | false | El identificador numérico único que MediaTailor se asignó a la sesión del jugador. Todas las solicitudes que un jugador realiza para una sesión tienen el mismo ID de sesión. Ejemplo: e039fd39-09f0-46b2-aca9-9871cc116cde. | 
| creativeUniqueId | cadena | false | El identificador único de la creatividad publicitaria que se está transcodificando. | 
| profileName | cadena | false |  | 
| adUri | cadena | false | El URI de la creatividad publicitaria. | 
| transcodeRequestId | cadena | false | El identificador único de esta solicitud de transcodificación. | 
| cacheStatus | cadena | false | Indica si se MediaTailor ha almacenado en caché el anuncio transcodificado.  | 

# Uso de registros vendidos para enviar registros AWS Elemental MediaTailor
<a name="vended-logs"></a>

Puedes usar los registros vendidos para tener mayor flexibilidad y controlar dónde entregar los registros que se MediaTailor emiten desde tu configuración de reproducción. 

Con los registros vendidos, MediaTailor envía toda la actividad de registro asociada a una configuración a Amazon CloudWatch Logs. CloudWatch A continuación, Logs envía el porcentaje de registros que especifique al destino elegido. Los destinos admitidos son un grupo de CloudWatch registros de Amazon Logs, un bucket de Amazon S3 o una transmisión de Amazon Data Firehose. 

Como los registros vendidos están disponibles a precios de descuento por volumen, podrías ahorrar costes en comparación con el envío de registros directamente a CloudWatch Logs. Para conocer los precios, consulta *Vended Logs* en la pestaña **Logs** de [Amazon CloudWatch Pricing](https://aws.amazon.com/cloudwatch/pricing/).

Para utilizar los registros vendidos, debes hacer lo siguiente:

1. [Inclusión de permisos](#vended-logs-perms).

1. [Cree destinos de entrega de registros](#vended-logs-destinations).

1. [Configure la entrega de CloudWatch registros en Logs](#vended-logs-delivery).

1. [Habilita los registros vendidos MediaTailor](#vended-logs-config).

Para obtener más información sobre los registros vendidos, consulte [Habilitar el registro desde AWS los servicios](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html) en la guía del usuario de CloudWatch registros. MediaTailor admite la versión 2 de registros vendidos. 

## Paso 1: Añadir permisos para la entrega de MediaTailor registros
<a name="vended-logs-perms"></a>

La persona que configura los registros vendidos debe tener permisos para crear el destino de entrega, configurar la entrega de registros y habilitar los registros vendidos. MediaTailor Utilice las siguientes políticas para asegurarse de tener los permisos adecuados para configurar los registros de venta. 

**Políticas de CloudWatch registros y destinos de entrega**  
Las siguientes secciones de la *Guía del usuario de Amazon CloudWatch Logs* proporcionan las políticas que le permiten trabajar con los registros de CloudWatch Logs y sus destinos de entrega. Si envías los registros a varias ubicaciones, puedes combinar las declaraciones de políticas en una sola política en lugar de crear varias políticas.   
+ [Los registros se envían a CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-CloudWatchLogs)
+ [Registros enviados a Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-S3)
+ [Registros enviados a Firehose](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-Firehose)

**Política de configuración desde la consola**  
Si está configurando la entrega de registros vendidos a través de la consola en lugar de la API AWS CLI, debe tener los siguientes permisos adicionales en su política.

**Política para los inicios de sesión de Vended MediaTailor**  
Para crear, ver o modificar los registros vendidos que se envían MediaTailor, debe tener los siguientes permisos en su política.

Para obtener información sobre cómo añadir permisos y trabajar con políticas, consulte[Identity and Access Management para AWS Elemental MediaTailor](security-iam.md).

## Paso 2: Crear destinos de entrega para MediaTailor los registros
<a name="vended-logs-destinations"></a>

Cree los recursos a los que se enviarán sus registros. Registre el ARN del recurso para usarlo en la configuración de la entrega de registros en un paso posterior.

**CloudWatch Registra el destino de entrega del grupo de registros**  
Utilice una de las siguientes opciones como ayuda para crear un grupo de registros.  
+ Para la consola, consulte [Crear un grupo de CloudWatch registros en Logs en](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#Create-Log-Group) la *Guía del usuario de Amazon CloudWatch Logs*.
+ Para obtener información sobre la API, consulte [CreateLogGroup](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html)la *referencia de la API de Amazon CloudWatch Logs.* 
+ Para SDKs una CLI, consulte [Uso `CreateLogGroup` con un AWS SDK o AWS CLI](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/example_cloudwatch-logs_CreateLogGroup_section.html) en la *Guía del usuario de Amazon CloudWatch Logs*. 

**Destino de entrega de cubos de Amazon S3**  
Utilice una de las siguientes opciones como ayuda para crear un bucket.  
+ Para la consola y la CLI, consulte [Crear un depósito](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) en la *Guía del usuario de Amazon Simple Storage Service*. SDKs
+ Para obtener información sobre la API, consulte [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)la *referencia de la API de Amazon Simple Storage Service*. 

**Destino de entrega de Firehose Stream**  
Para obtener ayuda para crear una transmisión, consulte [Crear una transmisión de Firehose desde la consola](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) en la Guía para desarrolladores de *Amazon Data Firehose*.

## Paso 3: Habilite los registros vendidos para la configuración de reproducción MediaTailor
<a name="vended-logs-config"></a>

Cree o actualice la configuración de reproducción que enviará los registros al destino de entrega que creó en el paso anterior. Registre el nombre de la configuración para utilizarla en la configuración de la entrega de registros en un paso posterior. 
+ Para habilitar los registros vendidos a través de la consola, utilice [Creación de una configuración](configurations-create.md) o [Edición de los ajustes de configuración](configurations-edit.md) edite una configuración para acceder a los ajustes de **registro**. Para ver **las estrategias de registro**, elija **Registros vendidos.**
+ Para habilitar los registros vendidos a través de la API, debes tener una configuración existente. Se utiliza `ConfigureLogsForPlaybackConfiguration` para añadir la estrategia `Vended logs` de registro.

Si utiliza la estrategia de MediaTailor registro antigua de enviar los registros directamente a CloudWatch Logs y desea migrarlos a los registros vendidos, consulte[Migración de la estrategia de registro](vended-logs-migrate.md).

**importante**  
 Si cambias la estrategia de registro de Legacy CloudWatch a la de registros vendidos, MediaTailor realizará este cambio en cuanto guardes las actualizaciones. Dejará de recibir registros hasta que haya configurado completamente el registro vendido.

## Paso 4: Configurar la entrega de registros en Logs CloudWatch
<a name="vended-logs-delivery"></a>

En CloudWatch los registros, debe crear tres elementos para representar las partes de la entrega de registros. Estos elementos se describen en detalle [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html)en la *referencia de la API de Amazon CloudWatch Logs*. Los pasos generales para configurar la entrega con la API CloudWatch Logs son los siguientes. 

**Para configurar la entrega de CloudWatch registros en Logs (API)**

1. Se utiliza [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html)para añadir la fuente de los registros.

   A `DeliverySource` representa la configuración de reproducción que genera los registros. Necesita el nombre de la configuración de reproducción para crear la`DeliverySource`. 

1. Se utiliza [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html)para añadir el destino en el que se escribirán los registros.

   A `DeliveryDestination` representa el destino de entrega. Necesita el ARN del grupo de registros, el depósito o la transmisión para crear el. `DeliveryDestination`

1. [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestinationPolicy.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestinationPolicy.html)Utilícelo si va a entregar registros entre cuentas. 

   Si el destino de entrega está en una cuenta diferente a la de la configuración de reproducción, necesitas una`DeliveryDestinationPolicy`. Esta política permite a CloudWatch Logs entregar registros a`DeliveryDestination`.

1. Se utiliza [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html)para vincular el `DeliverySource` al`DeliveryDestination`.

   A `Delivery` representa la conexión entre el `DeliverySource` y`DeliveryDestination`.

# Migración de su estrategia de AWS Elemental MediaTailor registro
<a name="vended-logs-migrate"></a>

 Si cambias la estrategia de registro de registros heredados CloudWatch a registros vendidos, MediaTailor realizará este cambio en cuanto guardes las actualizaciones. Para evitar interrupciones en el flujo de trabajo de registro, siga los siguientes pasos para migrar su estrategia de registro. 

1. Siga los pasos tal y como se describe en [Uso de registros vendidos](vended-logs.md). Para [Habilita los registros vendidos MediaTailor](vended-logs.md#vended-logs-config) ello, seleccione *ambas* estrategias de registro (**registros vendidos** y **tradicionales CloudWatch**). 

   MediaTailor enviará los registros a través de ambos registros vendidos y directamente a CloudWatch Logs. 

1. Realice los cambios necesarios en su flujo de trabajo que dependan de su estrategia de registro y del destino de entrega.

1. Revise [Habilita los registros vendidos MediaTailor](vended-logs.md#vended-logs-config) y elimine el **legado CloudWatch** de las **estrategias de registro**.

# Escribir AWS Elemental MediaTailor registros directamente en Amazon CloudWatch Logs
<a name="monitoring-cw-logs"></a>

MediaTailor produce registros que contienen información detallada sobre la actividad de la sesión y las interacciones del servidor de decisiones publicitarias, y los escribe en Amazon CloudWatch. Los registros proporcionan una descripción secuencial de la actividad que se produce durante la sesión.

MediaTailor también puede utilizar registros vendidos para mayor flexibilidad en la entrega de registros y precios con descuento por volumen. Para obtener información sobre los registros vendidos, consulte. [Uso de registros vendidos](vended-logs.md)

**Topics**
+ [Permisos para Amazon CloudWatch Logs](monitoring-permissions.md)
+ [Registro «As Run» para AWS Elemental MediaTailor Channel Assembly](as-run-log.md)
+ [AWS Elemental MediaTailor Análisis de registros de ADS en Amazon CloudWatch Logs Insights](monitor-cloudwatch-ads-logs.md)

# Permisos para Amazon CloudWatch Logs
<a name="monitoring-permissions"></a>

Usa AWS Identity and Access Management (IAM) para crear un rol que dé AWS Elemental MediaTailor acceso a Amazon CloudWatch. Debe realizar estos pasos para que se publiquen CloudWatch los registros de su cuenta. CloudWatch publica automáticamente las métricas de tu cuenta.

**Para permitir el MediaTailor acceso a CloudWatch**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación de la consola de IAM, seleccione **Roles** y, a continuación, elija **Crear rol**.

1. Elija el tipo de rol **Otra AWS cuenta**.

1. En el **campo ID de cuenta**, introduce tu ID de AWS cuenta.

1. Seleccione **Require external ID (Requerir ID externo)** y escriba **Midas**. Esta opción agrega automáticamente una condición a la política de confianza que permite al servicio asumir el rol únicamente si la solicitud incluye el `sts:ExternalId` correcto.

1. Elija **Siguiente: permisos**.

1. Añada una política de permisos que especifique qué acciones puede realizar este rol. Seleccione una de las siguientes opciones y después elija **Next: Review (Siguiente: Revisar)**:
   + **CloudWatchLogsFullAccess**para proporcionar acceso completo a Amazon CloudWatch Logs
   + **CloudWatchFullAccess**para proporcionar acceso completo a Amazon CloudWatch

1. En **Nombre de rol**, escriba **MediaTailorLogger** y luego elija **Crear rol**.

1. En la página **Roles**, seleccione el rol que acaba de crear. 

1. Para actualizar la entidad principal, edite la relación de confianza:

   1. En la página **Summary (Resumen)** del rol, elija la pestaña **Trust relationship (Relación de confianza)**.

   1. Elija **Editar relación de confianza**.

   1. En el documento de política, cambia el principal por el MediaTailor servicio. Debería tener un aspecto similar al siguiente:

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

      La política completa debe ser similar a la siguiente:

   1. Elija **Actualizar política de confianza**.

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

El registro *As Run*, del grupo de CloudWatch `MediaTailor/Channel/AsRunLog` registros, muestra información sobre los programas y las pausas publicitarias a medida que se reproducen.

Al crear un canal, el registro As Run está desactivado de forma predeterminada. Con la consola o el AWS Command Line Interface (AWS CLI), puedes activar y desactivar el estado del registro As Run para cada canal de tu cuenta.

Al habilitar el registro As Run, crea MediaTailor automáticamente un rol vinculado al servicio que permite MediaTailor escribir y administrar el registro As Run en tu cuenta de CloudWatch Logs. Para obtener más información acerca de los roles vinculados a servicios, consulte [Uso de roles vinculados a servicios para MediaTailor](using-service-linked-roles.md).

**nota**  
Por el momento, el registro As Run solo admite el programa predeterminado. Por ahora, no es compatible con el AlternateMedia creado por las reglas del programa. Esto significa que actualmente no genera el registro de ejecución para AlternateMedia.

**Topics**
+ [Habilitar el registro As Run](enabling-as-run-log.md)
+ [Deshabilitar el registro de As Run](disabling-as-run-log.md)

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

Para habilitar el registro As Run, especifique el nombre del canal y habilite el tipo de registro As *Run* para ese canal.

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

**Para habilitar el registro As Run al crear un canal**

1. Inicie sesión en Consola de administración de AWS y abra la MediaTailor consola en [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. En el panel de navegación, seleccione **Conjunto** de **canales > Canales**.

1. En la barra de navegación, elija **Crear canal**.

1. En los paneles **Definir los detalles del canal**, **Configurar salidas** y **Control de acceso**, configure el canal como desee.

1. En el panel **de control de acceso**, seleccione **Siguiente**.

1. En el panel de **registro**, en **Tipos de registro**, seleccione **Habilitar como en ejecución** para habilitar el registro en ejecución.

**Para habilitar el registro As Run al actualizar un canal**
**nota**  
Si el canal se está emitiendo actualmente, primero debes detenerlo para poder actualizarlo. Cuando detengas el canal, puedes seleccionar **Acciones** > **Editar** para empezar a actualizar el canal.

1. Inicia sesión en Consola de administración de AWS y abre la MediaTailor consola en [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. En el panel de navegación, seleccione **Conjunto** de **canales > Canales**.

1. Elija el canal que desee actualizar para activar el registro As Run.

1. Elija **Actions** (Acciones) > **Edit** (Editar).

1. En los paneles **Definir los detalles del canal**, **Configurar salidas** y **Control de acceso**, actualice la configuración del canal según lo desee.

1. En el panel **de control de acceso**, seleccione **Siguiente**.

1. En el panel de **registro**, en **Tipos de registro**, seleccione **Habilitar como en ejecución** para habilitar el registro en ejecución.

**Para habilitar el registro As Run desde la pestaña **Registro****
**nota**  
Si el canal se está ejecutando actualmente, debes usar la pestaña **Registro** en lugar de elegir **Acciones** > **Editar** para habilitar el registro En ejecución.

1. Inicie sesión en Consola de administración de AWS y abra la MediaTailor consola en [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. En el panel de navegación, seleccione **Conjunto** de **canales > Canales**.

1. Elija el canal para el que desee habilitar el registro As Run.

1. En la barra de navegación situada debajo del nombre del canal, selecciona **Registro**.

1. En **Registro** > **Tipos de registro**, seleccione **Mientras se ejecuta** para activar el registro Como se ejecuta.

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

**Para habilitar el registro As Run**

Ejecute el [configure-logs-for-channel](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/configure-logs-for-channel.html)comando y especifique los valores adecuados para los parámetros necesarios.

Este ejemplo está formateado para Linux, macOS o Unix y utiliza el carácter de barra invertida (\$1) de continuación de línea para mejorar la legibilidad.

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

Este ejemplo está formateado para Microsoft Windows y utiliza el carácter de continuación de la línea de intercalación (^) para mejorar la legibilidad.

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

Donde:
+ `MyChannel`es el nombre del canal del que eres propietario y para el que deseas habilitar el registro As Run.

Si el comando se ejecuta correctamente, verá un resultado similar al siguiente.

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

------

# Deshabilitar el registro de As Run
<a name="disabling-as-run-log"></a>

Para deshabilitar el registro As Run en un canal que lo tenga activado, especifique el nombre del canal y deshabilite el tipo de registro *As Run* para ese canal.

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

**Para deshabilitar el registro As Run al actualizar un canal**
**nota**  
Si el canal se está emitiendo actualmente, primero debes detenerlo antes de poder actualizarlo. Cuando detengas el canal, puedes seleccionar **Acciones** > **Editar** para empezar a actualizar el canal.

1. Inicia sesión en Consola de administración de AWS y abre la MediaTailor consola en [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. En el panel de navegación, seleccione **Conjunto** de **canales > Canales**.

1. Elija el canal que desee actualizar para activar el registro As Run.

1. Elija **Actions** (Acciones) > **Edit** (Editar).

1. En los paneles **Definir los detalles del canal**, **Configurar salidas** y **Control de acceso**, actualice la configuración del canal según lo desee.

1. En el panel **de control de acceso**, seleccione **Siguiente**.

1. En el panel de **registro**, en **Tipos de registro**, desactive **Activar como en ejecución** para deshabilitar el registro En ejecución.

**Para deshabilitar el registro As Run desde la pestaña **Registro****
**nota**  
Si el canal se está ejecutando actualmente, debes usar la pestaña **Registro** en lugar de elegir **Acciones** > **Editar** para deshabilitar el registro de As Run.

1. Inicie sesión en Consola de administración de AWS y abra la MediaTailor consola en [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. En el panel de navegación, seleccione **Conjunto** de **canales > Canales**.

1. Elija el canal para el que desee deshabilitar el registro As Run.

1. En la barra de navegación situada debajo del nombre del canal, selecciona **Registro**.

1. En **Registro** > **Tipos de registro**, desactive **Al ejecutar** para deshabilitar el registro Como ejecutar.

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

**Para deshabilitar el registro As Run**

Ejecute el [configure-logs-for-channel](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/configure-logs-for-channel.html)comando y especifique los valores adecuados para los parámetros necesarios.

Este ejemplo está formateado para Linux, macOS o Unix y utiliza el carácter de barra invertida (\$1) de continuación de línea para mejorar la legibilidad.

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

Este ejemplo está formateado para Microsoft Windows y utiliza el carácter de continuación de la línea de intercalación (^) para mejorar la legibilidad.

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

Donde:
+ `MyChannel`es el nombre del canal del que eres propietario y para el que deseas deshabilitar el registro As Run.

Si el comando se ejecuta correctamente, verá un resultado similar al siguiente.

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

------

# AWS Elemental MediaTailor Análisis de registros de ADS en Amazon CloudWatch Logs Insights
<a name="monitor-cloudwatch-ads-logs"></a>

Puede ver y consultar los registros del servidor de decisiones AWS Elemental MediaTailor publicitarias (ADS) mediante Amazon CloudWatch Logs Insights. MediaTailor envía los registros de eventos CloudWatch para que se procesen normalmente y se produzcan errores. Los registros se adhieren a un esquema JSON. A través de CloudWatch Logs Insights, puede seleccionar los registros por período de tiempo y, a continuación, ejecutar consultas sobre ellos. 

Para obtener información general, consulte [Analizar los datos de registro con CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html). 

**nota**  
Para acceder a los registros, necesitas permisos para acceder a Amazon CloudWatch. Para obtener instrucciones, consulte [Permisos para Amazon CloudWatch Logs](monitoring-permissions.md). 

**Para ver y consultar los registros de ADS mediante la CloudWatch consola**

1. Abra la CloudWatch consola en[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, en **Logs (Registros)**, elija **Insights (Conocimientos)**.

1. En la barra de búsqueda, escriba y**AdDec**, a continuación, seleccione en la lista desplegable`MediaTailor/AdDecisionServerInteractions`.

1. (Opcional) Ajuste el periodo de tiempo que desea estudiar. 

1. (Opcional) Cambie la consulta en el cuadro de diálogo. Para obtener información general, consulte [Sintaxis de consultas de CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). Para ver ejemplos de consultas de ADS de MediaTailor, consulte [Consultando los registros de ADS](querying-the-ads-logs.md).

1. Elija **Ejecutar consulta**. La consulta puede tardar unos segundos, durante los cuales aparece **Cancel (Cancelar)** en lugar de **Run query (Ejecutar consulta)**. 

1. (Opcional) Para exportar los resultados como archivo CSV, elija **Actions (Acciones)** y, a continuación, elija **Download query results (CSV) [Descargar resultados de consulta (CSV)]**. 

**nota**  
La consola limita la cantidad de registros que devuelve en los resultados de las consultas y que exporta, por lo que, para datos masivos, utilice la API, el AWS Command Line Interface (AWS CLI) o un SDK.

**Topics**
+ [Consultando los registros de ADS](querying-the-ads-logs.md)

# Consultando los registros de ADS
<a name="querying-the-ads-logs"></a>

CloudWatch Logs Insights ofrece un amplio conjunto de opciones para consultar sus registros. Para obtener información detallada sobre la sintaxis de consultas, consulte Sintaxis de [consultas de CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). En esta sección se proporcionan ejemplos de consultas comunes para comenzar a utilizar sus consultas de registros de ADS. Todas las consultas se ejecutan en los registros para la configuración del intervalo de tiempo actual.

La siguiente consulta recupera toda la información de los registros de ADS. 

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

La siguiente consulta recupera todas las solicitudes al ADS. Esta consulta muestra una forma de recuperar el contenido del encabezado de la solicitud para MediaTailor los registros. 

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

La siguiente consulta recupera los anuncios MediaTailor insertados para una sesión determinada.

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

La siguiente consulta recupera el rastreo URLs que realizó la MediaTailor llamada en nombre del jugador.

```
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 siguiente consulta recupera información para una sesión de reproducción específica filtrando los resultados por `sessionId`. 

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

La siguiente consulta recupera información para una única solicitud filtrando los resultados por `requestId`.

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

La siguiente consulta recupera un recuento de entradas de registro para cada tipo de evento registrado.

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

La siguiente consulta recupera el ID de espacio publicitario y la lista de anuncios omitidos para todos los espacios publicitarios que habían omitido anuncios.

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

# Controlar el volumen de registros AWS Elemental MediaTailor
<a name="log-configuration"></a>

MediaTailor Los registros de las sesiones de inserción de anuncios a veces son detallados. Para reducir los costes de registro, puede definir el porcentaje de registros de sesión que se MediaTailor envía a Amazon CloudWatch Logs. Por ejemplo, si tu configuración de reproducción tiene 1000 sesiones de inserción de anuncios y estableces un valor de porcentaje habilitado de`60`, MediaTailor envía los registros de 600 de las sesiones a CloudWatch Logs. MediaTailor decide aleatoriamente para qué sesiones enviar los registros. Si desea ver los registros de una sesión específica, puede utilizar el [modo de registro de depuración](debug-log-mode.md). 

Cuando estableces un porcentaje de registro, crea MediaTailor automáticamente un rol vinculado al servicio que otorga MediaTailor los permisos necesarios para escribir CloudWatch registros en tu cuenta. Para obtener información sobre cómo se MediaTailor utilizan los roles vinculados a un servicio, consulte. [Uso de roles vinculados a servicios para MediaTailor](using-service-linked-roles.md)

## Creación de una configuración de registro
<a name="creating-log-configuration"></a>

Para controlar el porcentaje de registros de sesión que se MediaTailor escriben en los CloudWatch registros, debe crear una *configuración de registro* para la configuración de reproducción. Al crear una configuración de registro, se especifica un *nombre de configuración de reproducción* y un valor *porcentual activado*.

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

**Para crear una configuración de registro para una configuración de reproducción *existente***

1. Inicie sesión en Consola de administración de AWS y abra la MediaTailor consola en [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. En el panel de **configuración** de reproducción, selecciona la configuración de reproducción para la que quieres establecer la configuración de registro.

1. Elija **Edit (Edición de)**.

1. En **Configuración de registro**, especifique un valor **porcentual activado**.

**Para crear una configuración de registro para una *nueva* configuración de reproducción**
+ Siga el procedimiento indicado en [Configuración de registro](configurations-create.md#configurations-log-configurations).

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

**Para crear una configuración de registro para una configuración de reproducción *existente***

Para crear una configuración de registro mediante el AWS CLI, ejecute el comando [configure-logs-for-playback-configuration](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/configure-logs-for-playback-configuration.html) y especifique los valores adecuados para los parámetros necesarios.

Este ejemplo está formateado para Linux, macOS o Unix y utiliza el carácter de barra invertida (\$1) de continuación de línea para mejorar la legibilidad.

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

Este ejemplo está formateado para Microsoft Windows y utiliza el carácter de continuación de la línea de intercalación (^) para mejorar la legibilidad.

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

Donde:
+ `percent-enabled`es el porcentaje de los registros de las sesiones de configuración de reproducción que MediaTailor se envía a Logs. CloudWatch 
+ `playback-configuration-name`es el nombre de la configuración de reproducción para la que se van a establecer los ajustes de configuración del registro.

Si el comando se ejecuta correctamente, verá un resultado similar al siguiente.

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

**Para crear una configuración de registro para una *nueva* configuración de reproducción**
+ Utilice la `configure-logs-for-playback-configuration` opción para el [put-playback-configuration](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/put-playback-configuration.html)comando.

------

## Desactivar una configuración de registro
<a name="deactivating-logging-configuration"></a>

*Después de crear una configuración de registro, no puede eliminarla, solo puede desactivarla.* Para desactivar la configuración de registro, defina el valor del **porcentaje habilitado** en **0** con la consola o la MediaTailor API. Esto desactiva todos los registros de sesión de esa configuración de reproducción.

Si desea eliminar el rol vinculado al servicio que se MediaTailor utiliza para las configuraciones de registro de su cuenta, primero debe desactivar todas las configuraciones de registro. Para obtener información sobre cómo eliminar el rol vinculado al servicio, consulte. [Uso de roles vinculados a servicios para MediaTailor](using-service-linked-roles.md)

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

**Para desactivar la configuración de registro en una configuración de reproducción**

1. Inicie sesión en Consola de administración de AWS y abra la MediaTailor consola en [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. En el panel de **configuración de reproducción**, selecciona la configuración de reproducción en la que quieres desactivar la configuración de registro.

1. Elija **Edit (Edición de)**.

1. En **Configuración de registro**, defina el valor **del porcentaje habilitado** en. `0` Esto desactiva todo el registro de sesiones para esta configuración de reproducción.

1. Seleccione **Guardar**.

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

**Para desactivar una configuración de registro**
+ Establezca el `percent-enabled` valor para `0` usar el comando [configure-logs-for-playback-configuration](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/configure-logs-for-playback-configuration.html).

------

# Filtrar AWS Elemental MediaTailor registros y eventos
<a name="logs-filter"></a>

Los registros emitidos por una configuración de reproducción MediaTailor incluyen información sobre una variedad de actividades que tienen lugar durante la sesión de reproducción. Estas actividades se identifican en el tipo de evento de los registros. Muchos eventos se registran de forma predeterminada. Para ayudar a controlar el coste de los registros en Amazon CloudWatch, puedes especificar los registros que se MediaTailor emiten. 

MediaTailor le proporciona el control del filtrado de registros para que pueda hacer lo siguiente:
+ Especifique los eventos de registro que desea excluir de los registros
+ Habilite el registro de las respuestas sin procesar del servidor de decisiones publicitarias (ADS)

Puede configurar estas preferencias de filtrado de registros de forma independiente para cada sesión de reproducción o de forma predeterminada para todas las sesiones de reproducción si se trata de una configuración de reproducción. 
+ Para filtrar los registros por sesión, incluya los parámetros de consulta en la solicitud de inicialización de la sesión de reproducción.
+ Para filtrar los registros según la configuración de reproducción, utilice la MediaTailor consola o la API para indicar sus preferencias en los ajustes de configuración de reproducción. 

En las siguientes secciones se proporcionan instrucciones para activar el filtrado de registros en las sesiones y las configuraciones de reproducción.

# Filtros de registro por sesión
<a name="logs-filter-session"></a>

Para definir un nivel de detalle de registro personalizado para cada sesión, añada los siguientes parámetros a la solicitud inicial de sesión de reproducción del lado del servidor o del lado del cliente. Añada valores a los parámetros para representar los eventos que desee incluir o excluir, en un formato delimitado por comas:
+ `aws.adsInteractionLogPublishOptInEventTypes`para recibir registros de interacciones específicas con el servidor de decisiones publicitarias (ADS).
+ `aws.adsInteractionLogExcludeEventTypes`para dejar de recibir registros de interacciones de ADS específicas.
+ `aws.manifestServiceLogExcludeEventTypes`para dejar de recibir registros de interacciones específicas del servicio de manifiestos. 

Para obtener una lista de los tipos de registros y eventos que MediaTailor se emiten, consulte [Registros de manifiestos](log-types.md)[Registros de ADS](ads-log-format.md), y[Transcodificar registros](tm-log-format.md).

Si no pasa por ningún parámetro de consulta para filtrar los registros, MediaTailor escribe todos los registros en el destino de entrega. 

**Example inicialización de la sesión del lado del servidor con filtros de registro**  
Para excluir `GENERATED_MANIFEST` `PARSING_ERROR` eventos de los registros de manifiestos y de los registros `MAKING_ADS_REQUEST` de ADS, la solicitud de inicialización de la sesión tendría el siguiente aspecto:  

```
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
```
Para habilitar los registros sin procesar de su ADS, incluya el `RAW_ADS_RESPONSE` valor del `AdsInteractionPublishOptInEventType` parámetro:  

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

**Example inicialización de la sesión del lado del cliente con filtros de registro**  
Para excluir los eventos de registro durante la inicialización de la sesión del lado del cliente, incluya `availSuppression` y registre los parámetros en la solicitud POST del cliente a. MediaTailor Para obtener más información acerca de cómo crear una solicitud de sesión de reproducción del lado del cliente, consulte [Seguimiento de anuncios del lado del cliente](ad-reporting-client-side.md). En el siguiente ejemplo, se excluyen los `PARSING_ERROR` eventos de tus registros de manifiestos `CONFIG_SECURITY_ERROR` y de los registros de ADS. `MAKING_ADS_REQUEST`  

```
POST parent.m3u8
   {
       "adsInteractionLog": {
           ...
           "excludeEventTypes": [
               "MAKING_ADS_REQUEST"
           ]
       },
       "manifestServiceLog": {
           ...
           "excludeEventTypes": [
               "GENERATED_MANIFEST",
               "PARSING_ERROR"
           ]
       },
      "logMode": "DEBUG"
   }
```
 Para habilitar los registros sin procesar de su ADS, incluya el `RAW_ADS_RESPONSE ` valor del `publishOptInEventTypes` parámetro:   

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

# Filtros de registro de configuración por reproducción
<a name="logs-filter-config"></a>

Utilice los ajustes de la configuración de reproducción para definir los tipos de eventos de registro que se MediaTailor emiten de forma predeterminada desde esta configuración de reproducción. MediaTailor utiliza estos ajustes de filtrado de registros predeterminados para todas las sesiones que no incluyen los parámetros de consulta de filtrado en la solicitud de inicio de sesión. 

Puede optar por hacer lo siguiente:
+ Reciba registros de interacciones específicas con el servidor de decisiones publicitarias (ADS).
+ Excluya los registros de interacciones de ADS específicas.
+ Excluya los registros de interacciones específicas del servicio de manifiestos. 

Para establecer estos ajustes desde la MediaTailor consola, consulte[Creación de una configuración](configurations-create.md). Para obtener información MediaTailor sobre la API, consulte [https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PutPlaybackConfiguration.html](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PutPlaybackConfiguration.html)la *referencia AWS Elemental MediaTailor de la API*.

Para obtener una lista de los tipos de registros y eventos que MediaTailor se emiten, consulte [Registros de manifiestos](log-types.md)[Registros de ADS](ads-log-format.md), y[Transcodificar registros](tm-log-format.md).

# Generar registros de AWS Elemental MediaTailor depuración
<a name="debug-log-mode"></a>

Usa los registros de depuración para solucionar problemas relacionados con la inserción de MediaTailor anuncios y las sesiones de reproducción. Para generar registros de depuración, configura el modo de registro para que se depure cuando el reproductor lo solicite. MediaTailor *Para los informes del lado del servidor, configura el modo de registro en la solicitud de reproducción.* *Para los informes del lado del cliente, configure el modo de registro en la solicitud de inicialización de la sesión.* 

Cuando el modo de registro está configurado para depurar, graba todos los tipos de eventos MediaTailor de registro en los registros. CloudWatch Los registros proporcionan información sobre los siguientes eventos. Para obtener una lista completa de los datos generados en los registros de depuración, consulte los campos del [registro de depuración](https://docs.aws.amazon.com/mediatailor/latest/ug/debug-log-mode.html#debug-log-mode-fields).
+ **Interacción de origen**: detalles sobre MediaTailor las interacciones con el servidor de origen. Por ejemplo, la respuesta al manifiesto de origen, el tipo de manifiesto y la URL de origen.
+ **Manifiesto generado**: detalles sobre la respuesta de la sesión de reproducción de MediaTailor. Por ejemplo, el manifiesto que se MediaTailor genera.
+ **Sesión inicializada**: detalles de inicialización de la sesión, como el ID de la sesión.

Para personalizar los tipos de eventos de registro que recibe por sesión, consulte. [Filtrar registros y eventos](logs-filter.md)

## Requisitos previos
<a name="prerequisites"></a>

Para configurar el modo de registro para que se depure, primero debe conceder MediaTailor permiso para enviar los registros CloudWatch, si aún no lo ha hecho. Una vez que hayas otorgado el permiso de MediaTailor acceso CloudWatch, estarás listo para habilitar el modo de registro de depuración. Para obtener información sobre cómo conceder MediaTailor permisos de acceso, CloudWatch consulta [Configuración de permisos para Amazon CloudWatch](https://docs.aws.amazon.com/mediatailor/latest/ug/monitoring-permissions.html).

## ¿Cómo configurar el modo de registro para que depure
<a name="how-to-turn-on-debug-log-mode"></a>

En esta sección se explica cómo configurar el modo de registro para depurar los informes del lado del servidor y del lado del cliente.

### Informes del lado del servidor
<a name="server-side-reporting"></a>

Para los informes del lado del servidor, incluye el parámetro y el valor de la `?aws.logMode=DEBUG` consulta en la solicitud de `GET HTTP` reproducción del reproductor al punto final HLS o DASH. MediaTailor [Para obtener información general sobre los informes del lado del servidor, consulta los informes del lado del servidor.](https://docs.aws.amazon.com/mediatailor/latest/ug/ad-reporting-server-side.html)

**importante**  
El valor `DEBUG` distingue entre mayúsculas y minúsculas.

 Una solicitud de reproducción que incluye `?aws.logMode=DEBUG` tiene el siguiente aspecto:

**Example Solicitud de reproducción a un punto final HLS**  

```
GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.logMode=DEBUG
```
Después de configurar el modo de registro para depurar, le recomendamos que compruebe que la sesión de registro de depuración esté activa. Para comprobar que la sesión de depuración está activa, compruebe si hay CloudWatch registros para el ID de sesión. El ID de sesión se incluye en el punto final de reproducción que se MediaTailor proporciona. Para obtener más información, consulte [Verify that the debug log mode is active for your playback session](#debug-active). 

### Informes del lado del cliente
<a name="client-side-reporting"></a>

Para los informes del lado del cliente, incluya la `logMode` clave y el `DEBUG` valor en el cuerpo de la solicitud de inicialización de la `POST HTTP` sesión del cliente en el punto final /v1/session. MediaTailor [Para obtener información general sobre los informes del lado del cliente, consulte Informes del lado del cliente.](https://docs.aws.amazon.com/mediatailor/latest/ug/ad-reporting-client-side.html)

**importante**  
El valor `DEBUG` distingue entre mayúsculas y minúsculas.

 Después de configurar el modo de registro para depurar, le recomendamos que compruebe que la sesión de depuración esté activa. Para comprobar que la sesión de depuración esté activa, confirme que haya un `SESSION_INITIALIZED` evento asociado al ID de sesión en los registros. CloudWatch El ID de sesión se incluye en el punto final de reproducción que se MediaTailor proporciona. Para obtener más información, consulte [Verify that the debug log mode is active for your playback session](#debug-active). 

## Número máximo de sesiones de depuración activas
<a name="maximum-active-debug-log-sessions"></a>

Puede tener un máximo de 10 sesiones de registro de depuración activas. Cuando el reproductor envía su solicitud de inicialización de sesión o reproducción a MediaTailor, MediaTailor comprueba si se ha alcanzado el límite. Si lo ha hecho, MediaTailor comprueba si hay sesiones obsoletas. Una sesión está obsoleta si no se ha accedido a ella en un período de tiempo determinado. En el caso de las transmisiones en directo, este período de tiempo es de 10 minutos y en el de VOD, de 30 minutos.

Si se ha alcanzado el límite máximo de sesiones de registro de depuración activas, los registros de depuración no se escriben en los CloudWatch registros de la sesión. Si no ves los registros de depuración en CloudWatch los registros de tu sesión, es posible que hayas alcanzado este límite. Para confirmar si se ha alcanzado el límite, consulte[Verify that the debug log mode is active for your playback session](#debug-active). 

## Depurar campos de registro
<a name="debug-log-mode-fields"></a>

 La siguiente tabla muestra los campos del registro de depuración en los que se MediaTailor escribe. CloudWatch 


| Campo | Description (Descripción) | 
| --- | --- | 
| awsAccountId | Tu Cuenta de AWS ID. | 
| customerId | Tu identificador de MediaTailor cliente. | 
| eventTimestamp | La marca de tiempo ISO 8601 asociada al evento del registro de depuración. | 
| eventType | El tipo de evento del registro de depuración. Valores:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/debug-log-mode.html) | 
| originRequestUrl | La URL del servidor de origen que se recupera para esta solicitud. | 
| mediaTailorPath | El MediaTailor punto final al que se llamó, incluidos los parámetros transferidos MediaTailor en la solicitud de manifiesto inicial. | 
| requestId | El ID de una solicitud HTTP específica dirigida a MediaTailor. | 
| responseBody | El manifiesto del cuerpo de la respuesta de MediaTailor. Este es el manifiesto de origen bruto o el manifiesto generado por MediaTailor. | 
| sessionId | El ID de la sesión de reproducción. | 
| sessionType | El tipo de sesión de reproducción. Valores: `HLS`, `DASH` | 

## Lea los registros de depuración
<a name="read-the-debug-logs"></a>

MediaTailor escribe los registros de depuración en Amazon CloudWatch Logs. Se aplican CloudWatch los cargos típicos de Logs. Use CloudWatch Insights para leer los registros de depuración. Para obtener información sobre cómo usar CloudWatch Logs Insights, consulte [Análisis de datos de registro con CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) en la *Guía del usuario de AWS CloudWatch Logs*.

**nota**  
Los registros de depuración pueden tardar unos minutos en CloudWatch aparecer. Si no ve los registros, espere unos minutos e inténtelo de nuevo. Si sigue sin ver los registros, es posible que haya alcanzado el número máximo de sesiones de registro de depuración activas. Para comprobar si este es el caso, ejecuta una CloudWatch consulta para comprobar si se ha inicializado una sesión de depuración para tu sesión de reproducción. Para obtener más información, consulte [Verify that the debug log mode is active for your playback session](#debug-active).

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

 En esta sección se incluyen ejemplos de consultas que puede utilizar para leer los datos del registro de MediaTailor depuración. 

**Example 1: Compruebe que el modo de registro de depuración esté activo para la sesión de reproducción**  

```
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: Vea las respuestas de su origen**  

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

**Example 3: Ver el manifiesto generado MediaTailor por una sesión determinada**  

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

**Example 4: Ver todos los eventos de una determinada `requestId`**  
 Utilice esta consulta para ver el manifiesto de origen y el manifiesto generado por MediaTailor.   

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