

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.

# AWS Elemental MediaTailor Utilización para insertar anuncios
<a name="configurations"></a>

Una configuración es un objeto con el que interactúa en AWS Elemental MediaTailor. La configuración contiene la información de mapeo del servidor de origen y del servidor de decisiones publicitarias (ADS). También puedes definir una reproducción predeterminada MediaTailor para usarla cuando un anuncio no esté disponible o no ocupe todo el espacio disponible para el anuncio.

Si utilizas una red de entrega de contenido (CDN) con MediaTailor, debes configurar las reglas de comportamiento en la CDN antes de añadir la información de la CDN a la configuración. Para obtener más información acerca de la configuración de su CDN, consulte [Uso de una CDN para optimizar la personalización de MediaTailor anuncios y la entrega de contenido](integrating-cdn.md) .

**Topics**
+ [Códecs de audio y vídeo compatibles](#supportedcodecs)
+ [Entender AWS Elemental MediaTailor el comportamiento de inserción de anuncios](ad-behavior.md)
+ [MediaTailor Introducción e implementación de la inserción de anuncios guiada por servidor](server-guided.md)
+ [MediaTailor requisitos de integración del servidor de anuncios](vast.md)
+ [MediaTailor gestión de la configuración de reproducción](working-with-configurations.md)
+ [Integración de una fuente de contenido para la inserción de MediaTailor anuncios](integrating-origin.md)
+ [Integración AWS Elemental MediaTailor con Google Ad Manager](gam-integration.md)
+ [Personalización del comportamiento de las pausas publicitarias con la supresión de las pausas publicitarias](ad-rules.md)
+ [MediaTailor parachoques e inserción](bumpers.md)
+ [MediaTailor preenrollado e inserción](ad-behavior-preroll.md)
+ [MediaTailor pizarra e inserción](slate-management.md)
+ [Búsqueda previa de anuncios](prefetching-ads.md)
+ [Uso de anuncios preacondicionados con AWS Elemental MediaTailor](precondition-ads.md)
+ [MediaTailor variables de anuncios dinámicos para solicitudes de ADS](variables.md)
+ [MediaTailor parámetros de consulta de manifiesto](manifest-query-parameters.md)
+ [Elaboración de informes y datos de seguimiento](ad-reporting.md)
+ [Anuncios superpuestos](overlay-ads.md)
+ [Decoración de ID de anuncio](ad-id-decoration.md)

## Códecs de audio y vídeo compatibles
<a name="supportedcodecs"></a>

MediaTailor admite los siguientes códecs.
+ Códecs de audio:, y mp4a ac-3 ec-3
+ Códecs de vídeo: h.264 (AVC), (), h.265 (HEVC) av01 AV1

# Entender AWS Elemental MediaTailor el comportamiento de inserción de anuncios
<a name="ad-behavior"></a>

AWS Elemental MediaTailor agrupa los anuncios en contenido en directo o de vídeo bajo demanda (VOD) sustituyéndolos o insertándolos en el manifiesto de origen. El hecho de que los anuncios se inserten o se sustituyan depende de cómo estén configuradas las pausas publicitarias en el manifiesto de origen y de si el contenido es de vídeo bajo demanda o en directo. Una pausa publicitaria es el período de tiempo durante la programación en el que se muestran los anuncios, mientras que la disponibilidad de anuncios son las unidades específicas de tiempo publicitario dentro de una pausa publicitaria que pueden rellenarse con anuncios.
+ Con la *sustitución de anuncios*, se MediaTailor sustituyen los segmentos de contenido por anuncios. 
+ Con la *inserción de anuncios*, MediaTailor inserta el contenido del anuncio donde no existen segmentos.

Para obtener información sobre cómo MediaTailor agrupar los anuncios en contenido en directo y bajo demanda, selecciona el tema correspondiente.

**Topics**
+ [Comportamiento de la combinación de anuncios para vídeo a la carta](#ad-behavior-vod)
+ [Comportamiento de creación de anuncios en directo](#ad-behavior-live)

## Comportamiento de la combinación de anuncios para vídeo a la carta
<a name="ad-behavior-vod"></a>

MediaTailor inserta o reemplaza los anuncios en el contenido de VOD en función de cómo estén configurados los marcadores de anuncios en el manifiesto de origen y de si el servidor de decisiones publicitarias (ADS) envía respuestas de VMAP.

Para saber cómo se comportan los anuncios según la configuración de los marcadores, consulte las siguientes secciones.

### Si hay marcadores de anuncios
<a name="markers-present"></a>

AWS Elemental MediaTailor inserta anuncios cuando los marcadores SCTE-35 están presentes en el manifiesto de origen. Los marcadores de anuncios con un `EXT-X-CUE-OUT` valor de `0` duración indican la inserción del anuncio. 

#### Pautas de marcadores de anuncios HLS
<a name="markers-present-hls"></a>

 Siga estas pautas para la señalización SCTE posterior a la publicación y en los pods publicitarios: 

##### Anuncios prepublicados
<a name="post-roll-ad-markers"></a>

Para la publicidad posterior a la emisión HLS, los marcadores `CUE-OUT/IN` deben ir delante del último segmento de contenido. Esto es así porque la especificación HLS requiere que los decoradores de etiquetas se declaren explícitamente antes de un segmento. 

Por ejemplo, fíjese en la siguiente declaración. 

```
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Videocontent.ts
#EXT-X-ENDLIST
```

AWS Elemental MediaTailor inserta un post-roll como el siguiente.

```
#EXTINF:4.000,
Videocontent.ts
#EXT-X-DISCONTINUITY
#EXTINF:3.0,
Adsegment1.ts
#EXTINF:3.0,
Adsegment2.ts
#EXTINF:1.0,
Adsegment3.ts
#EXT-X-ENDLIST
```

**Example 2: Añadir cápsulas**  
 `CUE-OUT/IN`las etiquetas deben estar adjuntas de forma explícita a un segmento. No puede utilizar varias etiquetas `CUE-OUT/IN` consecutivas para imitar el comportamiento de los "ad pods".  
Por ejemplo, la siguiente declaración es un uso válido de `CUE-OUT/IN` para representar un pod de anuncios.  

```
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Somecontent1.ts
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Somecontent2.ts
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Videocontent.ts
```
La declaración anterior genera un resultado similar al siguiente:   

```
Ad 1
Somecontent.ts
Ad 2
Somecontent2.ts
Videocontent.ts
Post-Roll Ad 3
```
La siguiente declaración no es válida.  

```
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Videocontent.ts
```

### Si no hay marcadores de anuncios
<a name="no-markers"></a>

Los marcadores de anuncios son la forma recomendada de señalar las pausas publicitarias en un manifiesto. Sin embargo, los marcadores de anuncios no son obligatorios. Si el manifiesto no contiene marcadores de anuncios para DASH o HLS, MediaTailor realiza una sola llamada al ADS y crea pausas publicitarias en función de la respuesta:
+ Si el ADS envía una respuesta VAST, MediaTailor inserta todos los anuncios de la respuesta en una pausa publicitaria al principio del manifiesto. Los anuncios se insertan antes de la emisión del contenido.
+ Si el ADS envía una respuesta de VMAP, MediaTailor utiliza las compensaciones de las pausas publicitarias para crear pausas e insertarlas a lo largo del manifiesto en los momentos especificados (antes, a la mitad o después de la publicación). MediaTailor Utiliza todos los anuncios de cada pausa publicitaria de la respuesta de VMAP para cada pausa publicitaria del manifiesto. 
**nota**  
Cuando un segmento se solapa con un punto de inserción con VMAP para contenido VOD, MediaTailor redondea a la baja al punto de inserción más cercano. 
**sugerencia**  
Si desea crear espacios en mitad de los cortes publicitarios, pero su ADS no admite VMAP, asegúrese de que haya marcadores de espacio publicitario en el manifiesto. MediaTailor inserta anuncios en los marcadores, tal y como se describe en las secciones siguientes.

**nota**  
En el caso de los métodos de inserción de anuncios guiados por el servidor, MediaTailor inserta los anuncios prepublicados en la parte superior del manifiesto y el jugador los reproduce antes que otros tipos de anuncios.

## Comportamiento de creación de anuncios en directo
<a name="ad-behavior-live"></a>

En las transmisiones en directo, AWS Elemental MediaTailor siempre reemplaza los anuncios, manteniendo el tiempo total entre los marcadores de anuncios lo más cerca posible. Cuando los marcadores de anuncios incluyen el `DURATION` atributo, MediaTailor utiliza el valor para determinar la duración de la pausa publicitaria. En los flujos de trabajo activos, cada `CUE-OUT` indicador debe tener una duración o un `CUE-IN` indicador coincidente. 

MediaTailor reemplaza los anuncios del contenido en vivo de HLS y DASH. Para obtener información sobre cómo se MediaTailor calcula la ubicación y el tiempo de las pausas publicitarias, consulta [Marcadores de anuncios compatibles con HLS](hls-ad-markers.md) y[Marcadores de anuncios de DASH](dash-ad-markers.md). 

### Selección y reemplazo de anuncios
<a name="ad-behavior-live-ad-selection"></a>

AWS Elemental MediaTailor incluye los anuncios de la respuesta VAST del servidor de decisiones publicitarias (ADS) de la siguiente manera: 
+ Si se especifica una duración, MediaTailor selecciona un conjunto de anuncios que se ajusten a la duración y los incluye. 
+ Si no se especifica una duración, MediaTailor reproduce tantos anuncios como sea posible hasta que encuentre un marcador publicitario que indique que se ha vuelto al contenido principal.

AWS Elemental MediaTailor cumple con las siguientes pautas al reemplazar los anuncios activos: 
+ MediaTailor intenta reproducir anuncios completos, sin recortes ni truncamientos.
+ Siempre que MediaTailor encuentre un marcador publicitario que indique el final de la pausa publicitaria, volverá al contenido subyacente. Esto puede hacer que se acorte un anuncio que se está reproduciendo actualmente. 
+ Al final de la duración, MediaTailor vuelve al contenido subyacente.
+ Si MediaTailor se quedan sin anuncios para reproducir durante una pausa publicitaria, se reproduce la lista, si hay alguna configurada, o se reanuda la reproducción de la transmisión de contenido subyacente. Esto suele ocurrir cuando no hay suficientes anuncios transcodificados para completar la duración del corte publicitario. 

  
**sugerencia**  
Puede definir el límite del tiempo de anuncio sin rellenar permitido en un corte publicitario con la configuración del umbral de personalización. Para obtener más información, consulta la [PlaybackConfiguration referencia](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PutPlaybackConfiguration.html#mediatailor-PutPlaybackConfiguration-request-PersonalizationThresholdSeconds).

### Versión previa en directo para la inserción de anuncios guiada por el servidor
<a name="ad-behavior-live-preroll-sgai"></a>

La versión previa en directo funciona de forma diferente en los métodos de inserción de anuncios guiados en el servidor que en la inserción de anuncios en el servidor:

Inserción de anuncios en el lado del servidor (modo agrupado)  
Los anuncios preliminares sustituyen parte del contenido en directo al principio de la sesión de cada espectador. Cada espectador ve la versión preliminar en distintos momentos en función del momento en que se una a la retransmisión.

Métodos de inserción de anuncios guiados por el servidor  
MediaTailor coloca una etiqueta de intervalo de fechas previo a la publicación en la parte superior de todos los manifiestos multimedia con atributos. `CUE="PRE,ONCE"` Esto hace que los jugadores soliciten y reproduzcan los anuncios previos a la tirada una vez al principio de la reproducción, a pesar de compartir el mismo manifiesto no personalizado.

**Requisitos de configuración:**
+ **Servidor de toma de decisiones sobre anuncios activos antes de la tirada:** configura un terminal VAST para los anuncios previos a la tirada (puede ser diferente de los anuncios a mitad de tirada)
+ Duración **máxima permitida antes de la tirada: establece la duración** máxima de los anuncios previos a la tirada (opcional; si se omite, se utilizarán todos los anuncios devueltos)

**Implementación técnica:**
+ Usos de etiquetas de rango de fechas previas a la publicación (época de `START-DATE="1970-01-01T00:00:00.000Z"` Unix)
+ Las solicitudes de listas de activos para la preinscripción utilizan el servidor de decisiones publicitarias previo a la tirada configurado en lugar del ADS normal
+ Los jugadores identifican las solicitudes previas a la tirada a través de los datos de `availId="aws-mediatailor-preroll-1"` la lista de activos

**importante**  
En el caso de las retransmisiones en directo, los anuncios previos a la tirada cubren el contenido en lugar de retrasarlo. Es posible que las versiones futuras admitan el modo de retraso del contenido mediante opciones de configuración adicionales.

**nota**  
El comportamiento previo a la publicación varía entre el contenido en directo y el contenido a la carta para la inserción de anuncios guiada por el servidor. El contenido en directo requiere una configuración previa explícita, mientras que el contenido de VOD incluye la prepublicación de forma predeterminada mediante el servidor de toma de decisiones publicitarias normal.

### Ejemplos
<a name="ad-behavior-live-examples"></a>
+ Si la pausa publicitaria tiene una duración establecida en 70 segundos y la respuesta de ADS contiene dos anuncios de 40 segundos, se AWS Elemental MediaTailor reproduce uno de los anuncios de 40 segundos. En el tiempo restante, cambia a la claqueta configurada o al contenido subyacente. En cualquier momento durante este proceso, si MediaTailor encuentra un indicador cue-in, regresa inmediatamente al contenido subyacente. 
+ Si la pausa publicitaria tiene una duración establecida en 30 segundos y el anuncio más corto proporcionado por la respuesta de ADS es de 40 segundos, no se MediaTailor reproduce ningún anuncio. Si hay una lista de anuncios configurada, la MediaTailor reproduce durante 30 segundos o hasta que aparezca un indicador de entrada. De lo contrario, MediaTailor reproduce el contenido subyacente.

# MediaTailor Introducción e implementación de la inserción de anuncios guiada por servidor
<a name="server-guided"></a>

AWS Elemental MediaTailor La inserción de anuncios guiada por el servidor (SGAI) ofrece una alternativa a la inserción de anuncios en el servidor, ya que hace referencia a los anuncios como listas de reproducción independientes en lugar de agruparlos directamente en las listas de reproducción multimedia. Este enfoque mejora el rendimiento gracias a los manifiestos que se pueden almacenar en caché y permite una mayor escalabilidad.

Para obtener información sobre cómo utilizar la inserción de anuncios guiada por el servidor con MediaTailor, elige el tema correspondiente de la siguiente lista.

## Actívala en la configuración de reproducción
<a name="enable-in-config"></a>

Para que los reproductores puedan utilizar la inserción de anuncios guiada por el servidor, debes `Insertion Mode` configurarla `PLAYER_SELECT` en la configuración de MediaTailor reproducción. Esto permite a los jugadores seleccionar la inserción de anuncios agrupados o guiados en el momento de inicializar la sesión.

## Crea una sesión guiada por el servidor
<a name="create-guided-session"></a>

Al crear sesiones de reproducción, elija el modo guiado. La forma de hacerlo depende de si los jugadores utilizan sesiones implícitas o explícitas.

### Sesiones guiadas por el servidor creadas implícitamente
<a name="create-implicit-guided-session"></a>

Añádalo `aws.insertionMode=GUIDED` a la solicitud de lista de reproducción multivariante del HLS. Ejemplo:

```
playback-endpoint/v1/master/hashed-account-id/origin-id/index.m3u8?aws.insertionMode=GUIDED
```

Donde:
+ `playback-endpoint` es el punto de enlace de reproducción único que generó AWS Elemental MediaTailor cuando creó la configuración. 

  Ejemplo

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com
  ```
+ `hashed-account-id`es tu ID. Cuenta de AWS 

  Ejemplo

  ```
  777788889999
  ```
+ `origin-id` es el nombre que asignó al crear la configuración. 

  Ejemplo

  ```
  myOrigin
  ```
+ `index.m3u8`o es el nombre del manifiesto de la secuencia de pruebas más su extensión de archivo. Defina esto de tal forma que pueda obtener un manifiesto totalmente identificado cuando lo añada al origen de contenido de vídeo que configuró en [Paso 4: Crear una configuración](getting-started-ad-insertion.md#getting-started-add-mapping). 

Utilizando los valores de los ejemplos anteriores, los valores completos URLs son los siguientes.
+ Ejemplo:

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/master/777788889999/myOrigin/index.m3u8?aws.insertionMode=GUIDED
  ```

### Sesiones guiadas por el servidor creadas de forma explícita
<a name="create-explicit-guided-session"></a>

`insertionMode=GUIDED`Añádalos a los metadatos JSON que el reproductor envía en HTTP `POST` al punto final del prefijo de inicialización de la sesión de la MediaTailor configuración.

En el siguiente ejemplo, se muestra la estructura de los metadatos de JSON:

```
{
  # other keys, e.g. "adsParams"
  "insertionMode": "GUIDED"       # this can be either GUIDED or STITCHED
}
```

Con estos metadatos de inicialización, la sesión de reproducción utilizará la inserción de anuncios guiada por el servidor.

# Seguimiento de anuncios con SGAI
<a name="sgai-ad-tracking"></a>

SGAI admite el seguimiento de anuncios tanto del lado del servidor como del lado del cliente. El modo de generación de informes se establece al inicializar la sesión. El modo no puede cambiar durante la sesión.

Seguimiento del lado del servidor (predeterminado)  
MediaTailor activa balizas VAST automáticamente cuando el jugador solicita segmentos de anuncios. Los anuncios URIs de la lista de activos contienen metadatos de balizas cifrados (`awsBeaconData`,`awsBeaconDomain`,`awsConfigurationName`). El jugador debe admitir la sustitución de `#EXT-X-DEFINE:QUERYPARAM` variables por HLS. La respuesta a la lista de activos no incluye ninguna `TRACKING` sección.  
Para obtener más información sobre cómo funciona la baliza SGAI del lado del servidor, consulte. [Seguimiento del lado del servidor con inserción de anuncios guiada por el servidor (SGAI)](ad-reporting-server-side-sgai.md)

Seguimiento del lado del cliente  
`aws.reportingMode=CLIENT`Añádalo a su solicitud de inicialización de sesión. La respuesta de la lista de activos incluye una `TRACKING` sección con una baliza URLs que el reproductor activa durante la reproducción del anuncio. El punto final de la `GetTracking` API *no* se utiliza para las sesiones de SGAI. En cambio, cada respuesta a la lista de activos incluye directamente los datos de seguimiento. Los datos de seguimiento utilizan el mismo esquema JSON que la respuesta de seguimiento de la inserción de anuncios en el servidor (SSAI).  
Para obtener más información, consulte [Inserción de anuncios guiada por el servidor](ad-reporting-client-side.md#ad-reporting-client-side-best-practices-sgai).

# Búsqueda previa guiada con palpitaciones manifiestas
<a name="sgai-guided-prefetch"></a>

Para las transmisiones de SGAI en directo, puedes habilitar la búsqueda previa de anuncios basada en manifiestos añadiendo a tu solicitud de inicialización de sesión: `aws.guidedPrefetchMode=MANIFEST`

```
https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/master/777788889999/myOrigin/index.m3u8?aws.insertionMode=GUIDED&aws.guidedPrefetchMode=MANIFEST
```

Cuando está habilitada, MediaTailor añade un identificador de sesión (`?aws.sessionId=<id>`) como parámetro de consulta a cada URL del manifiesto multimedia intersticial () de la lista de reproducción multivariante. `/v1/i-media` Cada vez que el reproductor actualiza un manifiesto multimedia, la solicitud llega MediaTailor con el identificador de sesión, que se utiliza para poner en cola las solicitudes de captura previa para las MediaTailor próximas pausas publicitarias.
+ El `aws.guidedPrefetchMode` parámetro acepta dos valores: `MANIFEST` (activado) y `OFF` (desactivado, predeterminado).
+ El modo de captura previa guiada solo es válido para las sesiones SGAI. Si se utiliza con sesiones cosidas, se produce un error.
+ DASH aún no admite el modo de captura previa guiada.
+ La captura previa guiada es independiente del modo de generación de informes: las balizas se disparan en el momento de la reproducción, no en el momento de la captura previa.
+ **No almacene en caché los manifiestos de i-media en su CDN cuando utilice la captura previa guiada.** El mecanismo de captura previa depende de que las solicitudes de actualización del manifiesto del reproductor lleguen directamente. MediaTailor Si tu CDN almacena en caché `/v1/i-media` las respuestas, MediaTailor no recibe las solicitudes de latidos y no puede activar la captura previa.

# MediaTailor matriz de compatibilidad de funciones de inserción de anuncios guiadas por servidor
<a name="sgai-feature-compatibility"></a>

AWS Elemental MediaTailor ofrece dos métodos de inserción de anuncios con diferentes funciones compatibles. La inserción de anuncios guiada por el servidor funciona de forma diferente a la inserción de anuncios en el servidor, lo que afecta a la compatibilidad con algunas funciones. MediaTailor Usa esta tabla para saber qué funciones funcionan con cada método de inserción de anuncios.


**Compatibilidad de funciones por método de inserción de anuncios**  

| Característica | Inserción de anuncios en el lado del servidor (SSAI) | Inserción de anuncios guiada por el servidor (SGAI) | 
| --- | --- | --- | 
| Búsqueda previa de anuncios | ✓ Compatible | No se admite todavía | 
| Supresión de anuncios | ✓ Compatible | No aplicable | 
| Comportamiento del anuncio previo a la publicación | Controlado por configuración MediaTailor  | Controlado por MediaTailor configuración | 
| Seguimiento de anuncios del lado del cliente | Utiliza la API GetTracking  | Usa TRACKING la sección en la lista de activos (no se usa la GetTracking API) | 
| Seguimiento de anuncios del lado del servidor | ✓ Compatible: las balizas se activan en función de /v1/segment las solicitudes que utilizan el ID de sesión | ✓ Compatible (solo con HLS): utiliza balizas sin sesión con datos de baliza cifrados integrados en el anuncio. URIs \$1EXT-X-DEFINE:QUERYPARAM Requiere HLS v11 o posterior. Aún no se admite DASH. | 
| Decoración Ad-ID | ✓ Compatible | ✗ No compatible | 

## Detalles de compatibilidad
<a name="compatibility-details"></a>

### Búsqueda previa de anuncios
<a name="prefetch-compatibility"></a>

Actualmente, no se admite la captura previa de anuncios.

### Supresión de anuncios
<a name="prefetch-compatibility"></a>

Los métodos de inserción de anuncios guiados por el servidor no admiten la supresión de anuncios porque los jugadores solo buscan los anuncios a los que van a reproducir. 

### Comportamiento previo a la publicación de anuncios
<a name="preroll-compatibility"></a>

El horario de prepublicación de los anuncios funciona de forma diferente según los métodos de inserción:
+ **Inserción de anuncios en el servidor:** MediaTailor controla cuándo se reproducen los anuncios anticipados en función de los ajustes de configuración
+ **Inserción de anuncios guiada por el servidor:** MediaTailor inserta los anuncios prepublicados en la parte superior del manifiesto. El reproductor muestra primero estos anuncios y, a continuación, inicia el contenido

### Seguimiento de anuncios
<a name="tracking-compatibility"></a>

El **seguimiento por parte del cliente** utiliza diferentes mecanismos en función del método de inserción de anuncios:
+ **Inserción de anuncios en el servidor (SSAI)**: utiliza el punto final de la API `GetTracking`
+ **Inserción de anuncios guiada por el servidor (SGAI):** MediaTailor proporciona información de seguimiento en la sección de cada respuesta a la `TRACKING` lista de activos. No se utiliza el punto final `GetTracking` de la API. La respuesta de inicialización de la sesión no incluye un`trackingUrl`.

El **seguimiento del lado del servidor** también difiere entre los métodos:
+ **Inserción de anuncios en el servidor (SSAI):** MediaTailor activa balizas cuando el jugador busca segmentos de anuncios agrupados utilizando el ID de sesión. `/v1/segment/`
+ **Inserción de anuncios guiada por el servidor (SGAI**): utiliza balizas sin sesión. MediaTailor MediaTailor incrusta datos de baliza cifrados (`awsBeaconData`,`awsBeaconDomain`,`awsConfigurationName`) en el manifiesto publicitario que devuelve en la lista de activos. URIs El manifiesto publicitario utiliza `#EXT-X-DEFINE:QUERYPARAM` etiquetas para que el jugador sustituya estos valores en segmentos. URLs Cuando el reproductor solicita cada segmento de anuncio, MediaTailor descifra los datos, activa la baliza correspondiente y redirige al segmento de contenido. Cuando los informes del lado del servidor están activos, MediaTailor omite la `TRACKING` sección de la respuesta a la lista de activos. Para obtener más información, consulte [Seguimiento del lado del servidor con inserción de anuncios guiada por el servidor (SGAI)](ad-reporting-server-side-sgai.md).

### Decoración de identificación publicitaria
<a name="ad-id-compatibility"></a>

La decoración de anuncios no es compatible con la inserción de anuncios guiada por el servidor porque los campos que rellenan X-AD-CREATIVE-SIGNALING los encabezados solo se conocen cuando se consulta la lista de activos, no cuando se escribe el manifiesto.

# MediaTailor configuración de inserción de anuncios guiada por servidor para transmisiones en directo
<a name="sgai-live-configuration"></a>

AWS Elemental MediaTailor La inserción de anuncios para contenido en directo guiada por el servidor ofrece importantes ventajas de rendimiento gracias a los manifiestos que se pueden almacenar en caché. La configuración del SGAI para el contenido en directo utiliza los mismos parámetros básicos que el VOD, con consideraciones específicas en relación con las características de la transmisión en directo y el procesamiento en tiempo real.

## Requisitos para la SGAI en directo
<a name="sgai-live-requirements"></a>

Antes de activar la SGAI para el contenido en directo, asegúrate de contar con lo siguiente:
+ Tu emisión en directo incluye marcadores DATERANGE con el formato correcto
+ La duración de las pausas publicitarias es uniforme y predecible
+ Su CDN está configurada para almacenar en caché los manifiestos de la SGAI de forma adecuada
+ Los reproductores admiten flujos de trabajo de inserción de anuncios guiados por el servidor
+ Tu servidor de decisiones publicitarias puede gestionar las solicitudes de contenido en directo en tiempo real

### Requisitos de los jugadores
<a name="sgai-live-player-integration"></a>

Los jugadores deben estar configurados para gestionar correctamente los manifiestos en directo de la SGAI:
+ Support para flujos de trabajo de inserción de anuncios guiados por el servidor
+ Capacidad para procesar la guía de inserción de anuncios a partir de manifiestos
+ Manejo adecuado de la sincronización y temporización de las retransmisiones en directo
+ Para contenido HLS: Support para HLS versión 8 y EXT-X-DATERANGE con el atributo CLASS. Versión 11 para balizamiento del lado del servidor.
+ Para el contenido HLS: soporte para la sustitución de variables EXT-X-DEFINE

## Configuración de reproducción en directo
<a name="sgai-live-playback-config"></a>

Para habilitar la SGAI para el contenido en directo, cree una configuración de reproducción que tenga los siguientes ajustes:

**Example Configuración de reproducción en directo SGAI**  

```
{
  "Name": "LiveSGAIConfig",
  "VideoContentSourceUrl": "https://your-live-origin.com/live/stream.m3u8",
  "AdDecisionServerUrl": "https://your-ads.com/ads",
  "PersonalizationThresholdSeconds": 1,
  "InsertionMode": "PLAYER_SELECT"
}
```

Las siguientes son consideraciones clave para la configuración de la SGAI en directo:

`VideoContentSourceUrl`  
Debe apuntar a una transmisión HLS en directo con marcadores SCTE-35 DATERANGE correctamente formateados. La transmisión debe mantener la duración de los segmentos y las variantes de velocidad de bits consistentes.

## Solicitudes de manifiesto en directo de la SGAI
<a name="sgai-live-manifest-requests"></a>

Los manifiestos activos de la SGAI utilizan el mismo patrón de URL que la inserción de anuncios tradicional:

```
https://your-config.mediatailor.region.amazonaws.com/v1/master/config-name/manifest.m3u8?aws.insertionMode=GUIDED
```

## Búsqueda previa basada en manifiestos para SGAI en vivo
<a name="sgai-live-guided-prefetch"></a>

En el caso de los flujos de trabajo de SGAI en tiempo real, puedes activar la captura previa basada en manifiestos para reducir la latencia del relleno de anuncios. Añade lo siguiente a la solicitud de manifiesto: `aws.guidedPrefetchMode=MANIFEST`

```
https://your-config.mediatailor.region.amazonaws.com/v1/master/config-name/manifest.m3u8?aws.insertionMode=GUIDED&aws.guidedPrefetchMode=MANIFEST
```

Cuando está habilitada, MediaTailor agrega un identificador de sesión (`?aws.sessionId=<id>`) como parámetro de consulta a cada URL del manifiesto multimedia intersticial (`/v1/i-media`) de la lista de reproducción multivariante. Cada vez que el reproductor actualiza un manifiesto de i-media, la solicitud recibe el identificador de sesión, que se MediaTailor MediaTailor utiliza para identificar la sesión y poner en cola las solicitudes de captura previa para las próximas pausas publicitarias.

**importante**  
**No guardes en caché los manifiestos multimedia en tu CDN cuando utilices la captura previa guiada.** El mecanismo de captura previa depende de que las solicitudes de actualización del manifiesto del reproductor lleguen directamente. MediaTailor Si tu CDN almacena en caché y publica `/v1/i-media` las respuestas, no recibe las solicitudes de latidos y MediaTailor no puede activar la captura previa. Configura tu CDN para que transfiera las `/v1/i-media/*` solicitudes hasta MediaTailor que esté en uso. `aws.guidedPrefetchMode=MANIFEST`

La captura previa guiada es independiente del modo de generación de informes. Tanto si utilizas el seguimiento del lado del servidor (predeterminado) como del lado del cliente (), las balizas se activan `aws.reportingMode=CLIENT` en el momento de la reproducción, no cuando los anuncios están precargados. Para obtener información general sobre cómo funciona la captura previa de anuncios, consulte. MediaTailor [Búsqueda previa de anuncios](prefetching-ads.md)

## Probando la configuración en vivo de SGAI
<a name="sgai-live-testing"></a>

Verifique su configuración de SGAI en vivo con estos pasos de validación:

1. **Pruebe la generación de manifiestos**

   Solicita la URL del manifiesto activo de la SGAI y verifica que devuelva contenido que se pueda almacenar en caché con las instrucciones de inserción de anuncios adecuadas.

1. **Verifica el almacenamiento en caché de la CDN**

   Compruebe que su CDN almacena en caché los manifiestos de la SGAI de acuerdo con los valores TTL configurados.

1. **Pruebe la inserción de anuncios**

   Comprueba que los jugadores pueden insertar anuncios correctamente siguiendo las instrucciones que se proporcionan en los manifiestos de la SGAI.

1. **Supervisa el rendimiento**

   Utilice CloudWatch las métricas para verificar la reducción de la carga de origen y la mejora de las tasas de aciertos de la memoria caché.

# MediaTailor configuración de inserción de anuncios guiada por servidor para contenido VOD
<a name="sgai-vod-configuration"></a>

AWS Elemental MediaTailor La inserción de anuncios para contenido de VOD guiada por el servidor ofrece importantes ventajas de rendimiento gracias a la alta capacidad de almacenamiento en caché de los manifiestos y a la reducción del procesamiento del servidor. La configuración de SGAI para el contenido de VOD aprovecha la naturaleza estática de los video-on-demand activos para maximizar la eficiencia del almacenamiento en caché y minimizar las solicitudes de origen, lo que lo hace ideal para bibliotecas de contenido de gran tamaño con patrones de visualización repetidos.

## Requisitos para el VOD SGAI
<a name="sgai-vod-requirements"></a>

Antes de activar la SGAI para el contenido de VOD, asegúrese de contar con lo siguiente:
+ Su contenido de VOD incluye marcadores de anuncios con el formato correcto (SCTE-35 o metadatos temporizados)
+ El contenido se almacena en un origen fiable con una disponibilidad constante
+ Su CDN está configurada para almacenar en caché los manifiestos de SGAI con los valores TTL adecuados
+ Los reproductores admiten flujos de trabajo de inserción de anuncios guiados por el servidor
+ Tu servidor de decisiones publicitarias puede gestionar la segmentación y los metadatos específicos de VoD

### Requisitos de los jugadores
<a name="sgai-vod-player-requirements"></a>

Los reproductores deben estar configurados para gestionar los manifiestos de VOD de la SGAI y la inserción de anuncios:
+ Support para flujos de trabajo de inserción de anuncios guiados por el servidor
+ Capacidad para procesar la guía de inserción de anuncios a partir de los manifiestos de VOD
+ Support para la inserción de anuncios en el lado del cliente durante la reproducción a la carta
+ Gestión adecuada de las operaciones de búsqueda en las pausas publicitarias
+ Support para el seguimiento de la duración y la posición del contenido

## Configuración de reproducción VOD
<a name="sgai-vod-playback-config"></a>

Para habilitar la SGAI para el contenido de VOD, cree una configuración de reproducción que tenga los siguientes ajustes:

**Example Configuración de reproducción SGAI VOD**  

```
{
  "Name": "VODSGAIConfig",
  "VideoContentSourceUrl": "https://your-vod-origin.com/content/",
  "AdDecisionServerUrl": "https://your-ads.com/ads",
  "PersonalizationThresholdSeconds": 5,
  "InsertionMode": "PLAYER_SELECT"
}
```

Las siguientes son consideraciones clave para la configuración de VOD SGAI:

`VideoContentSourceUrl`  
Debe apuntar a su biblioteca de contenido de VOD con patrones de URL consistentes. Asegúrese de que el origen pueda gestionar el volumen de solicitudes esperado y ofrezca una entrega de contenido fiable.

`ConfigurationAliases`  
Incluye parámetros específicos de VoD, como la duración del contenido, el género o la información sobre la serie, que se puedan utilizar para la segmentación de los anuncios sin que ello afecte a la capacidad de almacenamiento en caché de los manifiestos.

`ManifestProcessingRules`  
Activa el paso a través de los marcadores de anuncios para conservar la información sobre la temporización del contenido original, lo que es especialmente importante en el caso del contenido de VOD con posiciones predefinidas de las pausas publicitarias.

## Solicitudes de manifiestos VOD de SGAI
<a name="sgai-vod-manifest-requests"></a>

Los manifiestos VOD de SGAI utilizan el mismo patrón de URL que los anuncios VOD tradicionales. 

```
https://your-config.mediatailor.region.amazonaws.com/v1/master/config-name/content-path/manifest.m3u8?aws.insertionMode=GUIDED
```

## Segmentación de anuncios específica para VOD
<a name="sgai-vod-ad-targeting"></a>

El contenido de VOD ofrece oportunidades únicas de segmentación de anuncios:

### Segmentación por metadatos de contenido
<a name="sgai-vod-content-metadata"></a>

Aproveche los metadatos del contenido de VOD para mejorar la segmentación de los anuncios:
+ **Género y categoría:** segmenta los anuncios en función del tipo de contenido (drama, comedia, documental)
+ **Clasificación del contenido:** asegúrate de que el contenido de los anuncios sea apropiado para la edad (clasificaciones G, PG, R)
+ **Serie y temporada: segmenta** los anuncios según la continuidad de la serie o el contenido relacionado
+ **Fecha de lanzamiento:** segmenta en función de la antigüedad del contenido (nuevos lanzamientos frente al contenido del catálogo)
+ **Duración del contenido:** ajusta la carga de anuncios en función de la longitud total del contenido

### Visualización de la segmentación contextual
<a name="sgai-vod-viewing-context"></a>

Los patrones de visualización de VOD permiten la segmentación contextual de los anuncios:
+ **Hora del día: segmenta** los anuncios en función del momento en que se esté viendo el contenido
+ **Maratones:** ajusta la frecuencia de los anuncios para que los usuarios vean varios episodios
+ **Tasa de finalización:** segmentación basada en los patrones históricos de finalización del contenido del usuario
+ **Tipo de dispositivo:** optimice los formatos de anuncios para el dispositivo de visualización (TV, móvil, tableta)

## Probando la configuración de VOD de SGAI
<a name="sgai-vod-testing"></a>

Verifique su configuración de VOD de SGAI con estos pasos de validación:

1. **Pruebe la generación de manifiestos**

   Solicita el manifiesto VOD de SGAI URLs para distintos tipos de contenido y comprueba que devuelvan contenido que se pueda almacenar en caché siguiendo las instrucciones de inserción de anuncios adecuadas.

1. **Verifica el almacenamiento en caché de la CDN**

   Compruebe que su CDN almacene en caché los manifiestos de la SGAI de acuerdo con los valores TTL configurados y que logre altas tasas de aciertos de caché.

1. **Prueba la inserción de anuncios**

   Comprueba que los jugadores pueden insertar anuncios correctamente siguiendo las instrucciones que se proporcionan en los manifiestos de la SGAI para distintos tipos de contenido de VOD.

1. **Pruebe las operaciones de búsqueda**

   Comprueba que la búsqueda en el contenido de VOD funciona correctamente en las pausas publicitarias y mantiene la posición de reproducción adecuada.

1. **Supervisa el rendimiento**

   Utiliza CloudWatch las métricas para comprobar la reducción de la carga de origen, la mejora de las tasas de aciertos de la caché y el éxito de las tasas de inserción de anuncios.

### Escenarios de prueba clave
<a name="sgai-vod-testing-scenarios"></a>

Pruebe estos escenarios de VOD específicos:
+ **Contenido popular:** compruebe las altas tasas de aciertos de caché de los activos de VOD a los que se accede con frecuencia
+ **Contenido de formato largo:** pruebe la inserción de anuncios en películas o episodios largos con varias pausas publicitarias
+ **Contenido de la serie:** verifica que la segmentación de los anuncios sea coherente en todos los episodios de una serie
+ **Diferentes géneros:** prueba la segmentación de los anuncios en función del género y los metadatos del contenido

## Mejores prácticas de optimización de VOD y SGAI
<a name="sgai-vod-optimization"></a>

Optimice su implementación de VOD de SGAI para obtener el máximo rendimiento:

### Optimización de caché
<a name="sgai-vod-cache-optimization"></a>
+ **Maximice los valores TTL:** utilice duraciones de caché más largas para los manifiestos de VOD, ya que el contenido no cambia
+ **Minimice las claves de caché:** reduzca las variaciones de las claves de caché para mejorar las tasas de aciertos
+ **Contenido popular previo al calentamiento: guarda** en caché los manifiestos de contenido VOD destacado o de moda
+ **Supervisa el rendimiento de la caché:** rastrea las tasas de aciertos de la caché y optimiza en función de los patrones de uso

### Optimización de la entrega de contenido
<a name="sgai-vod-content-optimization"></a>
+ **Patrones de URL consistentes:** utilice estructuras de URL predecibles para un mejor almacenamiento en caché
+ **Estandarización de los metadatos:** garantice la coherencia de los metadatos del contenido para una segmentación de anuncios fiable
+ **Posicionamiento de las pausas publicitarias:** optimice la ubicación de las pausas publicitarias para lograr transiciones de contenido naturales
+ **Variantes de calidad:** asegúrate de que SGAI funcione en todas las variantes de velocidad de bits de tu contenido de VOD

# MediaTailor requisitos de integración del servidor de anuncios
<a name="vast"></a>

Para integrar tu servidor de anuncios AWS Elemental MediaTailor, este debe enviar un XML que cumpla con las especificaciones de la IAB para las versiones compatibles de VAST y VMAP. Puede utilizar un validador de VAST público para garantizar que las etiquetas tienen el formato correcto.

AWS Elemental MediaTailor admite las respuestas VAST y VMAP de los servidores de decisiones publicitarias. AWS Elemental MediaTailor también admite el procesamiento mediante proxy de metadatos de VPAID a través de nuestra API de informes del lado del cliente para la inserción de anuncios del lado del cliente. Para obtener información acerca de los informes del cliente, consulte [Seguimiento de anuncios del lado del cliente](ad-reporting-client-side.md).

MediaTailor admite las siguientes versiones de VAST, VMAP y VPAID:
+ [Hasta VAST 4.3](https://iabtechlab.com/standards/vast/) 

  MediaTailor acepta las versiones de respuesta a través de VAST 4.3, pero algunas funciones avanzadas de VAST 4.0 y versiones posteriores no son compatibles.
+ [VMAP 1.0](https://www.iab.com/guidelines/digital-video-multiple-ad-playlist-vmap-1-0-1/)
+ [VPAID 2.0](https://www.iab.com/guidelines/digital-video-player-ad-interface-definition-vpaid-2-0/)

## Requisitos VAST
<a name="vast-integration"></a>

La respuesta VAST del servidor de anuncios debe contener elementos `TrackingEvents` compatibles con IAB y tipos de eventos estándar, como `impression`. Si incluyes eventos de seguimiento no estándar, AWS Elemental MediaTailor rechazas la respuesta de VAST y no publicas ningún anuncio.

VAST 3.0 introdujo la compatibilidad con los "ad pods", es decir, la entrega de un conjunto de anuncios lineales secuenciales. Si un anuncio específico de un pod de anuncios no está disponible, se AWS Elemental MediaTailor registra un error en CloudWatch el registro de interacciones del ADS. A continuación, intenta insertar el siguiente anuncio en el pod. De esta forma MediaTailor , recorre los anuncios del pod hasta encontrar uno que pueda usar.

### Indicación del destino
<a name="targeting"></a>

Para segmentar tus anuncios a jugadores específicos, puedes crear plantillas para tus etiquetas de anuncios y URLs. Para obtener más información, consulte [MediaTailor variables de anuncios dinámicos para solicitudes de ADS](variables.md).

AWS Elemental MediaTailor utiliza un proxy con el reproductor `user-agent` y `x-forwarded-for` los encabezados cuando envía la solicitud VAST al servidor de anuncios y cuando realiza las llamadas de seguimiento desde el servidor. Asegúrese de que el servidor de anuncios puede tratar estos encabezados. También puede utilizar `[session.user_agent]` o `[session.client_ip]` y pasar estos valores en las cadenas de consulta en la etiqueta y la URL del anuncio. Para obtener más información, consulte [MediaTailor variables de sesión para solicitudes de ADS](variables-session.md).

### Llamadas publicitarias
<a name="ad-calls"></a>

AWS Elemental MediaTailor llama a la URL de tus anuncios de VAST tal y como se define en tu configuración. Sustituye cualquier parámetro específico del reproductor o de la sesión al realizar la convocatoria publicitaria. MediaTailor sigue hasta siete niveles de envoltorios y redireccionamientos de VAST en la respuesta VAST. En los escenarios de retransmisión en directo, MediaTailor realiza anuncios de forma simultánea al inicio de la publicación del anuncio para los jugadores conectados. En la práctica, debido a las fluctuaciones, estas llamadas al servidor de anuncios se pueden extender unos segundos. Asegúrese de que su servidor de anuncios pueda gestionar la cantidad de conexiones simultáneas que requiere este tipo de llamadas. MediaTailor admite la captura previa de respuestas VAST para flujos de trabajo en tiempo real. Para obtener más información, consulte [Búsqueda previa de anuncios](prefetching-ads.md).

### Manejo creativo
<a name="creative-handling"></a>

Cuando AWS Elemental MediaTailor recibe la respuesta VAST de ADS, identifica la velocidad de bits más alta `MediaFile` para la transcodificación de cada creatividad y la utiliza como fuente. Envía este archivo al on-the-fly transcodificador para transformarlo en variantes de representación que se ajusten a las resoluciones y velocidades de bits multivariantes de las listas de reproducción del reproductor. Para obtener los mejores resultados, asegúrese de que el archivo multimedia con la tasa de bits más alta sea un recurso de alta calidad con ajustes preestablecidos de manifiesto válidos. MP4 Cuando los valores preconfigurados del manifiesto no son válidos, se produce un error en los trabajos de transcodificación y no se muestra ningún anuncio. Algunos ejemplos de ajustes preestablecidos que no son válidos son los formatos de archivo de entrada no compatibles y determinadas especificaciones de representación ProRes, como la resolución 855X481. 

*Para ver una lista de los formatos compatibles para las entradas de archivos multimedia, consulte la **MP4**fila de [Formatos de entrada admitidos](https://docs.aws.amazon.com/mediaconvert/latest/ug/reference-codecs-containers-input.html) en la Guía del usuario.AWS Elemental MediaConvert *

**Indexación creativa**  
AWS Elemental MediaTailor indexa de forma única cada creatividad según el valor del `id` atributo proporcionado en el `<Creative>` elemento. Si no se especifica el ID de una creatividad, MediaTailor utiliza la URL del archivo multimedia para el índice.

La siguiente declaración de ejemplo muestra el ID del anuncio.

```
<Creatives>
        <Creative id="57859154776" sequence="1">
```

Si define su propia creatividad IDs, utilice un identificador nuevo y único para cada creatividad. No reutilices la creatividad IDs. AWS Elemental MediaTailor almacena el contenido creativo para su uso repetido y busca cada uno de ellos por su identificador indexado. Cuando llega un nuevo anuncio, el servicio compara primero su ID con el índice. Si el ID está presente, MediaTailor utiliza el contenido almacenado, en lugar de reprocesar el contenido entrante. Si reutilizas un ID de creatividad, MediaTailor utiliza el anuncio almacenado más antiguo y no reproduce el nuevo. 

**Extensiones VAST proporcionadas por socios que publican anuncios**  
Para evitar colisiones con la creatividad IDs, puedes utilizar las extensiones proporcionadas por los socios que publican anuncios para la respuesta de VAST. MediaTailor admite extensiones de SpringServe Publica y. FreeWheel Al habilitar las anulaciones de extensiones VAST, MediaTailor reemplaza el ID creativo predeterminado por el valor de la extensión.

Para activar esta función, [envía un ticket de AWS Support](https://console.aws.amazon.com/support/home#/) para solicitar que se habilite la creatividad basada en IDs la extensión VAST. Incluye la siguiente información en el ticket de Support:
+ AWS Región
+ AWS ID de cuenta
+ MediaTailor nombres de configuración de reproducción

Para comprobar que las creatividades basadas en extensiones IDs VAST están habilitadas en su cuenta, le recomendamos que solicite también que se habilite el `RAW_ADS_RESPONSE` registro en una configuración de puesta en escena o de prueba de reproducción. Con el registro, puedes ver la respuesta original de VAST que recibe la ADS y confirmar que IDs se ha utilizado la creatividad correcta. 

## REQUISITOS DE VPAID
<a name="vpaid"></a>

VPAID permite a las agencias publicitarias servir anuncios de vídeo altamente interactivos y proporcionar métricas de visualización en sus secuencias monetizadas. Para obtener información sobre VPAID, consulta la especificación de [VPAID](https://www.iab.com/guidelines/digital-video-player-ad-interface-definition-vpaid-2-0/).

AWS Elemental MediaTailor admite una combinación de anuncios MP4 lineales de server-side-stitched VAST y creatividades interactivas de client-side-inserted VPAID en un mismo anuncio. Conserva el orden en el que aparecen en la respuesta de VAST. MediaTailor sigue los redireccionamientos de VPAID a través de un máximo de siete niveles de envoltorios. La respuesta de los informes del lado del cliente incluyen metadatos de VPAID sin encapsular.

Para utilizar VPAID, siga estas directrices:
+ Configura una MP4 lista para tus creatividades de VPAID. AWS Elemental MediaTailor llena los espacios publicitarios de VPAID con tu lista configurada y proporciona metadatos de anuncios de VPAID para que el jugador cliente los utilice para publicar los anuncios interactivos. Si aún no ha configurado una claqueta, cuando aparece un anuncio de VPAID, MediaTailor proporciona los metadatos del anuncio a través de informes del cliente como de costumbre. También registra un error relacionado con la CloudWatch lista que falta. Para obtener más información, consulte [MediaTailor pizarra e inserción](slate-management.md) y [Crear una configuración MediaTailor de reproducción](configurations-create.md). 
+ Utilice los informes del lado del cliente. AWS Elemental MediaTailor admite VPAID a través de nuestra API de informes del lado del cliente. Para obtener más información, consulte [Seguimiento de anuncios del lado del cliente](ad-reporting-client-side.md). 

  Teóricamente es posible utilizar el modo de informes del servidor predeterminado con VPAID. Sin embargo, si utiliza los informes del lado del servidor, perderá toda la información sobre la presencia del anuncio de VPAID y los metadatos subyacentes, ya que esta información solo está disponible a través de la API del cliente. 
+ En los escenarios en directo, asegúrate de que tu anuncio esté disponible, marcado con un símbolo, y sea lo suficientemente largo como para adaptarse a cualquier tipo de interactividad de los usuarios en VPAID. `EXT-X-CUE-OUT: Duration` Por ejemplo, si el XML de VAST especifica un anuncio VPAID de 30 segundos, puedes configurar la disponibilidad del anuncio para que dure más de 30 segundos. Este tiempo adicional ofrece a los usuarios más posibilidades de interactuar con el anuncio. Si no añades tiempo, podrías perder los metadatos de VPAID porque el tiempo restante de publicación del anuncio no es suficiente para incluir el anuncio VPAID.



# MediaTailor gestión de la configuración de reproducción
<a name="working-with-configurations"></a>

En esta sección se describen las tareas clave para gestionar las configuraciones AWS Elemental MediaTailor de reproducción. Puedes aprender a crear una nueva configuración para configurar las transmisiones de contenido y proporcionar acceso a los dispositivos de reproducción, ver los detalles de una configuración existente, editar una configuración para actualizar ajustes como los servidores de origen y los servidores de decisiones publicitarias, y eliminar una configuración que ya no sea necesaria.

**Topics**
+ [Crear una configuración MediaTailor de reproducción](configurations-create.md)
+ [Visualización MediaTailor de los detalles de configuración](configurations-view.md)
+ [Edición de los ajustes MediaTailor de configuración](configurations-edit.md)
+ [Eliminar MediaTailor configuraciones](configurations-delete.md)

# Crear una configuración MediaTailor de reproducción
<a name="configurations-create"></a>

En este tema se muestra cómo crear una configuración para empezar a recibir transmisiones de contenido. AWS Elemental MediaTailor También muestra cómo proporcionar un punto de acceso para que los dispositivos de reproducción descendente soliciten contenido.

Puedes usar la AWS Elemental MediaTailor consola, el AWS Command Line Interface (AWS CLI) > o la MediaTailor API para crear una configuración. Para obtener información sobre cómo crear una configuración a través de la MediaTailor API AWS CLI o, consulta la [https://docs.aws.amazon.com/mediatailor/latest/apireference/what-is.html](https://docs.aws.amazon.com/mediatailor/latest/apireference/what-is.html).

Al crear una configuración, no coloque información de identificación confidencial en campos de formato libre, como el campo del **nombre de la configuración**. La información de identificación puede incluir datos como los números de cuenta de los clientes. Además, no utilices información de identificación cuando trabajes en la MediaTailor consola, la API REST AWS CLI, o AWS SDKs. Es posible que todos los datos que MediaTailor introduzcas se recopilen para incluirlos en los registros de diagnóstico o en Amazon CloudWatch Events.

**Para añadir una configuración (consola)**

1. Abre la MediaTailor consola en [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. En la página **Configurations (Configuraciones)**, seleccione **Create configuration (Crear configuración)**. 

1. Complete los campos de configuración y de configuración adicionales, tal y como se describe en los siguientes temas:
   +  [Configuración necesaria](#configurations-create-main) 
   +  [Ajustes de configuración opcionales](#configurations-create-addl) 

1. Seleccione **Crear configuración**. 

   AWS Elemental MediaTailor muestra la nueva configuración en la tabla de la página de **configuraciones**.

1. (Recomendado) Configure una CDN AWS Elemental MediaTailor para las solicitudes de manifiestos e informes. Puede utilizar la reproducción de la configuración URLs para la configuración de la CDN. Para obtener información acerca de cómo configurar una CDN para solicitudes de manifiestos e informes, consulte [Uso de una CDN para optimizar la personalización de MediaTailor anuncios y la entrega de contenido](integrating-cdn.md) .

## Configuración necesaria
<a name="configurations-create-main"></a>

Al crear una configuración, debe incluir los siguientes valores necesarios.

**Name**  
Especifique un nombre único que describa la configuración. El nombre es el identificador principal de la configuración. La longitud máxima permitida es de 512 caracteres.

**Fuente de contenido**  
 Escriba el prefijo de URL del manifiesto de esta secuencia, sin incluir el ID del activo. La longitud máxima es de 512 caracteres.  
Por ejemplo, el prefijo URL `http://origin-server.com/a/` es válido para una URL de lista de reproducción multivariante HLS `http://origin-server.com/a/main.m3u8` y para una URL MPD de DASH de. `http://origin-server.com/a/dash.mpd` También puede escribir un prefijo más corto como `http://origin-server.com`, pero la `/a/` debe incluirse en el ID de recurso en la solicitud de contenido del reproductor.   
Si el origen de contenido usa HTTPS, su certificado debe proceder de una entidad de certificación conocida. No puede ser un certificado autofirmado. Si utilizas un certificado autofirmado, AWS Elemental MediaTailor no puedes conectarte al origen del contenido y no puedes publicar los manifiestos en respuesta a las solicitudes de los jugadores.

**Servidor de decisiones publicitarias**  
 Escriba la dirección URL del servidor de decisión de anuncios (ADS). Esta es la URL con las variables que se describen en [Paso 3: Configurar la URL de la solicitud de ADS y los parámetros de consulta](getting-started-ad-insertion.md#getting-started-configure-request) o la URL de VAST estática que se utiliza para la realización de pruebas. La longitud máxima es de 25 000 caracteres.  
Si su ADS usa HTTPS, su certificado debe proceder de una entidad de certificación conocida. No puede ser un certificado autofirmado. Lo mismo se aplica a los anuncios intermedios URLs devueltos por la ADS. Si utilizas un certificado autofirmado, no AWS Elemental MediaTailor podrás recuperar ni añadir anuncios a los manifiestos desde el origen del contenido.

## Ajustes de configuración opcionales
<a name="configurations-create-addl"></a>

Si lo desea, puede configurar los **alias de configuración**, **los detalles de personalización** y los **ajustes avanzados** en la MediaTailor consola, la MediaTailor API o en AWS Command Line Interface ()AWS CLI.

### Alias de configuración
<a name="configurations-configuration-aliases"></a>

Los siguientes son alias de configuración opcionales que puede configurar en la MediaTailor consola o con la MediaTailor API.

**Variable de parámetro del reproductor**  
Para configurar el dominio dinámico durante la inicialización de la sesión, añada una o más variables de parámetros del reproductor.  
Para obtener más información sobre el uso de variables de parámetros del reproductor para configurar dominios de forma dinámica, consulte[MediaTailor variables de dominio para múltiples fuentes de contenido](variables-domains.md).

### Configuración de registro
<a name="configurations-log-configurations"></a>

Los siguientes son los ajustes de configuración del registro.

**Porcentaje de activados**  
Establece el porcentaje de registros de sesiones de configuración de reproducción que se MediaTailor escriben en los CloudWatch registros. Por ejemplo, si su configuración de reproducción tiene 1000 sesiones y ha establecido el porcentaje habilitado en **60, MediaTailor escribirá** 600 registros de sesión en los CloudWatch registros.  
 Al activar esta opción, crea MediaTailor automáticamente un rol vinculado al servicio que le permite escribir y administrar MediaTailor los registros de sesión en su cuenta de CloudWatch Logs. Para obtener más información, consulte [Uso de roles vinculados a servicios para MediaTailor](using-service-linked-roles.md). 

**Estrategias de registro**  
Indica el método utilizado para recopilar los registros que se MediaTailor emiten. Para enviar los registros directamente a CloudWatch Logs, elija`LEGACY_CLOUDWATCH`. Para enviar los CloudWatch registros a Logs, que luego los envía al destino que prefiera, elija`VENDED_LOGS`. Los destinos compatibles son un grupo de CloudWatch registros de registros, un bucket de Amazon S3 y una transmisión de Amazon Data Firehose.  
Se requiere una configuración adicional para los registros vendidos. Para la configuración, consulte[Uso de registros vendidos](vended-logs.md).

**Eventos de suscripción al registro de interacciones de ADS**  
Indica que MediaTailor emitirá `RAW_ADS_RESPONSE` registros para las sesiones que se inicialicen con esta configuración.   
El evento de `RAW_ADS_RESPONSE` registro contiene la respuesta VAST o VMAP completa del ADS. Por lo tanto, los registros pueden ser extensos y pueden aumentar los costos de registro.

**El registro de interacciones de ADS excluye eventos**  
Indica que MediaTailor no emitirá los eventos seleccionados en los registros que describen las interacciones con el ADS.  
Para obtener una descripción de los eventos del registro de ADS, consulte[Registros de ADS](ads-log-format.md).

**El registro de interacciones del servicio de manifiestos excluye los eventos**  
Indica que MediaTailor no emitirá los eventos seleccionados en los registros que describen las interacciones con el servicio de manifiestos.  
Para obtener una descripción de los eventos del registro del servicio de manifiestos, consulte[Registros de manifiestos](log-types.md).

### Acondicionamiento de anuncios
<a name="configurations-ad-conditioning"></a>

A continuación se indican las medidas que MediaTailor se deben tomar para condicionar los anuncios antes de incluirlos en un flujo de contenido. 

**Acondicionamiento de archivos multimedia en streaming**  
Determina la lógica que se MediaTailor utiliza a la hora de decidir qué anuncios se van a unir.   
+ Si el **acondicionamiento de archivos multimedia en streaming** está configurado en **Transcodificar**, MediaTailor transcodifica los archivos multimedia con la `progressive` entrega y los incluye en el manifiesto. Si no hay suficientes anuncios con archivos multimedia de `progressive` entrega como para cubrir el número de anuncios disponibles, MediaTailor transcodifícalos y utilízalos junto con la entrega. `streaming`
+ Si el **acondicionamiento de archivos multimedia en streaming** está establecido en **Ninguno, agrupa** MediaTailor los anuncios con archivos multimedia de `streaming` entrega en el manifiesto sin transcodificarlos. Si no hay suficientes anuncios con archivos multimedia de `streaming` entrega como para cubrir el número de anuncios, MediaTailor transcodifíquelos y utilícelos junto con la opción de entrega. `progressive` 

### Detalles de personalización
<a name="configurations-personalization-details"></a>

Los siguientes son detalles de personalización que puede configurar en la MediaTailor consola o con la MediaTailor API.

**Claqueta**  
Introduce la URL de un MP4 recurso de alta calidad que se MediaTailor utiliza para rellenar los anuncios vacíos. La configuración de Slate es opcional para la mayoría de los flujos de trabajo, pero obligatoria para los anuncios VPAID. Para obtener información completa sobre el comportamiento de Slate, los requisitos de configuración y cuándo se muestra Slate, consulte[MediaTailor pizarra e inserción](slate-management.md).

**Paragolpes de arranque**  
La URL de la ubicación del activo de Start Bumper. Los bumpers son clips cortos de vídeo o audio que se reproducen al principio o al final de una pausa publicitaria. Se pueden almacenar en el S3 de Amazon o en un servicio de almacenamiento diferente. Para obtener más información sobre los parachoques, consulte[MediaTailor parachoques e inserción](bumpers.md).

**Paragolpes final**  
La URL de la ubicación del activo de End Bumper. Los bumpers son clips cortos de vídeo o audio que se reproducen al principio o al final de una pausa publicitaria. Se pueden almacenar en el S3 de Amazon o en un servicio de almacenamiento diferente. Para obtener más información sobre los parachoques, consulte[MediaTailor parachoques e inserción](bumpers.md).

**Umbral de personalización**  
Solo se aplica cuando se usa junto con Slate Ad. Define la duración máxima del tiempo de publicación insuficiente (en segundos) permitido en una pausa publicitaria antes de MediaTailor abandonar la personalización y mostrar el contenido subyacente. Esta función se aplica a la sustitución de anuncios en transmisiones en directo y en VOD, en lugar de a la inserción de anuncios, ya que se basa en un flujo de contenido subyacente. Para ver escenarios de comportamiento detallados e información completa, consulte. [Cómo funciona el umbral de personalización](slate-management.md#personalization-threshold-scenarios)

**Servidor de decisión de anuncios previos a la emisión en directo**  
Para insertar anuncios al inicio de una transmisión en directo antes de que comience la reproducción del contenido principal, escriba la URL de la grabación previa del anuncio desde el servidor de decisión de anuncios (ADS). Esta es la URL con las variables que se describen en [Paso 3: Configurar la URL de la solicitud de ADS y los parámetros de consulta](getting-started-ad-insertion.md#getting-started-configure-request) o la URL de VAST estática que se utiliza para la realización de pruebas. La longitud máxima es de 25 000 caracteres.  
Si su ADS usa HTTPS, su certificado debe proceder de una entidad de certificación conocida. No puede ser un certificado autofirmado. Lo mismo se aplica a los anuncios intermedios URLs devueltos por la ADS. Si utilizas un certificado autofirmado, no AWS Elemental MediaTailor podrás recuperar ni añadir anuncios a los manifiestos desde el origen del contenido.
Para obtener información acerca de cómo funciona la inserción previa a la emisión de contenido, consulte [MediaTailor preenrollado e inserción](ad-behavior-preroll.md) .

**Duración máxima permitida en el periodo previo en directo**  
Cuando inserte anuncios al principio de una transmisión en directo, escriba la duración máxima permitida para el espacio publicitario previo a la emisión. MediaTailor no superará esta duración cuando inserte los anuncios. Si la respuesta del ADS contiene más anuncios de los que caben durante este período, MediaTailor rellena el espacio con tantos anuncios como sea posible, sin sobrepasar la duración. Para obtener más información sobre la disponibilidad de MediaTailor los rellenos, consulta. [Comportamiento de creación de anuncios en directo](ad-behavior.md#ad-behavior-live)

**Aproveche el modo de supresión**  
Establece el modo de supresión de disponibilidad, también conocido como eliminar anuncios. De forma predeterminada, la supresión de anuncios está desactivada y MediaTailor llena todos los anuncios o listas. Cuando el modo está configurado en`BEHIND_LIVE_EDGE`, la supresión de anuncios está activa y MediaTailor no rellena las pausas publicitarias dentro o por debajo del valor de supresión disponible en la ventana retrospectiva del manifiesto. Cuando el modo está configurado en`AFTER_LIVE_EDGE`, la supresión de anuncios está activa. MediaTailorno rellena las pausas publicitarias que se encuentren dentro o fuera del periodo de supresión disponible, que es la ventaja activa más el valor de supresión disponible más el tiempo de almacenamiento.

**Aprovecha el valor de supresión**  
El valor de supresión disponible es un tiempo de desfase de arista activo en. `HH:MM:SS` MediaTailor no rellenará las pausas publicitarias dentro o fuera de esta hora en la ventana retrospectiva del manifiesto.

**Modo de inserción**  
El modo de inserción controla si los jugadores pueden utilizar la inserción de anuncios cosida o guiada. El valor predeterminado es`STITCHED_ONLY`, que todas las sesiones de los jugadores utilicen la inserción de anuncios agrupados (del lado del servidor). Al InsertionMode configurarlo, los `PLAYER_SELECT` jugadores pueden seleccionar la inserción de anuncios agrupados o guiados en el momento de inicializar la sesión. El modo predeterminado para los jugadores que no especifican un modo de inserción es cosido.

### Configuración avanzada
<a name="configurations-advanced-settings"></a>

Los siguientes son ajustes opcionales y avanzados. Puede configurarlos en la MediaTailor consola, con AWS Command Line Interface (AWS CLI) o mediante la MediaTailor API.

**Prefijo de segmento de contenido de CDN**  
Permite AWS Elemental MediaTailor crear manifiestos con la ruta de URLs la CDN para los segmentos de contenido. Antes de realizar este paso, configure una regla en su CDN para extraer los segmentos del servidor de origen. En **CDN content segment prefix (Prefijo de segmento de contenido de CDN)**, escriba la ruta del prefijo de CDN.  
Para obtener más información sobre la integración MediaTailor con una CDN, consulte. [Uso de una CDN para optimizar la personalización de MediaTailor anuncios y la entrega de contenido](integrating-cdn.md)

**Prefijo de segmento de anuncios de CDN**  
Permite AWS Elemental MediaTailor crear manifiestos con URLs tu propia ruta de CDN para los segmentos de anuncios. De forma predeterminada, MediaTailor muestra segmentos de anuncios de una CloudFront distribución interna de Amazon con la configuración de caché predeterminada. Para poder rellenar el campo **CDN ad segment prefix (Prefijo de segmento de anuncios de CDN)**, debe configurar una regla en su CDN para extraer los segmentos de anuncios del siguiente origen, tal como se muestra en el siguiente ejemplo:  

```
https://segments.mediatailor.<region>.amazonaws.com
```
En **CDN ad segment prefix (Prefijo de segmento de anuncios de CDN)**, escriba el nombre del prefijo de CDN en la configuración.  
Para obtener más información sobre la integración MediaTailor con una CDN, consulta[Uso de una CDN para optimizar la personalización de MediaTailor anuncios y la entrega de contenido](integrating-cdn.md).

**Tipo de manifiesto de origen DASH**  
Si el servidor de origen produce manifiestos de DASH para un solo periodo, abra la lista desplegable y elija **SINGLE\$1PERIOD**. De forma predeterminada, MediaTailor gestiona los manifiestos de DASH como manifiestos de varios períodos. Para obtener más información, consulte [Integrar una fuente MPEG-DASH](manifest-dash.md).

**Ubicación mpd de DASH**  
(Opcional según sea necesario para DASH) La ubicación de la descripción de la presentación multimedia (mpd). Selecciona **DESHABILITADO** para la siguiente situación:  
+ Usted configura las reglas de enrutamiento de la CDN para acceder a los MediaTailor manifiestos.
+ Utilizas los informes del lado del cliente o tu reproductor admite redireccionamientos HTTP fijos.
Para obtener más información sobre la característica **Location (Ubicación)**, consulte [Función de ubicación DASH](dash-location-feature.md).

**Transcodifica el nombre del perfil**  
Nombre que asocia esta configuración con un perfil de transcodificación personalizado. Este nombre anula los valores predeterminados de transcodificación dinámica de. MediaTailor Complete este campo solo si ya ha configurado perfiles personalizados con la ayuda de AWS Support.

**Acceso directo a los marcadores de anuncios**  
En el caso de HLS, activa o desactiva el paso a través de los marcadores de anuncios. Cuando el paso a través de los marcadores de `EXT-X-SPLICEPOINT-SCTE35` anuncios está activado `EXT-X-CUE-IN``EXT-X-CUE-OUT`, MediaTailor pasa y añade marcadores del manifiesto de origen al manifiesto personalizado. MediaTailor No se aplica ninguna lógica a los valores de los marcadores de anuncios; se transfieren del manifiesto de origen al manifiesto personalizado tal cual. Por ejemplo, si `EXT-X-CUE-OUT` tiene un valor de `60` en el manifiesto de origen, pero no se coloca ningún anuncio, no MediaTailor cambiará el valor a «`0`en el manifiesto personalizado».

# Visualización MediaTailor de los detalles de configuración
<a name="configurations-view"></a>

Además de los valores proporcionados al crear la configuración, AWS Elemental MediaTailor muestra el nombre de la configuración, los puntos finales de reproducción y el acceso correspondiente. URLs Para ver una configuración, utilice el siguiente procedimiento.



 **Para ver una configuración** 

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

1. En la página **Configurations (Configuraciones)**, elija el nombre (**Configuration name**) de la configuración que desea ver.

# Edición de los ajustes MediaTailor de configuración
<a name="configurations-edit"></a>

Puedes editar una configuración para actualizar el mapeo entre el servidor de origen y el servidor de decisiones publicitarias (ADS), o cambiar la forma en que AWS Elemental MediaTailor interactúa con una red de distribución de contenido (CDN).



 **Para editar una configuración ** 

1. Abre la MediaTailor consola en. [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)

1. En la página **Configurations (Configuraciones)**, elija el nombre de la configuración que desea editar.

1. En la página de detalles de la configuración, elija **Edit (Editar)** y, a continuación, revise los ajustes de configuración según sea necesario. El nombre de la configuración no se puede editar. Para obtener información acerca de los atributos de configuración, consulte [Crear una configuración MediaTailor de reproducción](configurations-create.md).

1. Seleccione **Save**. 

# Eliminar MediaTailor configuraciones
<a name="configurations-delete"></a>

Puede eliminar una configuración para que no esté disponible para su reproducción AWS Elemental MediaTailor.



 **Para eliminar una configuración** 

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

1. En la página **Configurations (Configuraciones)**, realice una de las siguientes operaciones:
   + Elija el nombre de la configuración que desea eliminar. 
   + En la columna **Configuration name (Nombre de configuración)**, elija la opción situada junto al nombre y después elija **Delete (Eliminar)**. 

1. En el cuadro de confirmación **Delete (Eliminar)**, escriba **Delete** y, a continuación, elija **Delete (Eliminar)**. 

# Integración de una fuente de contenido para la inserción de MediaTailor anuncios
<a name="integrating-origin"></a>

Este tema trata sobre la integración de diferentes tipos de fuentes de contenido de vídeo con MediaTailor. MediaTailoradmite los protocolos de streaming HLS y DASH para contenido en directo y bajo demanda. El servicio puede insertar o reemplazar anuncios durante las pausas publicitarias designadas, y tiene requisitos específicos en cuanto a la estructura y el formato de los manifiestos de vídeo de entrada para habilitar estas funciones. En los siguientes temas se proporcionan detalles sobre los requisitos de la fuente de entrada y los pasos para integrar el contenido de HLS y DASH con el MediaTailor fin de ofrecer experiencias publicitarias personalizadas.

**Topics**
+ [Requisitos de fuente de entrada para la inserción de MediaTailor anuncios](stream-reqmts.md)
+ [Integrar una fuente HLS](manifest-hls.md)
+ [Integrar una fuente MPEG-DASH](manifest-dash.md)
+ [Proteger las interacciones de AWS Elemental MediaTailor origen con SiGv4](origin-sigv4.md)

# Requisitos de fuente de entrada para la inserción de MediaTailor anuncios
<a name="stream-reqmts"></a>

Una fuente de entrada debe cumplir los siguientes requisitos para funcionar con MediaTailor:
+ Utilizar Apple HLS (HTTP Live Streaming) o MPEG DASH (Dynamic Adaptive Streaming a través de HTTP)
+ Utilizar streaming en directo o vídeo a la carta (VOD)
+ Estar accesible en la Internet pública y tener una dirección IP pública
+ Utilice puertos HTTP estándar (puerto 80) o puertos HTTPS (puerto 443). MediaTailor no admite puertos personalizados para la comunicación con el servidor de origen.
+ Contiene marcadores de anuncios en uno de los formatos descritos en el [tutorial Cómo empezar a insertar MediaTailor anuncios](getting-started-ad-insertion.md#getting-started-prep-stream) 

# Integrar una fuente HLS
<a name="manifest-hls"></a>

AWS Elemental MediaTailor admite manifiestos `.m3u8` HLS con un valor igual `3` o superior para `EXT-X-VERSION` la transmisión en directo y el vídeo bajo demanda (VOD). Cuando MediaTailor encuentra una pausa publicitaria, intenta insertarla o sustituirla en función del tipo de contenido. Si no hay suficientes anuncios para cubrir la duración, durante el resto de la pausa publicitaria, MediaTailor muestra el flujo de contenido subyacente o la lista configurada. Para obtener más información sobre el comportamiento de los anuncios HLS en función del tipo de contenido, consulte[Entender AWS Elemental MediaTailor el comportamiento de inserción de anuncios](ad-behavior.md).

En las siguientes secciones se proporciona más información sobre cómo se gestionan los MediaTailor manifiestos de HLS.

**Topics**
+ [Marcadores de anuncios compatibles con HLS](hls-ad-markers.md)
+ [Habilitar el paso a los marcadores de anuncios](ad-marker-passthrough.md)
+ [Gestión de etiquetas de manifiesto HLS](manifest-hls-tags.md)
+ [Ejemplos de manifiestos HLS](manifest-hls-example.md)

# Marcadores de anuncios compatibles con HLS
<a name="hls-ad-markers"></a>

AWS Elemental MediaTailor identifica los límites de disponibilidad de los anuncios en un manifiesto HLS analizando el manifiesto de entrada para detectar los marcadores de anuncios compatibles. En las secciones siguientes se indican los marcadores que utiliza MediaTailor .

## EXT-X-ASSET
<a name="hls-ad-markers-asset"></a>

La etiqueta `EXT-X-ASSET` contiene metadatos que utiliza el servidor de decisión de anuncios (ADS) para personalizar el contenido para el espectador. Los parámetros `EXT-X-ASSET` son pares clave-valor separados por comas.

Para utilizar esta etiqueta, debe cumplir los siguientes requisitos:
+ *Debes codificar en URL los valores del `EXT-X-ASSET` manifiesto de origen.* En el ejemplo siguiente, se muestra la etiqueta `EXT-X-ASSET` con claves y valores codificados mediante URL.

  ```
              #EXT-X-ASSET:GENRE=CV,CAID=12345678,EPISODE="Episode%20Name%20Date",SEASON="Season%20Name%20and%20Number",SERIES="Series%2520Name"
  ```
+ Debe incluir la `[asset.]` variable dinámica y las *claves* en la configuración de ADS. MediaTailor El siguiente ejemplo muestra una configuración de MediaTailor ADS con la `[asset.]` variable dinámica y las claves.

  ```
              https://myads.com/stub?c=[asset.GENRE]&g=[asset.CAID]&e=[asset.EPISODE]&s=[asset.SEASON]&k=[asset.SERIES]
  ```

**Ejemplo de solicitud VAST**  
En el ejemplo siguiente, se muestra una solicitud VAST `GET` a un ADS.

```
            https://myads.com/stub?c=CV&g=12345678&e=Episode%20Name%20Date&s=Season%20Name%20and%20Number&k=Series%2520Name
```

## EXT-X-CUE-OUT y EXT-X-CUE-IN
<a name="hls-ad-markers-cue"></a>

Este tipo de marcador de anuncios es el más común. Los siguientes ejemplos muestran opciones para estos marcadores cue.

```
#EXT-X-CUE-OUT:DURATION=120
    ...
    #EXT-X-CUE-IN
```

```
#EXT-X-CUE-OUT:30.000
    ...
    #EXT-X-CUE-IN
```

```
#EXT-X-CUE-OUT
    ...
    #EXT-X-CUE-IN
```

## EXT-X-DATERANGE
<a name="hls-ad-markers-range"></a>

Con las etiquetas de marcadores de anuncios `EXT-X-DATERANGE`, se utilizan los atributos `SCTE35-OUT` para especificar el tiempo del espacio publicitario. 

**nota**  
AWS Elemental MediaTailor omite los `START-DATE` atributos que se proporcionan para los marcadores de `EXT-X-DATERANGE` anuncios. 

Puede especificar el espacio publicitario de una de las siguientes formas:
+ Etiqueta `EXT-X-DATERANGE` con las especificaciones `SCTE35-OUT` y `DURATION`. 

  Ejemplo

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",DURATION=60.000,SCTE35-OUT=0xF
  ```
+ Junto con las etiquetas `EXT-X-DATERANGE`, la primera con una especificación `SCTE35-OUT` y la segunda con una especificación `SCTE35-IN`. 

  Ejemplo

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",SCTE35-OUT=0xF
      ...
      #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",SCTE35-IN=0xF
  ```
+ Una combinación de las opciones anteriores. Especifique una etiqueta `EXT-X-DATERANGE` con las especificaciones `DURATION` y `SCTE35-OUT` seguidas de una etiqueta `EXT-X-DATERANGE` con una especificación `SCTE35-IN`. En este caso, MediaTailor utiliza la configuración de entrada más temprana de las dos especificaciones.

  Ejemplo

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",DURATION=60.000,SCTE35-OUT=0xF
      ...
      #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",SCTE35-IN=0xF
  ```

## EXT-X-SPLICEPOINT- SCTE35
<a name="hls-ad-markers-splice"></a>

Puede añadir la etiqueta del marcador de anuncios `EXT-X-SPLICEPOINT-SCTE35` con una carga de SCTE-35 en binarios codificados en Base64. Los binarios descodificados deben proporcionar un SCTE-35 `splice_info_section` que contenga el marcador cue-out `0x34`, para el inicio de la oportunidad de ubicación del proveedor, y el marcador cue-in `0x35`, para el final de la oportunidad de ubicación. 

En el siguiente ejemplo se muestra la especificación de punto de especificación con cargas binarias con codificación Base64 que especifican los marcadores cue-out y cue-in. 

```
    #EXT-X-SPLICEPOINT-SCTE35:/DA9AAAAAAAAAP/wBQb+uYbZqwAnAiVDVUVJAAAKqX//AAEjW4AMEU1EU05CMDAxMTMyMjE5M19ONAAAmXz5JA==
    ...
    #EXT-X-SPLICEPOINT-SCTE35:/DA4AAAAAAAAAP/wBQb+tTeaawAiAiBDVUVJAAAKqH+/DBFNRFNOQjAwMTEzMjIxOTJfTjUAAIiGK1s=
```

# Habilitar el paso a los marcadores de anuncios
<a name="ad-marker-passthrough"></a>

De forma predeterminada, en el HLS, los manifiestos MediaTailor personalizados no incluyen los marcadores de anuncios SCTE-35 de los manifiestos de origen. Cuando el paso a través de los marcadores de anuncios está activado, MediaTailor pasa los siguientes marcadores de anuncios de los manifiestos de origen a los manifiestos personalizados:
+ EXT-X-CUE-IN
+ EXT-X-CUE-OUT
+ PUNTO DE EMPALME EXT-X- SCTE35

 El paso a través de los marcadores de anuncios es una configuración opcional. Usa la transferencia de marcadores de anuncios si quieres que los marcadores de anuncios de SCTE se incluyan en el MediaTailor manifiesto personalizado. Entre los casos de uso más comunes se incluyen los siguientes: 
+ Reemplazo de contenido: realiza el reemplazo o la restricción de contenido.
+ Seguimiento de anuncios: active la información de seguimiento de anuncios en función de la presencia o ausencia de uno o más marcadores de anuncios.
+ Configuración del reproductor: habilita la función de barrido o del temporizador de cuenta regresiva en la interfaz de usuario del reproductor, en función de la presencia o ausencia de marcadores de anuncios.

**nota**  
MediaTailor no cambia los valores de estos marcadores. Por ejemplo, si `EXT-X-CUE-OUT` tiene un valor de `60` en el manifiesto de origen, pero no se coloca ningún anuncio, no MediaTailor cambiará el valor al `0` del manifiesto personalizado. 

## Habilita el paso a través de los marcadores de anuncios
<a name="enable-ad-marker-passthrough"></a>

Para activar el paso a través de los marcadores de anuncios, utilice las letras Consola de administración de AWS o AWS Command Line Interface ()AWS CLI.

**Para habilitar la transferencia de marcadores de anuncios mediante la consola**

1. Abre la MediaTailor consola en. [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)

1.  Seleccione **Nueva configuración** o **Editar configuración**.

1. En la sección **Configuración avanzada**, selecciona **Activar** en el menú desplegable.

**Para habilitar el paso a través de los marcadores de anuncios, utilice la tecla AWS Command Line Interface ()AWS CLI**  
Utilice el comando [put-playback-configuration](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/put-playback-configuration.html).

# Gestión de etiquetas de manifiesto HLS
<a name="manifest-hls-tags"></a>

En esta sección se describe cómo se AWS Elemental MediaTailor gestionan las etiquetas en el manifiesto de salida personalizado.

## EXT-X-CUE etiquetas
<a name="manifest-hls-tags-cue"></a>

MediaTailor reemplaza `EXT-X-CUE-OUT``EXT-X-CUE-OUT-CONT`, y `EXT-X-CUE-IN` etiqueta en el manifiesto de entrada con `EXT-X-DISCONTINUITY` etiquetas en el manifiesto de salida. Las etiquetas `DISCONTINUITY` marcan los siguientes límites:
+ Dónde el contenido principal da paso a un anuncio
+ Dónde un anuncio da paso a otro anuncio
+ Dónde un anuncio vuelve a dar paso al contenido principal

## EXT-X-DATERANGE etiquetas
<a name="manifest-hls-tags-daterange"></a>

MediaTailor pasa las `EXT-X-DATERANGE` etiquetas del manifiesto de entrada al manifiesto de salida. MediaTailor también inserta `EXT-X-DISCONTINUITY` etiquetas que corresponden a las `DATERANGE` etiquetas. Las etiquetas `DISCONTINUITY` marcan los siguientes límites:
+ Dónde el contenido principal da paso a un anuncio
+ Dónde un anuncio da paso a otro anuncio
+ Dónde un anuncio vuelve a dar paso al contenido principal

## EXT-X-KEY etiquetas
<a name="manifest-hls-tags-key"></a>

MediaTailor pasa a través de las `EXT-X-KEY` etiquetas del manifiesto de entrada. Estas etiquetas indican que el contenido principal está cifrado. Como los anuncios no están cifrados, MediaTailor inserta `EXT-X-KEY:METHOD=NONE` al principio del espacio publicitario. Cuando la reproducción vuelva al contenido principal, MediaTailor vuelva a activar el cifrado insertando la `EXT-X-KEY` etiqueta con el `METHOD` valor definido como tipo de cifrado.

## Etiquetas no reconocidas
<a name="manifest-hls-tags-unknown"></a>

MediaTailor pasa por todas las etiquetas desconocidas y personalizadas del manifiesto de entrada al manifiesto de salida.

# Ejemplos de manifiestos HLS
<a name="manifest-hls-example"></a>

En las siguientes secciones se proporcionan ejemplos de manifiestos de origen HLS y manifiestos personalizados. Entender estos ejemplos puede ayudarle a configurar sus flujos de trabajo y a solucionar sus problemas. MediaTailor

Para obtener información sobre cómo se aplican los parámetros de consulta a los manifiestos y segmentos del HLS, consulte. [MediaTailor Inicialización de sesión implícita en HLS](manifest-query-parameters-hls-implicit-session-initialization.md)

## Descripción de los tipos de listas de reproducción HLS
<a name="hls-playlist-overview"></a>

La transmisión en directo HTTP (HLS) utiliza dos tipos principales de listas de reproducción:

Lista de reproducción multivariante  
Una lista de reproducción multivariante es el archivo de índice de nivel superior que muestra todas las copias disponibles del contenido. Contiene referencias a listas de reproducción multimedia, pero no contiene ningún segmento multimedia propiamente dicho. Esta lista de reproducción permite a los reproductores seleccionar la representación más adecuada en función de las condiciones de la red, las capacidades del dispositivo o las preferencias del usuario.  
Este tipo de lista de reproducción también se conoce con otros nombres en varios contextos, como la lista de reproducción maestra, el manifiesto principal, la lista de reproducción principal, la lista de reproducción principal, el archivo de índice o el M3U8 maestro.  
En MediaTailor los flujos de trabajo, la lista de reproducción multivariante es el punto de entrada para las solicitudes de reproducción y es donde comienza la personalización de los anuncios.

Lista de reproducción multimedia  
Una lista de reproducción multimedia contiene la información real del segmento multimedia para una representación (nivel de calidad) específica del contenido. Incluye información sobre la temporización, el segmento URLs y otros metadatos necesarios para la reproducción de una sola copia.  
Este tipo de lista de reproducción también se conoce como lista de reproducción multimedia, manifiesto secundario, lista de fragmentos, M3U8 multimedia o lista de reproducción.  
En MediaTailor los flujos de trabajo, las listas de reproducción multimedia se personalizan para incluir tanto segmentos de contenido como segmentos de anuncios en la secuencia adecuada.

Para obtener información más detallada sobre los tipos de listas de reproducción HLS, consulte[Tipos de listas de reproducción HLS](hls-playlist-types.md).

## Ejemplos de manifiestos de origen de HLS
<a name="manifest-hls-ex-origin"></a>

El siguiente ejemplo muestra una lista de reproducción multivariante de HLS AWS Elemental MediaTailor recibida por HLS desde el origen del contenido.

```
#EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-INDEPENDENT-SEGMENTS
    #EXT-X-STREAM-INF:BANDWIDTH=2665726,AVERAGE-BANDWIDTH=2526299,RESOLUTION=960x540,FRAME-RATE=29.970,CODECS="avc1.640029,mp4a.40.2",SUBTITLES="subtitles"
    index_1.m3u8
    #EXT-X-STREAM-INF:BANDWIDTH=3956044,AVERAGE-BANDWIDTH=3736264,RESOLUTION=1280x720,FRAME-RATE=29.970,CODECS="avc1.640029,mp4a.40.2",SUBTITLES="subtitles"
    index_2.m3u8
    #EXT-X-STREAM-INF:BANDWIDTH=995315,AVERAGE-BANDWIDTH=951107,RESOLUTION=640x360,FRAME-RATE=29.970,CODECS="avc1.4D401E,mp4a.40.2",SUBTITLES="subtitles"
    index_3.m3u8
    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitles",NAME="caption_1",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="eng",URI="index_4_0.m3u8"
```

En este ejemplo de lista de reproducción multivariante:
+ Las `#EXT-X-STREAM-INF` etiquetas definen distintas variantes de representación con distintas resoluciones y velocidades de bits
+ Cada copia hace referencia a una lista de reproducción multimedia (por ejemplo) `index_1.m3u8`
+ La `#EXT-X-MEDIA` etiqueta define una pista de subtítulos

El siguiente ejemplo muestra una lista de reproducción multimedia de HLS AWS Elemental MediaTailor recibida por HLS desde el origen del contenido. En este ejemplo se utilizan etiquetas `EXT-X-CUE-OUT` y `EXT-X-CUE-IN` para describir oportunidades de espacios publicitarios.

```
#EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-TARGETDURATION:7
    #EXT-X-MEDIA-SEQUENCE:8779957
    #EXTINF:6.006,
    index_1_8779957.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779958.ts?m=1566416212
    #EXTINF:5.372,
    index_1_8779959.ts?m=1566416212
    #EXT-OATCLS-SCTE35:/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXT-X-CUE-OUT:20.020
    #EXTINF:0.634,
    index_1_8779960.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=0.634,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:6.006,
    index_1_8779961.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=6.640,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:6.006,
    index_1_8779962.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=12.646,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:6.006,
    index_1_8779963.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=18.652,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:1.368,
    index_1_8779964.ts?m=1566416212
    #EXT-X-CUE-IN
    #EXTINF:4.638,
    index_1_8779965.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779966.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779967.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779968.ts?m=1566416212
```

En este ejemplo de lista de reproducción multimedia:
+ Las `#EXTINF` etiquetas especifican la duración de cada segmento
+ La `#EXT-X-CUE-OUT` etiqueta marca el comienzo de una pausa publicitaria
+ Las `#EXT-X-CUE-OUT-CONT` etiquetas proporcionan información sobre la pausa publicitaria en curso
+ La `#EXT-X-CUE-IN` etiqueta marca el final de la pausa publicitaria

## Ejemplos de manifiestos personalizados de HLS
<a name="manifest-hls-ex-personalized"></a>

El siguiente ejemplo muestra una lista de reproducción multivariante de HLS que se personalizó. AWS Elemental MediaTailor 

```
#EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-MEDIA:LANGUAGE="eng",AUTOSELECT=YES,FORCED=NO,TYPE=SUBTITLES,URI="../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/3.m3u8",GROUP-ID="subtitles",DEFAULT=YES,NAME="caption_1"
    #EXT-X-INDEPENDENT-SEGMENTS
    #EXT-X-STREAM-INF:CODECS="avc1.640029,mp4a.40.2",AVERAGE-BANDWIDTH=2526299,RESOLUTION=960x540,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=2665726
    ../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0.m3u8
    #EXT-X-STREAM-INF:CODECS="avc1.640029,mp4a.40.2",AVERAGE-BANDWIDTH=3736264,RESOLUTION=1280x720,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=3956044
    ../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/1.m3u8
    #EXT-X-STREAM-INF:CODECS="avc1.4D401E,mp4a.40.2",AVERAGE-BANDWIDTH=951107,RESOLUTION=640x360,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=995315
    ../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/2.m3u8
```

Observe cómo MediaTailor se ha modificado la lista de reproducción multimedia URLs para incluir información específica de la sesión que permita la inserción personalizada de anuncios.

El siguiente ejemplo muestra una lista de reproducción multimedia personalizada. AWS Elemental MediaTailor 

```
#EXTM3U
    #EXT-X-VERSION:6
    #EXT-X-TARGETDURATION:7
    #EXT-X-MEDIA-SEQUENCE:8779957
    #EXT-X-DISCONTINUITY-SEQUENCE:0
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779957.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779958.ts?m=1566416212
    #EXTINF:5.372,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779959.ts?m=1566416212
    #EXT-X-DISCONTINUITY
    #EXTINF:3.066667,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779960
    #EXTINF:3.0,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779961
    #EXTINF:3.0,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779962
    #EXTINF:3.0,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779963
    #EXTINF:2.966667,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779964
    #EXT-X-DISCONTINUITY
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779963.ts?m=1566416212
    #EXTINF:1.368,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779964.ts?m=1566416212
    #EXTINF:4.638,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779965.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779966.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779967.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779968.ts?m=1566416212
```

En este ejemplo de lista de reproducción multimedia personalizada:
+ MediaTailor ha insertado segmentos de anuncios entre los segmentos de contenido
+ Las `#EXT-X-DISCONTINUITY` etiquetas marcan las transiciones entre el contenido y los anuncios
+ Los segmentos de contenido se envían desde el servidor de origen (MediaPackage en este ejemplo)
+ Los segmentos de anuncios se publican desde MediaTailor el almacenamiento de segmentos de anuncios

## Diferencias clave en los manifiestos personalizados
<a name="manifest-hls-key-differences"></a>

Cuando MediaTailor personaliza los manifiestos del HLS, realiza varios cambios importantes:

Cambios en la lista de reproducción multivariante  
+  URLs Las listas de reproducción variantes se reescriben para que apunten a las MediaTailor administradas e incluyan información de URLs la sesión
+ El orden de las etiquetas se puede reorganizar para una reproducción óptima

Cambios en las listas de reproducción variantes  
+ Los marcadores de anuncios (`EXT-X-CUE-OUT`,`EXT-X-CUE-IN`) se sustituyen por segmentos de anuncios reales
+ Los marcadores de discontinuidad (`EXT-X-DISCONTINUITY`) se añaden en content/ad los límites
+  URLs Los segmentos de contenido se reescriben para que apunten al origen o a la CDN
+  URLs Los segmentos de anuncios se añaden para apuntar al almacenamiento MediaTailor del segmento de anuncios

Entender estos cambios puede ayudarte a solucionar problemas en tus MediaTailor flujos de trabajo y a garantizar una configuración adecuada de tu CDN y tu reproductor.

## Temas relacionados
<a name="manifest-hls-related-topics"></a>

Para obtener más información sobre los manifiestos HLS MediaTailor, consulte los siguientes temas:
+ [Tipos de listas de reproducción HLS](hls-playlist-types.md)- Explicación detallada de los tipos de listas de reproducción HLS
+ [Uso de una CDN para optimizar la personalización de MediaTailor anuncios y la entrega de contenido](integrating-cdn.md)- Información sobre el uso de una CDN con MediaTailor
+ [Cómo funciona MediaTailor la inserción de anuncios](what-is-flow.md)- Descripción general de cómo funciona la inserción de MediaTailor anuncios

# Integrar una fuente MPEG-DASH
<a name="manifest-dash"></a>

AWS Elemental MediaTailor admite manifiestos en `.mpd` directo y de vídeo bajo demanda (VOD) que sigan las directrices del perfil dinámico DASH. MediaTailor acepta entradas de manifiestos compatibles con el DASH de varios períodos y de un solo período, y ofrece salidas de manifiestos de varios períodos que cumplen con el DASH. 

Los manifiestos de entrada deben tener lo siguiente:
+ Secuencias de eventos SCTE-35 con ajustes de información de división para `splice insert `o` time signal`. Los ajustes se pueden proporcionar en XML vacío o en binario codificado en base64. 
+ `Segment templates` con `segment timelines`. 

En el caso de los manifiestos publicados, MediaTailor requiere que las actualizaciones del servidor de origen no modifiquen lo siguiente: 
+ Horas de inicio del período, especificadas en el atributo `start`. 
+ Valores de `presentationTimeOffset` en las plantillas de segmento de las representaciones del periodo. 

Se recomienda que el anuncio tenga la misma disponibilidad y la misma `AdaptationSet` `Representation` configuración que los períodos de transmisión del contenido. AWS Elemental MediaTailor utiliza estos ajustes para transcodificar los anuncios para que coincidan con el flujo de contenido, de forma que se pueda cambiar fácilmente entre ambos.

En las siguientes secciones, se proporciona más información sobre cómo se gestionan los anuncios MediaTailor en los manifiestos de DASH.

**Topics**
+ [Marcadores de anuncios de DASH](dash-ad-markers.md)
+ [DASH y duración de disponibilidad](dash-ad-avail-duration.md)
+ [Numeración de segmentos del manifiesto de DASH](dash-manifest-segment-numbering.md)
+ [Ejemplos de DASH MPD](manifest-dash-example.md)
+ [Función de ubicación DASH](dash-location-feature.md)

# Marcadores de anuncios de DASH
<a name="dash-ad-markers"></a>

MediaTailor 

AWS Elemental MediaTailor Utiliza los marcadores de exclusión SCTE-35 para identificar los anuncios disponibles en el manifiesto de DASH mediante la siguiente lógica: 
+ **DASH de varios períodos**: MediaTailor inserta anuncios para el primero `Event` de cada uno de ellos `Period` que contenga uno o varios marcadores. `SpliceInsert` `TimeSignal` MediaTailorignora los marcadores adicionales `Event` en el. `Period`
+ **DASH de un solo período**: MediaTailor inserta anuncios `Event` en cada uno de los `Period` que contienen uno `SpliceInsert` o varios marcadores`TimeSignal`.

De forma predeterminada, AWS Elemental MediaTailor gestiona los manifiestos de DASH como manifiestos de varios períodos. Puede cambiar la configuración de manifiestos de DASH de un solo período desde su servidor de origen. Para obtener información, consulte [Crear una configuración MediaTailor de reproducción](configurations-create.md).

En las siguientes secciones se proporciona información adicional sobre el manejo de los marcadores de anuncios de DASH y se muestran los manifiestos decorados desde su origen.

## Requisitos XML del manifiesto de origen de DASH
<a name="dash-ad-markers-examples"></a>

Los marcadores de anuncios de los manifiestos de DASH del origen deben tener el formato adecuado MediaTailor para identificar las pausas publicitarias. En los siguientes temas se describen estos requisitos de formato en XML transparente.

### `SpliceInsert`en XML transparente
<a name="dash-splice-xml"></a>

`SpliceInsert`los marcadores de anuncios en XML transparente deben contener lo siguiente:
+ `EventStream`debe tener el siguiente atributo: `schemeIdUri=urn:scte:scte35:2013:xml`
+ `Event`debe contener `scte35:SpliceInfoSection` 
+ `scte35:SpliceInfoSection`debe aguantar `scte35:SpliceInsert` 
+ `scte35:SpliceInsert`debe tener el siguiente atributo: `outOfNetworkIndicator="true"`

**Example `SpliceInsert`en XML**  
En el siguiente ejemplo, los marcadores SCTE obligatorios aparecen en negrita.   

```
<Period start="PT444806.040S" id="123586" duration="PT15.000S">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="1350000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095">
        <scte35:SpliceInsert spliceEventId="4026531855" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
            <scte35:Program><scte35:SpliceTime ptsTime="5672624400"/></scte35:Program>
            <scte35:BreakDuration autoReturn="true" duration="1350000"/>
        </scte35:SpliceInsert>
      </scte35:SpliceInfoSection>
    </Event>
  .
  .
  .
</Period>
```

### `TimeSignal`en XML transparente
<a name="dash-signal-xml"></a>

`TimeSignal`los marcadores de anuncios en XML transparente deben contener lo siguiente:
+ `EventStream`debe tener el siguiente atributo: `schemeIdUri=urn:scte:scte35:2013:xml`
+ `Event`debe contener `scte35:SpliceInfoSection`
+ `scte35:SpliceInfoSection`debe aguantar `scte35:TimeSignal`
+ `scte35:SpliceInfoSection`también debe sostener `scte35:SegmentationDescriptor`
+ `scte35:SegmentationDescriptor`debe tener el siguiente atributo, donde el valor es válido[Números recortados](#dash-signal-xml-values): `segmentationTypeId="xx"`
+ `scte35:SegmentationDescriptor`debe mantener `scte35:SegmentationUpid` 
<a name="dash-signal-xml-values"></a>
**Números recortados**  
Los siguientes son los números de corte admitidos para el. `segmentationTypeId`


| Mensaje de segmentación | Valor de segmentationTypeId | Valor hexadecimal | 
| --- | --- | --- | 
| Fin del anuncio del distribuidor | 51 | 0x51 | 
| Inicio del anuncio del distribuidor | 50 | 0x32 | 
| Se acabó la oportunidad de colocación de distribuidores | 55 | 0x37 | 
| Comienza la oportunidad de colocación de distribuidores | 54 | 0x36 | 
| Pausa final | 35 | 0x23 | 
| Fin del anuncio del proveedor | 49 | 0x31 | 
| Inicio del anuncio del proveedor | 48 | 0x30 | 
| Fin de la oportunidad de colocación de proveedores | 57 | 0x39 | 
| Inicio de la oportunidad de colocación superpuesta de proveedores | 56 | 0x38 | 
| Se acabó la oportunidad de colocación de proveedores | 53 | 0x35 | 
| Comienza la oportunidad de colocación de proveedores | 52 | 0x34 | 
| Comience el descanso | 34 | 0x22 | 

**Example `TimeSignal`en XML**  
En el siguiente ejemplo, los marcadores SCTE obligatorios aparecen en negrita.   

```
<Period start="PT346530.250S" id="178443" duration="PT61.561S">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="5310000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183003" tier="4095">
        <scte35:TimeSignal>
          <scte35:SpliceTime ptsTime="3442857000"/>
         </scte35:TimeSignal>
        <scte35:SegmentationDescriptor segmentationEventId="1414668" segmentationEventCancelIndicator="false" segmentationDuration="8100000" segmentationTypeId="52" segmentNum="0" segmentsExpected="0">
            <scte35:DeliveryRestrictions webDeliveryAllowedFlag="false" noRegionalBlackoutFlag="false" archiveAllowedFlag="false" deviceRestrictions="3"/>
            <scte35:SegmentationUpid segmentationUpidType="12" segmentationUpidLength="2">0100</scte35:SegmentationUpid>
          </scte35:SegmentationDescriptor>
        </scte35:SpliceInfoSection>
    </Event>
  .
  .
  .
</Period>
```

## Manifiesto de origen DASH: requisitos binarios codificados en base64
<a name="dash-base64"></a>

Los marcadores de anuncios de los manifiestos de DASH del origen deben tener el formato adecuado MediaTailor para identificar las pausas publicitarias. En los siguientes temas se describen estos requisitos de formato en formato binario codificado en base64.

`TimeSignal`Tanto los marcadores como los `SpliceInsert` anuncios de los manifiestos codificados en base64 deben contener lo siguiente:
+ `EventStream`debe tener el siguiente atributo: `urn:scte:scte35:2014:xml+bin`
+ `Event`debe contener `scte35:Signal`
+ `scte35:Signal`debe contener un `scte35:Binary` binario codificado en base64. 

El binario decodificado debe incluir la misma información que la necesaria para borrar los marcadores de anuncios XML. `splice_info_section`
+ El tipo de comando debe ser uno o `splice_insert()` `time_signal()`
+ La configuración adicional debe cumplir con la descrita en [`TimeSignal`en XML transparente](#dash-signal-xml) y[`SpliceInsert`en XML transparente](#dash-splice-xml).

 Los binarios descodificados deben proporcionar una `splice_info_section` con el mismo conjunto de información de igual modo que proporcionaría el XML vacío en un elemento `scte35:SpliceInfoSection`. El tipo de comando debe ser `splice_insert()` o `time_signal()`, y la configuración adicional deben cumplir con los tipos descritos anteriormente para la distribución de XML vacío. 

En el siguiente ejemplo se muestra esta opción con los marcadores necesarios en negrita.

```
<Period start="PT444806.040S" id="123586" duration="PT15.000S">
    <EventStream schemeIdUri="urn:scte:scte35:2014:xml+bin" timescale="1">
      <Event presentationTime="1541436240" duration="24" id="29">
        <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016">
          <scte35:Binary>/DAhAAAAAAAAAP/wEAUAAAHAf+9/fgAg9YDAAAAAAAA25aoh</scte35:Binary>
        </scte35:Signal>
      </Event>
      <Event presentationTime="1541436360" duration="24" id="30">
        <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016">
          <scte35:Binary>QW5vdGhlciB0ZXN0IHN0cmluZyBmb3IgZW5jb2RpbmcgdG8gQmFzZTY0IGVuY29kZWQgYmluYXJ5Lg==</scte35:Binary>
        </scte35:Signal>
      </Event>
  .
  .
  .
</Period>
```

A continuación se presenta el binario descodificado para el primer evento enumerado en el ejemplo anterior. La configuración de `splice_command_type` es 5, lo que indica `splice_insert`. 

```
{
        "table_id": 252,
        "section_syntax_indicator": false,
        "private_indicator": false,
        "section_length": 33,
        "protocol_version": 0,
        "encrypted_packet": false,
        "encryption_algorithm": 0,
        "pts_adjustment": 0,
        "cw_index": 0,
        "tier": "0xFFF",
        "splice_command_length": 16,
        "splice_command_type": 5,
        "splice_command": {
          "splice_event_id": 448,
          "splice_event_cancel_indicator": false,
          "out_of_network_indicator": true,
          "program_splice_flag": true,
          "duration_flag": true,
          "splice_immediate_flag": false,
          "utc_splice_time": {
            "time_specified_flag": false,
            "pts_time": null
          },
          "component_count": 0,
          "components": null,
          "break_duration": {
            "auto_return": false,
            "duration": {
              "pts_time": 2160000,
              "wall_clock_seconds": 24.0,
              "wall_clock_time": "00:00:24:00000"
            }
          },
          "unique_program_id": 49152,
          "avail_num": 0,
          "avails_expected": 0
        },
        "splice_descriptor_loop_length": 0,
        "splice_descriptors": null,
        "Scte35Exception": {
          "parse_status": "SCTE-35 cue parsing completed with 0 errors.",
          "error_messages": [],
          "table_id": 252,
          "splice_command_type": 5
        }
      }
```

# DASH y duración de disponibilidad
<a name="dash-ad-avail-duration"></a>

Durante la reproducción, cuando AWS Elemental MediaTailor detecta que un anuncio está disponible, este sustituye una parte o la totalidad del anuncio por anuncios. MediaTailor comienza a sustituir el anuncio al principio de la disponibilidad del anuncio e incluye los siguientes anuncios: 
+ Si el anuncio disponible especifica una duración, MediaTailor incluye tantos anuncios como quepan dentro del límite de duración, sin sobrescribir el contenido siguiente. 
+ Si no se indica una duración, se MediaTailor incluyen los anuncios hasta el final del periodo de disponibilidad del anuncio. Para manifiestos de varios períodos, este es el final del período. En el caso de los manifiestos de un solo período, este es el final del evento. MediaTailor no reproduce anuncios después del final del anuncio disponible y, cuando llega al final, trunca el anuncio actual en lugar de sobrescribir el contenido siguiente. 

**¿Cómo AWS Elemental MediaTailor busca la duración de disponibilidad del anuncio**  
AWS Elemental MediaTailor busca una configuración de duración en el siguiente orden: 

1. `Event` `duration`

1. En el caso de inserciones de división, la `scte35:BreakDuration` `duration`

1. En el caso de la señal de tiempo, la `scte35:SegmentationDescriptor` `segmentationDuration`

Si AWS Elemental MediaTailor no encuentra ninguno de estos ajustes, gestiona la inclusión de anuncios sin duración. 

En el siguiente ejemplo se muestra un `Event` que incluye una `duration`.

```
  <Period start="PT444806.040S" id="123586" duration="PT15.000S">
          <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
            <Event duration="1350000">
              <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095">
                <scte35:SpliceInsert spliceEventId="4026531855" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
                  <scte35:Program><scte35:SpliceTime ptsTime="5672624400"/></scte35:Program>
                  <scte35:BreakDuration autoReturn="true" duration="1350000"/>
                </scte35:SpliceInsert>
              </scte35:SpliceInfoSection>
            </Event>
              ...
```

En el siguiente ejemplo se muestra un espacio publicitario para el que no se ha especificado ninguna duración. El `Event` no tiene `duration` y el elemento `scte35:SpliceInsert` no contiene ningún elemento secundario `scte35:BreakDuration`.

```
  <Period start="PT444836.720S" id="123597" duration="PT12.280S">
          <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
            <Event>
              <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095">
                <scte35:SpliceInsert spliceEventId="4026531856" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
                  <scte35:Program><scte35:SpliceTime ptsTime="5675385600"/></scte35:Program>
                </scte35:SpliceInsert>
              </scte35:SpliceInfoSection>
            </Event>
            ...
```

# Numeración de segmentos del manifiesto de DASH
<a name="dash-manifest-segment-numbering"></a>

MediaTailor admite los segmentos multimedia `<SegmentTemplate>` que se definen mediante `<SegmentTimeline>` y el `media` atributo. Puede especificar la lista de segmentos multimedia en el atributo `media` utilizando el identificador `$Number$` o el identificador `$Time$`.

 En el siguiente ejemplo se muestra una `SegmentTemplate` con una configuración de atributo `media` que utiliza el identificador `$Number$`.

```
        <SegmentTemplate initialization="index_subtitles_4_0_init.mp4?m=1532451703" media="index_subtitles_4_0_$Number$.mp4?m=1532451703" presentationTimeOffset="1062336677920" startNumber="2349899" timescale="90000">
                <SegmentTimeline>
                  <S d="540540" r="2" t="1062338840080"/>
                  <S d="69069" t="1062340461700"/>
                </SegmentTimeline>
              </SegmentTemplate>
```

 En el siguiente ejemplo se muestra una `SegmentTemplate` con una configuración de atributo `media` que utiliza el identificador `$Time$`.

```
        <SegmentTemplate initialization="asset_720p_8000K_9_init.mp4" media="asset_720p_8000K_9_$Time$.mp4" startNumber="1" timescale="90000">
                <SegmentTimeline>
                  <S d="180000" r="2" t="0"/>
                  <S d="147000" t="540000"/>
                </SegmentTimeline>
              </SegmentTemplate>
```

# Ejemplos de DASH MPD
<a name="manifest-dash-example"></a>

En las siguientes secciones se proporcionan ejemplos de DASH originados MPDs y personalizados MPDs. Entender estos ejemplos puede ayudarte a configurar y solucionar problemas de tus MediaTailor flujos de trabajo.

Para obtener información sobre cómo se aplican los parámetros de consulta a los manifiestos y segmentos de DASH, consulte[MediaTailor Inicialización de sesión implícita de DASH](manifest-query-parameters-dash-implicit-session-initialization.md).

## Comprensión de la estructura MPD de DASH
<a name="dash-mpd-overview"></a>

La transmisión dinámica adaptativa a través de HTTP (DASH) utiliza un manifiesto de descripción de presentación multimedia (MPD) para ofrecer contenido en streaming. El MPD es un documento XML que describe la estructura y la disponibilidad del contenido multimedia.

MPD (descripción de la presentación multimedia)  
El MPD es el archivo de manifiesto principal de la transmisión de DASH que describe la estructura y la disponibilidad del contenido multimedia. Contiene información sobre los períodos, los conjuntos de adaptaciones, las representaciones y los segmentos que componen el contenido de streaming.  
Este tipo de manifiesto también se conoce con otros nombres en varios contextos, como manifiesto de DASH, MPD de DASH, manifiesto maestro (en comparación con HLS) o manifiesto de presentación.  
En MediaTailor los flujos de trabajo, el MPD es el punto de entrada para las solicitudes de reproducción y es donde comienza la personalización de los anuncios.

Periodo  
Un período es una sección temporal de una presentación de DASH. Cada período contiene uno o más conjuntos de adaptaciones y representa un período de tiempo dedicado a los medios de comunicación. En los flujos de trabajo de inserción de anuncios, normalmente se utilizan períodos separados para delimitar entre el contenido y los anuncios.  
En MediaTailor los flujos de trabajo, los períodos se utilizan para separar el contenido principal del contenido del anuncio, y cada anuncio suele estar representado por su propio período.

AdaptationSet  
Y AdaptationSet agrupa un conjunto de versiones codificadas intercambiables de uno o varios componentes del contenido multimedia. Por ejemplo, uno AdaptationSet puede contener varios niveles de calidad de vídeo, mientras que otro puede contener varias opciones de idioma de audio.  
En MediaTailor los flujos de trabajo, AdaptationSets se conservan durante la inserción del anuncio para mantener la coherencia de los tipos de medios entre el contenido y los anuncios.

Representación  
Una representación es una versión codificada específica del contenido multimedia dentro de un AdaptationSet. Por lo general, cada representación difiere en la velocidad de bits, la resolución u otros parámetros de codificación, lo que permite a los clientes seleccionar la versión más adecuada en función de las condiciones de la red y las capacidades del dispositivo.  
En MediaTailor los flujos de trabajo, las representaciones de los períodos publicitarios se ajustan lo más posible a las representaciones de los períodos de contenido para garantizar una experiencia de visualización fluida.

Para obtener información más detallada sobre los tipos de manifiestos de DASH, consulte[Tipos de manifiestos de DASH](dash-manifest-types.md).

Para obtener información sobre la estructura y la configuración de los manifiestos de DASH AWS Elemental MediaPackage, consulte la sección de la Guía del MediaPackage usuario sobre la descripción general de DASH.

## Ejemplos de MPD de DASH en vivo
<a name="dash-manifest-live-examples"></a>

Esta sección proporciona ejemplos de DASH MPDs en vivo. Cada ejemplo muestra un MPD tal como se recibió del servidor de origen y, después, MediaTailor se personalizó el MPD con anuncios.

### Ejemplo de empalme e inserto de DASH MPD
<a name="dash-manifest-splice-insert-example"></a>

**Ejemplo de MPD de origen DASH para un inserto de empalme**  
El siguiente ejemplo de un MPD muestra la disponibilidad de un anuncio en un manifiesto recibido por DASH desde el origen del contenido. En este ejemplo, se usa el `SpliceInsert` marcador para indicar la disponibilidad de un anuncio.

```
<Period start="PT173402.036S" id="46041">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="9450000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095">
        <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
          <scte35:Program><scte35:SpliceTime ptsTime="7835775000"/></scte35:Program>
          <scte35:BreakDuration autoReturn="true" duration="9450000"/>
        </scte35:SpliceInsert>
        <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000">
          <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/>
          <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/>
          <scte35:SegmentationTypeID segmentationType="52"/>
          <scte35:SegmentNum segmentNum="1"/>
          <scte35:SegmentsExpected segmentsExpected="1"/>
        </scte35:SegmentationDescriptor>
      </scte35:SpliceInfoSection>
    </Event>
  </EventStream>
  <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
    <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F">
      <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501">
        <SegmentTimeline>
          <S t="10395907501" d="60060" r="29"/>
          <S t="10397709301" d="45045"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
  <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng">
    <Representation id="2" bandwidth="96964" audioSamplingRate="48000" codecs="mp4a.40.2">
      <SegmentTemplate timescale="48000" media="index_audio_2_0_$Number$.mp4?m=1528475245" initialization="index_audio_2_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="16633452001">
        <SegmentTimeline>
          <S t="16633452289" d="96256" r="3"/>
          <S t="16633837313" d="95232"/>
          <S t="16633932545" d="96256" r="4"/>
          <S t="16634413825" d="95232"/>
          <S t="16634509057" d="96256" r="5"/>
          <S t="16635086593" d="95232"/>
          <S t="16635181825" d="96256" r="4"/>
          <S t="16635663105" d="95232"/>
          <S t="16635758337" d="96256" r="5"/>
          <S t="16636335873" d="71680"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

En este ejemplo de MPD de origen:
+ El `<EventStream>` elemento contiene marcadores SCTE-35 que indican y están disponibles
+ El `<scte35:SpliceInsert>` elemento proporciona detalles sobre la disponibilidad del anuncio
+ El `<scte35:BreakDuration>` elemento especifica la duración de la pausa publicitaria
+ Los `<AdaptationSet>` elementos definen las transmisiones de vídeo y audio disponibles

**Ejemplo de MPD personalizado de DASH para empalme**  
AWS Elemental MediaTailor personaliza el anuncio disponible con especificaciones publicitarias. Las personalizaciones reflejan los datos del visor que se reciben del reproductor y las campañas publicitarias que se encuentran actualmente en curso. 

En el siguiente ejemplo, se muestra la disponibilidad de un anuncio después AWS Elemental MediaTailor de personalizarlo. 

```
<Period id="178443_1" start="PT96H15M30.25S">
  <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL>
  <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
    <SegmentTemplate startNumber="1" timescale="90000"/>
    <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920">
      <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
    <Representation bandwidth="4000000" codecs="avc1.64001f" height="720" id="2" width="1280">
      <SegmentTemplate initialization="nbc_fallback_ad_2_720p_9init.mp4" media="nbc_fallback_ad_2_720p_9_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
  <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng">
    <Representation id="8" bandwidth="128000" audioSamplingRate="48000" codecs="mp4a.40.2">
      <SegmentTemplate initialization="nbc_fallback_ad_2_audio_2init.mp4" media="nbc_fallback_ad_2_audio_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

En este ejemplo de MPD personalizado:
+ MediaTailor ha creado un nuevo período para el contenido del anuncio
+ El `<BaseURL>` elemento apunta a la ubicación del contenido del anuncio
+ Los `<AdaptationSet>` elementos mantienen una estructura similar a la del contenido
+ Los `<Representation>` elementos proporcionan diferentes niveles de calidad para el contenido del anuncio

### Ejemplo de señal horaria DASH MPD
<a name="dash-manifest-time-signal-example"></a>

**Ejemplo de MPD de origen DASH para señal horaria**  
El siguiente ejemplo de un MPD muestra la disponibilidad de un anuncio en un manifiesto recibido por DASH desde el origen del contenido. En este ejemplo, se usa el `TimeSignal` marcador para indicar la disponibilidad de un anuncio.

```
<Period start="PT173402.036S" id="46041">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="9450000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095">
        <scte35:TimeSignal>
          <scte35:SpliceTime ptsTime="7835775000"/>
        </scte35:TimeSignal>
        <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000">
          <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/>
          <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/>
          <scte35:SegmentationTypeID segmentationType="52"/>
          <scte35:SegmentNum segmentNum="1"/>
          <scte35:SegmentsExpected segmentsExpected="1"/>
        </scte35:SegmentationDescriptor>
      </scte35:SpliceInfoSection>
    </Event>
  </EventStream>
  <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
    <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F">
      <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501">
        <SegmentTimeline>
          <S t="10395907501" d="60060" r="29"/>
          <S t="10397709301" d="45045"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

En este ejemplo de MPD de origen:
+ El `<scte35:TimeSignal>` elemento se usa en lugar de `<scte35:SpliceInsert>`
+ `<scte35:SegmentationDescriptor>`Proporciona información adicional sobre la disponibilidad del anuncio

**Ejemplo de MPD personalizado de DASH para señal horaria**  
AWS Elemental MediaTailor personaliza el anuncio disponible con especificaciones publicitarias. Las personalizaciones reflejan los datos del visor que se reciben del reproductor y las campañas publicitarias que se encuentran actualmente en curso. 

En el siguiente ejemplo, se muestra la disponibilidad de un anuncio después AWS Elemental MediaTailor de personalizarlo. 

```
<Period id="178443_1" start="PT96H15M30.25S">
  <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL>
  <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
    <SegmentTemplate startNumber="1" timescale="90000"/>
    <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920">
      <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

El MPD personalizado para la señal horaria es similar al de la inserción de empalmes, ya que MediaTailor crea un nuevo período para el contenido del anuncio.

## Ejemplos de MPD de VOD DASH
<a name="dash-manifest-vod-examples"></a>

En esta sección se proporcionan ejemplos de DASH de vídeo bajo demanda (VOD). MPDs En cada ejemplo se muestra un MPD tal como se recibió del servidor de origen y, después, MediaTailor se personalizó el MPD con anuncios.

Los VOD DASH MPDs siguen la misma estructura que en directo MPDs, pero normalmente tienen un `type="static"` atributo en el elemento MPD y pueden contener varios períodos para distintos segmentos de contenido.

Para ver ejemplos de VOD DASH MPDs, consulte la MediaTailor documentación sobre. [Marcadores de anuncios de DASH](dash-ad-markers.md)

## Diferencias clave en la personalización MPDs
<a name="dash-manifest-key-differences"></a>

Cuando MediaTailor personaliza DASH MPDs, introduce varios cambios importantes:

Manejo de períodos  
+ Se crean nuevos períodos para el contenido de los anuncios
+ Las horas de inicio de los períodos se ajustan para mantener la continuidad del cronograma
+ EventStream los elementos con marcadores SCTE-35 se procesan y eliminan

AdaptationSet y manejo de representaciones  
+ AdaptationSets en los anuncios, los períodos se crean para que coincidan con el contenido AdaptationSets
+ Las representaciones se crean para diferentes niveles de calidad del contenido del anuncio
+ SegmentTemplate los elementos se actualizan para apuntar al contenido del anuncio

Entender estos cambios puede ayudarte a solucionar problemas en tus MediaTailor flujos de trabajo y a garantizar una configuración adecuada de la CDN y el reproductor.

## Temas relacionados
<a name="dash-manifest-related-topics"></a>

Para obtener más información sobre DASH MPDs MediaTailor, consulte los siguientes temas:
+ [Tipos de manifiestos de DASH](dash-manifest-types.md)- Explicación detallada de los tipos de manifiestos de DASH
+ [Uso de una CDN para optimizar la personalización de MediaTailor anuncios y la entrega de contenido](integrating-cdn.md)- Información sobre el uso de una CDN con MediaTailor
+ [Cómo funciona MediaTailor la inserción de anuncios](what-is-flow.md)- Descripción general de cómo funciona la inserción de MediaTailor anuncios
+ Para obtener información completa sobre la estructura y MediaPackage configuración de los manifiestos de DASH, consulta la sección de la Guía del MediaPackage usuario sobre la descripción general de DASH.

# Función de ubicación DASH
<a name="dash-location-feature"></a>

En esta sección se proporciona información acerca de la característica de ubicación de DASH, que está habilitada de forma predeterminada en AWS Elemental MediaTailor. Lea esta sección si crea reglas de enrutamiento de la red de entrega de contenido (CDN) para acceder a los MediaTailor manifiestos. Léala también si utiliza informes del lado del servidor con reproductores que no admiten redireccionamientos HTTP persistentes.

**¿Qué es la característica de ubicación?**  
La característica de ubicación permite a los reproductores que no admiten redireccionamientos HTTP "sticky" proporcionar un comportamiento "sticky" en sus solicitudes de actualización de manifiestos. 

AWS Elemental MediaTailor utiliza la inicialización sin sesión y requiere un comportamiento de redireccionamiento HTTP continuo por parte de sus reproductores. Con los informes del lado del servidor, cuando el jugador solicita una actualización del manifiesto a MediaTailor, el servicio emite una redirección temporal 302 para dirigir al jugador a un punto final para ver el manifiesto personalizado. MediaTailor incluye un identificador de sesión en la respuesta, como parámetro de consulta. El objetivo es que el reproductor siga la URL durante toda la sesión, pero los reproductores que no admiten redireccionamientos HTTP persistentes eliminan el redireccionamiento y vuelven a la dirección URL original. Cuando un jugador vuelve a la URL original, MediaTailor crea una nueva sesión para cada nueva solicitud en lugar de quedarse con la sesión original. Esto puede provocar que se dañe el manifiesto. 

La especificación DASH proporciona una solución a este problema en la función de ubicación, que está habilitada de forma predeterminada en AWS Elemental MediaTailor las configuraciones. Cuando esta función está habilitada, MediaTailor coloca la URL absoluta en la `<Location>` etiqueta del manifiesto. Los reproductores que no admiten redireccionamientos HTTP "sticky" pueden utilizar la dirección URL proporcionada en `<Location>` para solicitar actualizaciones al manifiesto. 

**¿Tengo que deshabilitar la característica de ubicación en mi configuración?**  
La característica de ubicación invalida todas las reglas de direccionamiento de CDN configuradas para acceder a los manifiestos de AWS Elemental MediaTailor , por lo que es posible que tenga que deshabilitarla. La característica de ubicación no afecta al almacenamiento en caché de CDN de segmentos de contenido o anuncios. 

Busque su caso de uso en la lista siguiente para determinar si necesita deshabilitar la característica de ubicación para su configuración y cómo administrarla:
+ Si no dispone de reglas de direccionamiento de CDN para acceder a los manifiestos de AWS Elemental MediaTailor , deje la configuración de ubicación habilitada. 
+ De lo contrario, utilice las reglas siguientes:
  + Si no utiliza informes del lado del servidor o si todos los reproductores admiten redireccionamientos HTTP "sticky", deshabilite la característica de ubicación. Para obtener información sobre cómo hacer esto en la consola, consulte [Crear una configuración MediaTailor de reproducción](configurations-create.md).
  + De lo contrario, póngase en contacto con [AWS Support](https://aws.amazon.com/premiumsupport/).

**¿Tengo que utilizar la característica de ubicación?**  
Debe utilizar la función de ubicación para los jugadores que no admitan redireccionamientos HTTP fijos. Utilice la dirección URL proporcionada en la etiqueta `<Location>` para todas las solicitudes de actualización del manifiesto. 

**Ejemplo**  
Ejemplo URLs y `<Location>` etiqueta de ejemplo.
+   
**Example Ejemplo: dirección URL de solicitud inicial**  

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd
  ```
+   
**Example Ejemplo: respuesta de redireccionamiento 302**  

  ```
  /v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd?aws.sessionId=0e5d9b45-ae97-49eb-901b-893d043e0aa6
  ```
+   
**Example Ejemplo: etiqueta de ubicación en un manifiesto**  

  ```
  <Location>https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd?aws.sessionId=0e5d9b45-ae97-49eb-901b-893d043e0aa6</Location>
  ```

# Proteger las interacciones de AWS Elemental MediaTailor origen con SiGv4
<a name="origin-sigv4"></a>

La versión 4 de Signature (SiGv4) es un protocolo de firma que se utiliza para autenticar MediaTailor las solicitudes de origen compatibles a través de HTTPS. MediaTailor solo admite la comunicación HTTPS y no permite las conexiones HTTP. Con la firma SigV4, MediaTailor incluye un encabezado de autorización firmado en la solicitud de origen HTTPS a MediaTailor Channel Assembly, Amazon S3 y la AWS Elemental MediaPackage versión 2. 

Puedes usar SigV4 en tu origen para asegurarte de que las solicitudes de manifiesto solo se tramiten si proceden de un encabezado de autorización firmado MediaTailor y contienen un encabezado de autorización firmado. De esta forma, se bloquea el acceso a tu contenido de origen a las configuraciones de MediaTailor reproducción no autorizadas. Si el encabezado de autorización firmado es válido, tu origen tramitará la solicitud. Si no es válido, se produce un error en la solicitud.

En las siguientes secciones se describen los requisitos para utilizar la firma MediaTailor SiGv4 en los orígenes compatibles.

## MediaTailor Requisitos de ensamblaje de canales
<a name="origin-sigv4-ca"></a>

Si utiliza SiGv4 para proteger el origen de su ensamblaje de MediaTailor canales, debe cumplir los siguientes requisitos MediaTailor para acceder al manifiesto:
+ La URL base de origen de su MediaTailor configuración debe ser un canal de Channel Assembly con el siguiente formato: `channel-assembly.mediatailor.region.amazonaws.com`
+ Su origen debe estar configurado para usar HTTPS. MediaTailor solo admite la comunicación HTTPS y no permite las conexiones HTTP. Si HTTPS no está activado en el origen, MediaTailor no firmará la solicitud.
+ Tu canal debe tener una política de acceso al origen que incluya lo siguiente:
  + Acceso principal para acceder MediaTailor a tu canal. Concede acceso a **mediatailor.amazonaws.com**.
  + IAM permite a **mediatailor: leer todas las listas de reproducción multivariantes a las que hace referencia la configuración**. GetManifest MediaTailor 

  Para obtener información sobre cómo establecer una política en el canal, consulte. [Cree un canal mediante la consola MediaTailor](channel-assembly-creating-channels.md)

**Example política de acceso al origen para Channel Assembly, que se aplica a la cuenta de MediaTailor configuración**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediatailor:GetManifest",
    "Resource": "arn:aws:mediatailor:us-west-2:777788889999:channel/ca-origin-channel",
    "Condition": {
        "StringEquals": {"AWS:SourceAccount": "777788889999"}
    }
}
```

**Example política de acceso de origen para Channel Assembly, que abarca la configuración de reproducción MediaTailor**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediatailor:GetManifest",
    "Resource": "arn:aws:mediatailor:us-west-2:777788889999:channel/ca-origin-channel",
    "Condition": {
        "StringEquals": {"AWS:SourceArn": "arn:aws:mediatailor:us-west-2:777788889999:playbackConfiguration/test"}
    }
}
```

## Requisitos de Amazon S3
<a name="origin-sigv4-s3"></a>

Si utiliza SigV4 para proteger su origen de Amazon S3, debe cumplir los siguientes requisitos para MediaTailor poder acceder al manifiesto:
+ La URL base de origen de su MediaTailor configuración debe ser un bucket de S3 con el siguiente formato: `s3.region.amazonaws.com`
+ Tu origen debe estar configurado para usar HTTPS. MediaTailor solo admite la comunicación HTTPS y no permite las conexiones HTTP. Si HTTPS no está activado en el origen, MediaTailor no firmará la solicitud.
+ Tu canal debe tener una política de acceso al origen que incluya lo siguiente:
  + Acceso principal para acceder MediaTailor a tu bucket. Concede acceso a **mediatailor.amazonaws.com**. 

    Para obtener información sobre la configuración del acceso en IAM, consulte [Administración del acceso](https://docs.aws.amazon.com/) en la *Guía del usuario de AWS Identity and Access Management*. 
  + Permisos de IAM **s3: GetObject ** para leer todos los manifiestos de nivel superior a los que hace referencia la configuración. MediaTailor 

 Para obtener información general sobre SigV4 para Amazon S3, consulte el tema [Autenticación de solicitudes (AWS Signature versión 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) en la referencia de la *API de Amazon S3*. 

**Example política de acceso de origen para Amazon S3, que se aplica a la cuenta MediaTailor**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::mybucket/*",
    "Condition": {
        "StringEquals": {"AWS:SourceAccount": "111122223333"}
    }
}
```

**Example política de acceso de origen para Amazon S3, incluida en la configuración de MediaTailor reproducción**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::mybucket/*",
    "Condition": {
        "StringEquals": {"AWS:SourceArn": "arn:aws:mediatailor:us-west-2:111122223333:playbackConfiguration/test”}
    }
}
```

## MediaPackage requisitos
<a name="origin-sigv4-mp"></a>

Si utilizas SiGv4 para proteger tu origen MediaPackage de la versión 2, debes cumplir los siguientes requisitos para MediaTailor poder acceder al manifiesto:
+ La URL base de origen de su MediaTailor configuración debe ser un punto final de la MediaPackage versión 2 con el siguiente formato: `mediapackagev2.region.amazonaws.com`
+ Tu origen debe estar configurado para usar HTTPS. MediaTailor solo admite la comunicación HTTPS y no permite las conexiones HTTP. Si HTTPS no está activado en el origen, MediaTailor no firmará la solicitud.
+ Tu canal debe tener una política de acceso al origen que incluya lo siguiente:
  + Acceso principal para acceder MediaTailor a tu punto final. Conceda acceso a **mediatailor.amazonaws.com**. 
  + IAM permite a **mediapackagev2** leer todas las listas de reproducción multivariantes a las que hace referencia la configuración. GetObject MediaTailor 

 Para obtener información general sobre SigV4 para la versión MediaPackage 2, consulte el tema [Autenticación de solicitudes (AWS Signature versión 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) en la referencia de la *API de la versión MediaPackage 2*.

**Example política de acceso de origen para la MediaPackage versión 2, que se aplica a la cuenta MediaTailor**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediapackagev2:GetObject",
    "Resource": "arn:aws:mediapackagev2:us-west-2:444455556666:channelGroup/emp-origin-channel-group/channel/emp-origin-channel/originEndpoint/emp-origin-endpoint",
    "Condition": {
        "StringEquals": {"AWS:SourceAccount": "444455556666"}
    }
}
```

**Example política de acceso de origen para la MediaPackage versión 2, que se limita a la configuración de reproducción MediaTailor**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediapackagev2:GetObject",
    "Resource": "arn:aws:mediapackagev2:us-west-2:444455556666:channelGroup/emp-origin-channel-group/channel/emp-origin-channel/originEndpoint/emp-origin-endpoint",
    "Condition": {
        "StringEquals": {"AWS:SourceArn": "arn:aws:mediatailor:us-west-2:444455556666:playbackConfiguration/test”"}
    }
}
```

# Integración AWS Elemental MediaTailor con Google Ad Manager
<a name="gam-integration"></a>

 MediaTailor [Intégralo con Google Ad Manager](https://admanager.google.com/home/) (Ad Manager) para acceder mediante programación a un mercado online basado en subastas donde las impresiones de los anuncios se pueden comprar y vender en tiempo real. Debes tener una cuenta configurada en Ad Manager y, a continuación, puedes integrarla con Ad Manager de las siguientes maneras:
+ Una integración del lado del servidor mediante un certificado SSL. 
+ Una integración de reproductores del lado del cliente mediante el SDK de bibliotecas de acceso programático (PAL). Esta integración es necesaria si desea utilizar el tipo de transacción de subasta abierta.

La compatibilidad de Ad Manager con los tipos de transacciones programáticas varía según el tipo de integración que utilices. Para ver una lista de las opciones disponibles, consulta [Tipos de transacciones](https://support.google.com/admanager/answer/2805834?hl=en) o ponte en contacto con el equipo de tu cuenta de Google. 

En las siguientes secciones se describen estas integraciones en detalle.

**Topics**
+ [Integración del lado del servidor](gam-integration-ssl.md)
+ [Integración del lado del cliente](gam-integration-pal.md)

# AWS Elemental MediaTailor Integración del lado del servidor con Google Ad Manager
<a name="gam-integration-ssl"></a>

Las solicitudes de anuncios del lado del servidor a Google Ad Manager (Ad Manager) deben incluir el certificado SSL que Ad Manager ha emitido MediaTailor para autorizar las transacciones programáticas. 

**Para realizar solicitudes de anuncios desde el servidor a Ad Manager**

1. [Envíe un ticket de AWS Support](https://console.aws.amazon.com/support/home#/) para solicitar la activación de los certificados SSL. Incluya la siguiente información en el ticket de Support:
   + AWS Región
   + AWS ID de cuenta
   + MediaTailor nombre de la configuración de reproducción

   Si no habilitas los certificados SSL, Ad Manager responde a MediaTailor las solicitudes de `ERROR_ADS_INVALID_RESPONSE` anuncios con códigos de error HTTP 401 en el tipo de evento del registro de interacciones de ADS.

1. Una vez activados los certificados SSL, actualiza la URL y los parámetros de tus ADS y ADS anteriores en la configuración de reproducción. Para actualizar o crear una configuración de reproducción, consulte[MediaTailor gestión de la configuración de reproducción](working-with-configurations.md).

   Para obtener información oficial sobre los parámetros de URL de las solicitudes de anuncios de VAST para Ad Manager, consulta la guía de [implementación del servidor de](https://support.google.com/admanager/answer/10668760) Ad Manager. La actualización incluye los siguientes cambios:
   + Cambie la URL base de `pubads.g.doubleclick.net` a`serverside.doubleclick.net`.
   + Añada el parámetro `ssss=mediatailor`. Esto indica que MediaTailor es la fuente de unión del lado del servidor.
   + Elimine el parámetro. `IP` MediaTailor transfiere automáticamente la dirección IP del usuario final mediante el `X-Forwarded-For` encabezado.
   + Elimine el `ss_req=1` parámetro.

   Para obtener una guía completa y actualizada sobre las URL de VAST, consulta la guía de [implementación en el servidor o ponte en contacto con el equipo](https://support.google.com/admanager/answer/10668760) de tu cuenta de Google. 

# AWS Elemental MediaTailor Integración del lado del cliente con Google Ad Manager
<a name="gam-integration-pal"></a>

Se requiere una integración MediaTailor del lado del cliente para utilizar las bibliotecas de acceso programático (PAL) de Google Ad Manager. SDKs Esta integración es necesaria si quieres utilizar el tipo de transacción de subasta abierta de Ad Manager. 

Las PAL SDKs proporcionan información sobre el contenido, el dispositivo y los datos de usuario para una sesión de reproducción. A través del SDK PAL, puedes proporcionar esta información a Google Ad Manager, que luego podrá determinar mejor qué anuncios segmentados mostrar. SDKsestán disponibles para Android HTML5, iOS y Cast. Para obtener información sobre el uso de PAL SDKs, consulta el [SDK PAL de Google Ad Manager](https://developers.google.com/ad-manager/pal). 

**Para crear una integración del lado del cliente con Ad Manager**

1. Usa el SDK de PAL para generar un nonce. 

   El nonce es una cadena cifrada que PAL genera para las solicitudes de transmisión. Cada solicitud debe tener un nonce único. Para obtener información sobre cómo configurar un nonce, elige tu SDK en el SDK [PAL de Google Ad Manager](https://developers.google.com/ad-manager/pal).

1. Usa el `givn` parámetro de tu solicitud de ADS para transferir el valor nonce. Para ello, actualiza la URL de ADS para `&givn=[player_params.givn]` incluirla. Para obtener instrucciones, consulte [Habilita el seguimiento por parte del cliente](ad-reporting-client-side.md#ad-reporting-client-side-enabling).

**Reproductor Datazoom SDKs**  
MediaTailor se ha asociado con Datazoom para ofrecer un reproductor gratuito que facilite las integraciones, SDKs como las SDKs que se ofrecen en la PAL de Ad Manager. Para obtener información sobre Datazoom y su asociación, consulte. MediaTailor [Reproductor gratuito Datazoom SDKs](ad-reporting-client-side-ad-tracking-integrations.md#ad-reporting-client-side-ad-tracking-integrations-dz)

[Para acceder al reproductor Datazoom SDKs, utilice la información de contacto del sitio Datazoom with. AWS](https://www.datazoom.io/partner-aws) 

# Personalización del comportamiento de las pausas publicitarias con la supresión de las pausas publicitarias
<a name="ad-rules"></a>

Al crear una configuración en AWS Elemental MediaTailor, puede especificar los ajustes opcionales de configuración de las pausas publicitarias que rigen el comportamiento de las pausas publicitarias, incluida la posibilidad de configurar la supresión de las pausas publicitarias. Esto te permite personalizar las experiencias de pausas publicitarias de tu contenido de vídeo para que se ajusten a tus requisitos específicos.

**Restricciones de compatibilidad**  
No puedes utilizar la supresión de pausas publicitarias con lo siguiente:
+  VOD y live-to-VOD flujos de trabajo. Solo se admiten los flujos de trabajo en vivo.
+ Métodos de inserción de anuncios guiados por el servidor (SGAI). Los métodos guiados por el servidor gestionan la toma de decisiones publicitarias de forma diferente y no requieren una configuración de supresión.

**Topics**
+ [Configurar la supresión de roturas de anuncios](#ad-suppression)

## Configurar la supresión de roturas de anuncios
<a name="ad-suppression"></a>

Puedes configurarlo MediaTailor para omitir la personalización de las pausas publicitarias para el contenido en directo. Esto se conoce como supresión de las *pausas publicitarias* o *supresión de disponibilidad*. En este tema se muestra cómo hacerlo y también se explica cómo funciona la configuración de la supresión de las pausas publicitarias.

La supresión de las pausas publicitarias se puede utilizar para los siguientes casos de uso:
+ **Periodo de retroceso del manifiesto largo** : si un espectador inicia la reproducción en el borde activo de un manifiesto pero el periodo de retroceso es grande, es posible que quiera insertar anuncios que se inicien después de que el espectador haya comenzado a ver la retransmisión. O bien, inserte anuncios para una parte del periodo de retroceso total en el manifiesto. Puedes configurar la supresión de anuncios de forma que se MediaTailor personalicen las pausas publicitarias dentro o dentro de un intervalo de tiempo específico con posterioridad a la emisión de anuncios en tiempo real.
+ **Unirse a media pausa** : si el espectador comienza a ver una transmisión de vídeo en directo en medio de una pausa publicitaria, es probable que el usuario cambie de canal y no vea el anuncio. Con la supresión de anuncios, puedes saltarte la personalización de las pausas publicitarias si estas comenzaron antes de que el espectador se uniera a la transmisión.

### Configurar la supresión de anuncios
<a name="working-with-ad-suppression"></a>

Para utilizar la supresión de anuncios, debes configurar un **modo de supresión activa**, un **valor de supresión activa** y una **política de relleno de supresión activa de las siguientes** maneras: 
+ En la consola MediaTailor 
+ Usando el AWS Command Line Interface (AWS CLI)
+ Usando la MediaTailor API o como parámetros en la solicitud de sesión de reproducción de su cliente

Para obtener información sobre la configuración con parámetros, consulte[Configuración de parámetros de supresión de anuncios: solicitud de sesión de reproducción](#configuring-ad-suppression-parameters-playback-session-request).

#### Parámetros de configuración de supresión de anuncios
<a name="ad-suppression-configuration-parameters"></a>

Puedes activar o desactivar la supresión de anuncios. Si activas la supresión de anuncios, debes especificar si dicha supresión se produce después del límite de reproducción en directo o antes del límite de reproducción en directo de una emisión en directo. En cualquier caso, también especificas una hora, relativa al Live Edge, en la MediaTailor que no se personalizan los anuncios. Al activar la supresión de la disponibilidad, puedes especificar una política de supresión de la disponibilidad que se MediaTailor utilice para cubrir parcialmente las pausas publicitarias cuando la sesión comience a mitad de las pausas.

A continuación se indican los parámetros de configuración de supresión de anuncios:
+ **Modo de supresión de disponibilidad**: establece el modo de supresión de anuncios. De forma predeterminada, la supresión de anuncios está desactivada. **Valores aceptados**:`OFF`, o. `BEHIND_LIVE_EDGE` `AFTER_LIVE_EDGE`
  + `OFF`: No se suprimen anuncios y MediaTailor personaliza todas las pausas publicitarias.
  + `BEHIND_LIVE_EDGE`: MediaTailor no personaliza las pausas publicitarias que comienzan antes de la emisión de anuncios, menos el valor de **supresión de Avail**. Esto afecta a toda la pausa publicitaria, no solo a los anuncios individuales disponibles.
  + `AFTER_LIVE_EDGE`: MediaTailor no personaliza las pausas publicitarias que se encuentran dentro de la sección Live Edge, además del valor de **supresión de Avail**. Esto se puede configurar para que afecte a todas las pausas publicitarias o para permitir que se llenen parcialmente las existencias de anuncios.
+ **Valor de supresión de disponibilidad**: tiempo relativo al borde activo de una transmisión en directo. **Valor aceptado**: valor de tiempo en formato `HH:MM:SS`.
+ Política de **supresión y relleno de Avail**: define la política que MediaTailor se aplica al modo de supresión de **Avail**. **Valores aceptados**: `PARTIAL_AVAIL`, `FULL_AVAIL_ONLY`.
  + `BEHIND_LIVE_EDGE`el modo siempre usa la política de `FULL_AVAIL_ONLY` supresión. 
  + `AFTER_LIVE_EDGE`El modo 1 se puede utilizar para activar el relleno de `PARTIAL_AVAIL` pausas publicitarias cuando una sesión comienza a mitad de la pausa.

#### Ejemplos de ajustes de supresión de anuncios
<a name="ad-suppression-settings-examples"></a>

La forma en que los [parámetros de configuración de la supresión de anuncios](#ad-suppression-configuration-parameters) interactúan entre sí te permite especificar varias formas diferentes de gestionar la supresión de anuncios y poder rellenarlos antes, durante o después de la fase en directo de la emisión en directo. En esta sección se proporcionan ejemplos que muestran algunas de estas interacciones. Utilice estos ejemplos para ayudarle a configurar los parámetros de configuración para su situación particular.

Los siguientes son ejemplos de ajustes de supresión de anuncios:

**Example 1: Sin supresión de anuncios**  
Cuando está **disponible el modo de supresión**`OFF`, no hay supresión de anuncios y MediaTailor personaliza todas las pausas publicitarias.  
En la siguiente figura, varios bloques están dispuestos horizontalmente a lo largo de una línea temporal que avanza de izquierda a derecha. Cada bloque representa una parte del tiempo en la que se reproduce el contenido de la transmisión en directo o de una pausa publicitaria personalizada. Una línea punteada representa el límite en directo actual de la emisión en directo. Se producen dos pausas publicitarias antes de la emisión en directo y hay otra pausa publicitaria en curso en esa fase. Como se muestra en la figura, cuando el modo de supresión está activado`OFF`, MediaTailor personaliza todas las pausas publicitarias que se produzcan antes de la emisión de Live Edge en la cronología. MediaTailor también personaliza la pausa publicitaria en curso en Live Edge.  

![\[MediaTailor personalización de las pausas publicitarias con el modo de supresión activado en. OFF\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/no_ad_suppression.png)


**Example 2: supresión de `BEHIND_LIVE_EDGE` anuncios con el valor sincronizado con Live Edge**  
Cuando el **modo de supresión de disponibilidad** está establecido en `BEHIND_LIVE_EDGE` y el **valor de supresión de disponibilidad** está establecido en`00:00:00`, el valor de supresión de disponibilidad está sincronizado con Live Edge. MediaTailor no personaliza ninguna pausa publicitaria que comience en Live Edge o antes.  
En la siguiente figura, varios bloques están dispuestos horizontalmente a lo largo de una línea de tiempo que avanza de izquierda a derecha. Cada bloque representa una parte del tiempo en la que se reproduce el contenido de la emisión en directo, una pausa publicitaria personalizada o una pausa publicitaria no personalizada. Una línea punteada representa el límite en directo actual de la emisión en directo. Otra línea punteada, que representa el valor de supresión de disponibilidad establecido en`00:00:00`, se superpone a la línea punteada del borde en directo. Se producen dos pausas publicitarias antes del borde en vivo y otra después del borde en vivo. Como se muestra en la figura, cuando el modo de supresión de disponibilidad está configurado en y el valor de supresión de disponibilidad se establece de `00:00:00` forma que esté sincronizado con el Live Edge, MediaTailor no se personalizan las pausas publicitarias que se produzcan antes del Live Edge en la cronología. `BEHIND_LIVE_EDGE` MediaTailor personaliza la pausa publicitaria que se produce *tras* la emisión de Live Edge.  

![\[MediaTailor personalización de las pausas publicitarias con el modo de supresión de activación establecido en BEHIND_LIVE_EDGE y el valor de supresión de activación establecido en. 00:00:00\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/ad_supp_value_sync_live_edge.png)


**Example 3: supresión de `BEHIND_LIVE_EDGE` anuncios con un valor inferior al de Live Edge**  
Cuando el **modo de supresión está activado**`BEHIND_LIVE_EDGE`, MediaTailor no personaliza ninguna pausa publicitaria durante esa hora o antes. En este ejemplo, MediaTailor personaliza las pausas publicitarias que comienzan con una diferencia de hasta 45 minutos respecto a la fase de publicación. MediaTailor *no* personaliza las pausas publicitarias que comienzan con más de 45 minutos de retraso con respecto a las de Live Edge.  
En la siguiente figura, varios bloques están dispuestos horizontalmente a lo largo de una línea de tiempo que avanza de izquierda a derecha. Cada bloque representa una parte del tiempo en la que se reproduce el contenido de la emisión en directo, una pausa publicitaria personalizada o una pausa publicitaria no personalizada. Una línea punteada representa el límite en directo actual de la emisión en directo. Otra línea punteada, que representa el valor de supresión de disponibilidad establecido en`00:45:00`, aparece 45 minutos antes en la línea temporal con respecto a la línea punteada del borde en directo. El período de 45 minutos entre las líneas punteadas representa el período de supresión de disponibilidad. Hay una pausa publicitaria en curso al principio del período de supresión de la disponibilidad. Durante el período de supresión de la disponibilidad de anuncios se producen otras dos pausas publicitarias. Como se muestra en la figura, cuando el modo de supresión de disponibilidad se establece en y el valor de supresión de disponibilidad se establece en `00:45:00` Behind the Live Edge, se MediaTailor personalizan las pausas publicitarias que se produzcan durante el período de inactividad. `BEHIND_LIVE_EDGE` MediaTailor *no* personaliza la pausa publicitaria en curso al principio del período de supresión de disponibilidad.  

![\[MediaTailor personalización de las pausas publicitarias con el modo de supresión de activación establecido en BEHIND_LIVE_EDGE y el valor de supresión de activación establecido en. 00:45:00\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/ad_supp_value_offset_live_edge.png)


**Example 4: supresión de `AFTER_LIVE_EDGE` anuncios sin que se produzcan pausas publicitarias durante el período de supresión de anuncios**  
Cuando el **modo de supresión de disponibilidad** está configurado `AFTER_LIVE_EDGE` y el **valor de supresión de disponibilidad** es superior a cero, MediaTailor no personaliza ninguna pausa publicitaria hasta que el tiempo transcurrido de la sesión haya alcanzado ese valor.  
En la siguiente figura, varios bloques están dispuestos horizontalmente a lo largo de una línea temporal que avanza de izquierda a derecha. Cada bloque representa una parte del tiempo en la que se reproduce el contenido de la transmisión en directo o de una pausa publicitaria personalizada. Una línea punteada representa el límite en directo actual de la emisión en directo. Otra línea de puntos, que representa el valor de supresión de disponibilidad establecido en`00:30:00`, aparece 30 minutos más tarde en la línea temporal con respecto a la línea de puntos del borde en directo. La tercera línea punteada, que representa el inicio de la sesión, aparece al principio de la línea temporal con respecto a la línea punteada del borde activo. El período de 30 minutos entre la hora límite en tiempo real y la avail-suppression-value hora representa el período de supresión de la disponibilidad. Tras el periodo de supresión de la disponibilidad, se produce una pausa publicitaria. Como se muestra en la figura, cuando el modo de supresión de disponibilidad está establecido en`AFTER_LIVE_EDGE`, el valor de supresión de disponibilidad se establece `00:30:00` después de la fase de activación y la inicialización de la sesión se produce antes de la fase de activación, lo que permite MediaTailor personalizar las pausas publicitarias que se produzcan *tras* dicho periodo.  

![\[MediaTailor Personalización de las pausas publicitarias con el modo de supresión de activación establecido enAFTER_LIVE_EDGE, el valor de supresión activa establecido en y la inicialización de la sesión 00:30:00 antes del live edge.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/ad_supp_after_no_ad_break.png)


**Example 5: política de supresión de `AFTER_LIVE_EDGE` anuncios con `PARTIAL_AVAIL` relleno y pausa publicitaria en curso al final del período de supresión de anuncios**  
Cuando el **modo de supresión de disponibilidad** está configurado `AFTER_LIVE_EDGE` y el **valor de supresión de disponibilidad** es superior a cero, MediaTailor no personaliza ninguna pausa publicitaria hasta que el tiempo transcurrido de la sesión haya alcanzado ese valor.  
En la siguiente figura, varios bloques están dispuestos horizontalmente a lo largo de una línea temporal que avanza de izquierda a derecha. Cada bloque representa una parte del tiempo en la que se reproduce el contenido de la emisión en directo, una pausa publicitaria personalizada o una pausa publicitaria no personalizada. Una línea punteada representa el límite en directo actual de la emisión en directo. Otra línea de puntos, que representa el valor de supresión de disponibilidad establecido en`00:30:00`, aparece 30 minutos más tarde en la línea temporal con respecto a la línea de puntos del borde en directo. La tercera línea punteada, que representa el inicio de la sesión, aparece al principio de la línea temporal con respecto a la línea punteada del borde activo. El período de 30 minutos entre la hora límite en tiempo real y la avail-suppression-value hora representa el período de supresión de la disponibilidad. Se está realizando una pausa publicitaria al final del período de supresión de la disponibilidad. *Como se muestra en la figura, cuando el modo de supresión de disponibilidad está establecido en`AFTER_LIVE_EDGE`, el valor de supresión de disponibilidad se establece en `00:30:00` después de la fase de publicación, la política de supresión de emisiones se establece en esa posición y la inicialización de la sesión se produce antes de la fase en tiempo real`PARTIAL_AVAIL`, lo que permite MediaTailor personalizar las pausas publicitarias que se produzcan tras el período de supresión de emisiones.* Para la pausa publicitaria en curso al final del período de supresión de disponibilidad, MediaTailor personaliza la parte de esa pausa publicitaria que se produce *después* del período de supresión de disponibilidad, pero no personaliza la parte de esa pausa publicitaria que se produce *durante* el período de suspensión de disponibilidad.  

![\[MediaTailor personalización de pausas publicitarias con el modo de supresión de disponibilidad establecido enAFTER_LIVE_EDGE, el valor de supresión de disponibilidad establecido en00:30:00, la política de relleno de supresión de disponibilidad establecida enPARTIAL_AVAIL, la inicialización de la sesión que se produce antes de la emisión en vivo y una pausa publicitaria en curso al final del período de supresión disponible.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/ad_supp_after_ending_ad_break.png)


**Example 6: política de supresión continua de `AFTER_LIVE_EDGE` anuncios `PARTIAL_AVAIL` y pausas publicitarias en curso desde antes del inicio de la sesión hasta una vez finalizado el período de supresión disponible**  
Cuando el **modo de supresión de disponibilidad** está configurado `AFTER_LIVE_EDGE` y el **valor de supresión de disponibilidad** es superior a cero, MediaTailor no personaliza ninguna pausa publicitaria hasta que el tiempo transcurrido de la sesión haya alcanzado ese valor.  
En la siguiente figura, varios bloques están dispuestos horizontalmente a lo largo de una línea temporal que avanza de izquierda a derecha. Cada bloque representa una parte del tiempo en la que se reproduce el contenido de la emisión en directo, una pausa publicitaria personalizada o una pausa publicitaria no personalizada. Una línea punteada representa el límite en directo actual de la emisión en directo. Otra línea de puntos, que representa el valor de supresión de disponibilidad establecido en`00:30:00`, aparece 30 minutos más tarde en la línea temporal con respecto a la línea de puntos del borde en directo. La tercera línea punteada, que representa el inicio de la sesión, aparece al principio de la línea temporal con respecto a la línea punteada del borde activo. El período de 30 minutos entre la hora límite en tiempo real y la avail-suppression-value hora representa el período de supresión de la disponibilidad. Hay una pausa publicitaria en curso desde un momento anterior al inicio de la sesión hasta un tiempo después del período de supresión de disponibilidad. *Como se muestra en la figura, cuando el modo de supresión de disponibilidad está establecido en`AFTER_LIVE_EDGE`, el valor de supresión de disponibilidad se establece en `00:30:00` después de la activación, la política de supresión de disponibilidad se establece en y la inicialización de la sesión se produce antes de la activación de la ventaja activa`PARTIAL_AVAIL`, lo que MediaTailor personaliza las pausas publicitarias que se produzcan después del período de inactividad.* Para la pausa publicitaria en curso antes, durante y después del período de supresión de disponibilidad, MediaTailor personaliza la parte de esa pausa publicitaria que se produce *después* del período de supresión de disponibilidad, pero no personaliza la parte de esa pausa publicitaria que se produce *antes* o *durante* el período de supresión de disponibilidad.  

![\[MediaTailor personalización de pausas publicitarias con el modo de supresión de disponibilidad establecido enAFTER_LIVE_EDGE; el valor de supresión de disponibilidad establecido en00:30:00; la política de llenado de supresiones de disponibilidad establecida enPARTIAL_AVAIL; la inicialización de la sesión se produce antes del live edge; y una pausa publicitaria en curso antes, durante y después del período de supresión de disponibilidad.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/ad_supp_after_ad_break_throughout.png)


**Example 7: supresión de `AFTER_LIVE_EDGE` anuncios con una pausa publicitaria en curso al principio del período de supresión de anuncios**  
Cuando el **modo de supresión** de anuncios está configurado `AFTER_LIVE_EDGE` y el **valor de supresión de disponibilidad** es superior a cero, MediaTailor no personaliza ninguna pausa publicitaria hasta que el tiempo transcurrido de la sesión haya alcanzado ese valor.  
En la siguiente figura, varios bloques están dispuestos horizontalmente a lo largo de una línea temporal que avanza de izquierda a derecha. Cada bloque representa una parte del tiempo en la que se reproduce el contenido de la emisión en directo o de una pausa publicitaria no personalizada. Una línea punteada representa el límite en directo actual de la emisión en directo. Otra línea de puntos, que representa el valor de supresión de disponibilidad establecido en`00:30:00`, aparece 30 minutos más tarde en la línea temporal con respecto a la línea de puntos del borde en directo. La tercera línea punteada, que representa el inicio de la sesión, aparece al principio de la línea temporal con respecto a la línea punteada del borde activo. El período de 30 minutos entre la hora límite en tiempo real y la avail-suppression-value hora representa el período de supresión de la disponibilidad. Se está produciendo una pausa publicitaria desde un momento anterior al inicio de la sesión hasta un momento dentro del período de supresión de disponibilidad. Como se muestra en la figura, cuando el modo de supresión de disponibilidad está establecido en`AFTER_LIVE_EDGE`, el valor de supresión de disponibilidad se establece `00:30:00` después de la pausa en tiempo real, y la inicialización de la sesión se produce antes de la hora de activación, pero después del inicio de la pausa publicitaria, MediaTailor no se personaliza esa pausa publicitaria.  

![\[MediaTailor personalización de pausas publicitarias con el modo de supresión de disponibilidad establecido enAFTER_LIVE_EDGE; el valor de supresión de disponibilidad establecido en00:30:00; la inicialización de la sesión se produce antes del live edge; y una pausa publicitaria en curso antes pero que finaliza durante el período de supresión de disponibilidad.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/ad_supp_after_beginning_ad_break.png)


#### Configuración de parámetros de supresión de anuncios: solicitud de sesión de reproducción
<a name="configuring-ad-suppression-parameters-playback-session-request"></a>

También puedes configurar los ajustes de supresión de anuncios mediante los parámetros de tu solicitud *inicial* de sesión de reproducción del lado del servidor o del lado del cliente. MediaTailor Si ya configuraste los ajustes de supresión de anuncios a través de la MediaTailor consola o la AWS Elemental MediaTailor API, estos parámetros anulan esos ajustes.

Tanto el modo de supresión de disponibilidad como el valor de supresión de disponibilidad son necesarios para que la supresión de anuncios funcione. Estos parámetros no se pueden configurar desde fuentes distintas. Por ejemplo, no puedes configurar un parámetro con la MediaTailor consola y otro con un parámetro de consulta.

MediaTailor admite los siguientes parámetros de supresión de anuncios.


| Name | Description (Descripción) | Valores aceptados | 
| --- | --- | --- | 
| availSuppressionMode |  Establece el modo de supresión de anuncios. De forma predeterminada, la supresión de anuncios es`OFF`. Si se configura en`BEHIND_LIVE_EDGE`, MediaTailor no rellena las pausas publicitarias dentro o fuera del `aws.availSuppressionValue` horario establecido. Si está configurada`AFTER_LIVE_EDGE`, MediaTailor no rellena las pausas publicitarias que estén dentro o fuera del período de supresión disponible. El período de supresión de disponibilidad abarca desde el momento de publicación hasta el momento en que se publica, además del `aws.availSuppressionValue` tiempo de espera adicional.  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/ad-rules.html)  | 
| availSuppressionValue | Tiempo relativo al borde en vivo de una transmisión en vivo. | Entrada con código de tiempo codificado en una URL en UTF-8. HH:MM:SS Por ejemplo, 1 hora y 30 minutos sería 01%3A30%3A00. | 
| availSuppressionFillPolicy | Define la política que se aplicará al modo de supresión de disponibilidad. BEHIND\$1LIVE\$1EDGEsiempre utiliza la política de supresión de plena disponibilidad. AFTER\$1LIVE\$1EDGEse puede utilizar para rellenar pausas publicitarias parciales cuando una sesión comienza a mitad de una pausa. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/ad-rules.html)  | 

##### Configuración del lado del servidor
<a name="server-side-query"></a>

El parámetro de consulta base es `aws.availSuppression`, seguido de pares de nombre y valor de parámetros opcionales. Para crear la consulta, añada `aws.availSuppression=` al final de la sesión de reproducción la solicitud a MediaTailor, seguida de los nombres y valores de los parámetros. Para obtener más información acerca de cómo crear una solicitud de sesión de reproducción del lado del servidor, consulte [MediaTailor seguimiento e informes de anuncios del lado del servidor](ad-reporting-server-side.md).

**Ejemplo**: HLS

```
GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/index.m3u8?aws.availSuppressionMode=BEHIND_LIVE_EDGE&aws.availSuppressionValue=00%3A00%3A21
```

La sintaxis de la consulta del lado del servidor se muestra en la tabla siguiente.


| Componente de la cadena de consulta | Description (Descripción) | 
| --- | --- | 
| ? | Carácter restringido que indica el comienzo de una consulta. | 
| aws. | La consulta base, seguida de parámetros formados por pares de nombre y valor. Para obtener una lista de todos los parámetros disponibles, consulte [Configuración de parámetros de supresión de anuncios: solicitud de sesión de reproducción](#configuring-ad-suppression-parameters-playback-session-request).  | 
| = | Asocia el nombre del parámetro a un valor. Por ejemplo, aws.availSuppressionMode=BEHIND\$1LIVE\$1EDGE. | 
| & | Concatena parámetros de consulta. Por ejemplo: aws.availSuppressionMode=BEHIND\$1LIVE\$1EDGE y aws.availSuppressionValue=00:30:00&aws.availSuppressionFillPolicy=FULL\$1AVAIL\$1ONLY>. | 

##### Configuración en el lado del cliente
<a name="client-side-configuration"></a>

Incluya `availSuppression` los parámetros en la solicitud POST de su 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).

**Ejemplo**: HLS

```
POST parent.m3u8
    {
       "availSuppression": {
          "mode": "BEHIND_LIVE_EDGE",
          "value": "00:00:21",
          "fillPolicy": "FULL_AVAIL_ONLY"
       }
    }
```

# MediaTailor parachoques e inserción
<a name="bumpers"></a>

Los bumpers son clips cortos de vídeo o audio que no se pueden omitir y que se reproducen al principio o antes del final de una pausa publicitaria. AWS Elemental MediaTailor

 Se aplican las siguientes condiciones a los parachoques: 
+ Los parachoques deben durar 10 segundos o menos.
+ Los parachoques se pueden insertar al principio de una pausa publicitaria, justo antes del final de una pausa publicitaria, o ambas opciones.
+ Los bumpers se reproducen durante todas las pausas publicitarias de una sesión de reproducción, a menos que se haya configurado la función de prerollo. Si la pretirada está configurada, los parachoques no se reproducirán durante la pausa previa a la tirada. En su lugar, se jugarán en todos los descansos posteriores a la tirada previa.
+ En el caso del HLS, debe incluir el `duration` atributo con cada etiqueta `EXT-X-CUE-OUT` SCTE-35.
+ Los bumpers se transcodifican para que coincidan con el contenido original.
+ No se le cobrará por los parachoques.

## Configuración de los parachoques
<a name="configuring-bumpers"></a>

Para usar los parachoques, configure el parachoques URLs con la MediaTailor consola, la MediaTailor API o el AWS Command Line Interface ().AWS CLI Puede configurar un parachoques inicial, un parachoques final o ambos. Los bumpers se almacenan en un servidor, como Amazon Simple Storage Service (Amazon S3). El parachoques URLs indica la ubicación de los activos acumulados.

Ejemplo de parachoques inicial y final: URLs

URL del bumper de inicio: `https://s3.amazonaws.com/startbumperad`

URL del parachoques final: `https://s3.amazonaws.com/endbumperad`

### Ejemplo
<a name="example"></a>

A continuación, se muestra un ejemplo del comportamiento de un anuncio bumper.

**Example Ejemplo 1: parachoques inicial y final**  
En este ejemplo, los parachoques inicial y final están activados. El servidor de decisiones publicitarias tiene 50 segundos de anuncios personalizados para cubrir una pausa publicitaria de 70 segundos. La barra de inicio de 10 segundos se reproduce al principio de la pausa publicitaria, 50 segundos de anuncios se reproduce y, a continuación, la barra final de 10 segundos.

![\[En esta ilustración se muestra una pausa publicitaria rellena con un bumper de inicio y final y anuncios.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/bumpers.png)


# MediaTailor preenrollado e inserción
<a name="ad-behavior-preroll"></a>

**nota**  
Los anuncios preenrollables configurables solo están disponibles para los flujos de trabajo en directo. Para obtener más información sobre cómo funciona la inserción de anuncios (incluida la prepublicación) en el VOD, consulta. [Comportamiento de la combinación de anuncios para vídeo a la carta](ad-behavior.md#ad-behavior-vod)

AWS Elemental MediaTailor puede insertar anuncios al principio de una sesión de reproducción, antes de que comience el contenido principal. Estos anuncios se denominan *anuncios previos a la emisión de contenido*.

Para insertar anuncios previos a la emisión de contenido, complete los campos **Live pre-roll ad decision server (Servidor de decisión de anuncios previos a la emisión en directo)** y **Live pre-roll maximum allowed duration (Duración máxima permitida para anuncios previos a la emisión en directo)** en la sección de configuración **Additional (Adicional)** de la configuración, como se describe en [Ajustes de configuración opcionales](configurations-create.md#configurations-create-addl). 

1. Cuando MediaTailor recibe una solicitud de reproducción, envía una solicitud a la ADS de anuncios anticipados basándose en los siguientes campos de la configuración de MediaTailor reproducción:
   + El **servidor de decisiones publicitarias anticipadas en directo** es la URL del servidor de decisiones publicitarias (ADS) a la que MediaTailor envía la solicitud de anuncios anticipados. 
   + La duración **máxima permitida de la prepublicación en directo es la duración** máxima total de los anuncios anticipados. MediaTailor realiza las siguientes acciones en función de la duración máxima permitida:
     + Si la duración total de los anuncios en la respuesta de ADS es *inferior* al valor que indicaste en la **duración máxima permitida de la prepublicación en directo**, MediaTailor inserta todos los anuncios. Cuando el último anuncio esté completo, volverá MediaTailor inmediatamente al contenido subyacente.
     + Si la duración total de los anuncios en la respuesta de ADS es *superior* al valor que indicaste en la **duración máxima permitida antes de la publicación en directo**, MediaTailor selecciona un conjunto de anuncios que se ajusten a esa duración sin sobrepasarla. MediaTailor inserta estos anuncios sin recortarlos ni truncarlos. MediaTailor vuelve al contenido subyacente cuando se completa el último anuncio seleccionado.

1. Cuando MediaTailor recibe la respuesta previa a la publicación por parte de la ADS, manipula el manifiesto para añadir enlaces a los anuncios anticipados. MediaTailor calcula la hora de inicio de la pausa publicitaria previa a la publicación de la siguiente manera:
   + Para DASH, la fórmula es `(publishTime - availabilityStartTime) - max(suggestedPresentationDelay, minBufferTime)`.
   + Para HLS, la fórmula es `max(2*EXT-X-TARGETDURATION, EXT-X-START:TIMEOFFSET)`.

1. MediaTailor determina qué medidas tomar en las pausas publicitarias que no estén prepublicadas. Si la prepublicación se superpone a otra pausa publicitaria, MediaTailor no personaliza la parte superpuesta de la pausa publicitaria. 

# MediaTailor pizarra e inserción
<a name="slate-management"></a>

**nota**  
Slate solo está disponible para live-to-VOD flujos de trabajo y en directo.

Con AWS Elemental MediaTailor, puedes designar un *anuncio de Slate* para las pausas publicitarias. Una pizarra es un MP4 elemento predeterminado que se inserta en una transmisión, como una imagen fija o un vídeo en bucle, y que se reproduce en lugar del contenido en directo.

AWS Elemental MediaTailor muestra una pizarra durante las pausas publicitarias en las siguientes situaciones específicas:
+ Para rellenar el tiempo restante de una pausa que no ha sido sustituida por anuncios personalizados
+ Si el Ad Decision Server (ADS) responde con una respuesta VAST o VMAP vacía
+ Para situaciones de error, como el tiempo de espera del ADS o un error HTTP 500 del ADS
+ Si un anuncio no está disponible para ser insertado antes de MediaTailor (por ejemplo, cuando no ha terminado de transcodificarse)

Si no configuras una lista, se utilizará de MediaTailor forma predeterminada el flujo de contenido subyacente cuando se cumpla una de las condiciones anteriores.

## Configuración de la lista
<a name="configuring-the-slate"></a>

La lista se designa en el panel **de configuración adicional** de la [ MediaTailor consola](https://console.aws.amazon.com/console/home?nc2=h_ct&src=header-signin). MediaTailor descarga la lista desde la URL que especifique y la transcodifica a las mismas copias que su contenido. Puede controlar el tiempo máximo que se mostrará una lista mediante la configuración opcional del **umbral de personalización** de la consola. MediaTailor Para obtener más información, consulte [Cómo funciona el umbral de personalización](#personalization-threshold-scenarios).

La pizarra debe ser un MP4 recurso de alta calidad que contenga audio y vídeo. La configuración de la lista es opcional para las configuraciones que no son de VPAID, pero es obligatoria para los flujos de trabajo de VPAID.

**nota**  
Si el servidor que aloja la claqueta usa HTTPS, su certificado debe proceder de una entidad de certificación conocida. No puede ser un certificado autofirmado. Si utilizas un certificado autofirmado, no AWS Elemental MediaTailor podrás recuperar ni unir la lista completa de los manifiestos desde el origen del contenido.

## Cómo funciona el umbral de personalización
<a name="personalization-threshold-scenarios"></a>

El umbral de personalización define la duración máxima del tiempo de publicación insuficiente (en segundos) permitido durante una pausa publicitaria. Esta función se aplica específicamente a la sustitución de anuncios en transmisiones en directo y VOD, y no a la inserción de anuncios, ya que se basa en una transmisión de contenido subyacente.

El comportamiento varía en función de tres escenarios:

1. **Cuando la personalización está desactivada:**

   1. La pizarra se insertará durante todo el tiempo que no se haya rellenado

   1. Los parachoques inicial/final se insertarán cuando estén configurados (para obtener más información, consulte) [MediaTailor parachoques e inserción](bumpers.md)

   1. Los anuncios se insertarán de forma normal

1. **Cuando la personalización está habilitada y el límite es inferior a la duración de la pausa:**

   1. Si el tiempo no rellenado supera el umbral de personalización:

      1. MediaTailor abandona la personalización de la pausa publicitaria

      1. Se muestra el contenido subyacente

      1. No se inserta ningún anuncio, pizarra o paragolpes

   1. Si el tiempo sin rellenar es inferior al umbral de personalización:

      1. Se insertan los anuncios y la lista

      1. Los parachoques se insertan si están configurados

1. **Cuando la personalización está habilitada y el umbral es superior a la duración de la pausa:**

   1. Se insertarán anuncios

   1. Se insertará Slate durante el tiempo restante de la pausa publicitaria

   1. Los parachoques se insertarán si están configurados

La siguiente tabla proporciona comportamientos detallados para escenarios específicos en los protocolos HLS y DASH:


**Matriz de comportamiento detallada**  

| Escenario | Personalización desactivada | La personalización se activó durante menos tiempo que la pausa | La personalización se activó durante más tiempo que la duración del descanso | 
| --- | --- | --- | --- | 
| Vaciar VAST o VMAP | Pizarra insertada | No se ha insertado ninguna pizarra | Pizarra insertada | 
| Tiempo de espera de ADS | Pizarra insertada | No se ha insertado ninguna pizarra | Pizarra insertada | 
| El anuncio no está disponible (Vast 404) | Pizarra insertada | No se ha insertado ninguna pizarra | Pizarra insertada | 
| La duración de los anuncios es superior a la pausa publicitaria | Anuncios insertados | No se ha insertado ningún anuncio | Anuncios insertados | 
| Rellena el tiempo que un sustituto de anuncio no utilice en su totalidad | Pizarra insertada | Si el límite de personalización es superior al tiempo sin rellenar: no ads/slates se ha insertado; de lo contrario, se han insertado anuncios y pizarras | Pizarra insertada | 
| Prerrollar con el VAST vacío | Se ha insertado una pizarra, no se ha insertado ningún rollo | No se han insertado pizarras ni se ha insertado ningún rollo previo | Se ha insertado una pizarra, no se ha insertado ningún rollo previo | 
| Rollo previo con tiempo de espera de ADS | Pizarra insertada, no se ha insertado ninguna pretirada | No se han insertado pizarras ni se ha insertado ningún rollo previo | Se ha insertado una pizarra, no se ha insertado ningún rollo previo | 
| Prerrollar cuando el anuncio no esté disponible (Vast 404) | Se ha insertado una pizarra, no se ha insertado ninguna preedición | No se han insertado pizarras ni se ha insertado ningún rollo previo | Se ha insertado una pizarra, no se ha insertado ningún rollo previo | 
| Paragolpes con el sistema VAST vacío | Pizarra insertada, parachoques insertado | Sin pizarras insertadas, sin parachoques insertados | Pizarra insertada, parachoques insertado | 
| Paragolpes con tiempo de espera ADS | Pizarra insertada, parachoques insertado | Sin pizarras insertadas, sin parachoques insertados | Pizarra insertada, parachoques insertado | 
| Se bloquea cuando el anuncio no está disponible (Vast 404) | Pizarra insertada, parachoques insertado | Sin pizarras insertadas, sin parachoques insertados | Pizarra insertada, parachoques insertado | 
| Paragolpes para rellenar el tiempo que no se utiliza en su totalidad al reemplazar un anuncio | Pizarra insertada, parachoques insertado e insertado | Si el umbral de personalización es superior al tiempo sin rellenar: no se ha insertado bumpers/ads/slates inserted, else: No bumpers/ads/slates | Pizarra insertada, parachoques insertado e insertado | 

**Consideraciones importantes**  
Recuerda lo siguiente cuando trabajes con la pizarra y el umbral de personalización.
+ Este comportamiento es coherente en los protocolos HLS y DASH
+ La función de umbral de personalización solo se aplica cuando Slate está configurado
+ Si Slate está configurado y el umbral de personalización no está configurado, Slate se reproducirá durante todo el tiempo que esté disponible en Origin o el tiempo que quede después de rellenar los anuncios
+ En el caso de los anuncios MediaTailor VPAID, inserta Slate mientras dure el anuncio VPAID para dejar espacio a los anuncios que vaya a insertar el reproductor de vídeo

## Configuración de Slate y VPAID
<a name="vpaid-requirements"></a>

**importante**  
La configuración de Slate es obligatoria cuando se utilizan anuncios VPAID. MediaTailor inserta una pizarra para dejar espacio para los anuncios VPAID que inserte el reproductor de vídeo. La duración de la lista puede ser ligeramente superior a la duración del anuncio VPAID para adaptarse a la interactividad del usuario.

A continuación, el reproductor de vídeo gestiona el anuncio de VPAID en función de los metadatos de los informes proporcionados por el cliente, tal y como se describe en MediaTailor . [REQUISITOS DE VPAID](vast.md#vpaid) Para obtener información acerca de los informes del cliente, consulte [Seguimiento de anuncios del lado del cliente](ad-reporting-client-side.md).

# Búsqueda previa de anuncios
<a name="prefetching-ads"></a>

Utiliza la captura previa de AWS Elemental MediaTailor anuncios en las transmisiones en directo para reducir los picos de carga en los servidores de toma de decisiones publicitarias (ADS) y disminuir la latencia de entrega de los manifiestos al principio de cada pausa publicitaria. Cuando definas un programa de captura previa, MediaTailor sigue el programa para recuperar los anuncios del ADS y prepararlos para su inserción antes de que se necesiten para una pausa publicitaria. Durante las retransmisiones en directo, la captura previa puede ayudar a mitigar la disminución de las tasas de publicación de anuncios y la pérdida de oportunidades de monetización debido a los tiempos de espera de las solicitudes de anuncios y la transcodificación u otros retrasos en la red. 

**nota**  
La captura previa de anuncios no funciona con los métodos de inserción de anuncios guiada por el servidor (SGAI), incluidos los tradicionales guiados por servidor y los intersticiales HLS. Los métodos SGAI no requieren la búsqueda previa, ya que los jugadores solo buscan los anuncios que van a reproducir y los manifiestos se pueden publicar sin ver las solicitudes de sesión individuales. CDNs MediaTailor

*Para configurar la captura previa de anuncios, debes crear uno o más programas de captura previa en tu configuración de reproducción.* Un programa de captura previa indica MediaTailor cómo y cuándo recuperar y preparar los anuncios para una próxima pausa publicitaria. 
+ Si un evento tiene anuncios disponibles con un calendario predecible, utiliza un *único* programa de captura previa. Cada programa de captura previa define un conjunto único de anuncios que se puede MediaTailor colocar en un único anuncio. Para que los anuncios de captura previa estén disponibles cuando utilices un único programa de captura previa, debes crear varios programas de captura previa (hasta 24 horas antes de que el anuncio esté disponible) que se correlacionen con cada anuncio disponible. 
+ *Si un evento tiene anuncios disponibles que no están programados de forma predecible, usa un programa de captura previa recurrente.* Un programa de captura previa recurrente crea automáticamente un calendario y precaptura los anuncios antes de cada pausa publicitaria de un evento. El programa de captura previa recurrente recupera los anuncios de cada anuncio disponible dentro de un período de tiempo definido (hasta 24 horas antes de que finalice el evento). No es necesario crear un calendario para cada anuncio publicado, pero sí que se pierde parte del control temporal que ofrece la captura previa única.

En los siguientes temas se describe más información sobre la captura previa de anuncios.

**Topics**
+ [Cómo funciona la captura previa](understanding-prefetching.md)
+ [Creación de programas de captura previa](creating-prefetch-schedules.md)
+ [Modelado del tráfico basado en TPS](tps-traffic-shaping.md)
+ [Eliminar los horarios de captura previa](deleting-prefetch-schedules.md)

# Cómo funciona la captura previa
<a name="understanding-prefetching"></a>

Cuando el cliente envía una solicitud de manifiesto a MediaTailor, el servicio evalúa todos los programas de captura previa asociados a la configuración de reproducción. Si MediaTailor no encuentra un programa de captura previa que coincida, el servicio vuelve a la inserción normal de anuncios y no los captura previamente.

Si MediaTailor encuentra un programa de captura previa que coincida, el servicio lo evalúa en función de dos componentes: la recuperación y el consumo. La configuración de cada componente varía entre los programas de captura previa únicos y los programas de captura previa recurrentes, como se describe en las siguientes secciones.

## Flujo de programación de precaptura único
<a name="understanding-prefetching-single"></a>

**Recuperación**  
Esto define la *ventana de recuperación*, que es el intervalo de tiempo en el que se MediaTailor obtienen previamente los anuncios del ADS. Asegúrate de programar este período para que sea anterior a la pausa publicitaria. A continuación, se proporciona una descripción general de cómo se MediaTailor procesa un único programa de captura previa.  
Para ver los pasos para crear un programa de captura previa único en la consola, consulte. [Creación de programas de captura previa](creating-prefetch-schedules.md) Para obtener instrucciones sobre la API, consulte la [PrefetchSchedules](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PrefetchSchedule.html)referencia de la *AWS Elemental MediaTailor API*.  
Durante el período de *recuperación especificado,* MediaTailor envía solicitudes al ADS para recuperar y preparar los anuncios para su posterior inserción en las sesiones de reproducción.  
+ MediaTailor opcionalmente, utiliza el modelado del tráfico para limitar el número de solicitudes al ADS a la vez. Puede elegir entre dos enfoques:

  *Modelado del tráfico por intervalos de tiempo*: MediaTailor distribuye las solicitudes entre el número de segundos especificado en lugar de enviar las solicitudes para todas las sesiones a la vez. Esta distribución dispersa del tráfico ayuda a evitar que el ADS se sobrecargue, lo que se traduce en tiempos de espera y tasas de publicación de anuncios bajas.

  *Modelado del tráfico basado en el TPS*: MediaTailor limita las solicitudes en función de las transacciones por segundo (TPS) y de los usuarios simultáneos. Este enfoque proporciona una configuración más intuitiva en función de los límites de capacidad de ADS. Para obtener más información, consulte [Modelado del tráfico basado en TPS](tps-traffic-shaping.md).
+ Si configura *variables dinámicas, MediaTailor inclúyalas* en las solicitudes al ADS. MediaTailor Utiliza estas variables para que coincidan y permite recuperar previamente los horarios durante el período de consumo. Consulta la siguiente sección de *consumo* para obtener más información.

**Example**  
Un evento en directo dura desde las 7:45 a.m. hasta las 10:00 a.m., con una pausa publicitaria a las 8:15 a.m. Los anuncios se configuran MediaTailor para que se muestren entre las 7:45 y las 8:00 de la mañana, con un intervalo de 60 segundos para determinar el tráfico. Con 500 000 usuarios simultáneos, MediaTailor distribuye las solicitudes de ADS para lograr una tasa media de aproximadamente 8 333 transacciones por segundo durante 60 segundos (500 000 usuarios/60 segundos = 8 333 solicitudes por segundo), en lugar de enviar todas las solicitudes simultáneamente.   
La configuración de recuperación incluye la clave y el valor de la variable dinámica. `scte.event` `1234` MediaTailor incluye esta variable en las solicitudes al ADS, que luego se puede utilizar para segmentar anunciantes específicos con el ID de evento 1234. 

**Consumo**  
Cuando MediaTailor encuentra marcadores de pausas publicitarias SCTE-35 durante la ventana de consumo, coloca los anuncios precargados en una pausa publicitaria.  
+ Si no has establecido los criterios de coincidencia disponibles, MediaTailor inserta los anuncios en la primera pausa de la ventana de consumo.
+ Si configuraste una *clave de variable dinámica para utilizar* los criterios *de* *coincidencia, MediaTailor evalúa estos *criterios* comparándolos* con las variables dinámicas que configuraste en la ventana de recuperación. Una pausa publicitaria solo es apta para la inserción de anuncios precargados si se cumplen los criterios de coincidencia disponibles. MediaTailor inserta anuncios en la primera pausa que cumplan los criterios.

  Para obtener una lista de los criterios de coincidencia disponibles admitidos, consulte la columna *Disponible para la captura previa de anuncios en la* tabla sobre. [MediaTailor variables de sesión para solicitudes de ADS](variables-session.md)

**Example continuación**  
Has establecido la hora de inicio del consumo en las 8:15 a.m. y la hora de finalización en las 8:17 a.m. Como clave, `scte.event_id` incluyes los criterios de coincidencia disponibles.   
Para cada pausa publicitaria que MediaTailor se produzca entre las 8:15 a. m. y las 8:17 a. m., evalúa el identificador de SCTE evento de cada pausa publicitaria. En cada sesión de reproducción, MediaTailor inserta los anuncios precargados en la primera pausa publicitaria que tenga un ID de evento igual a 1234 (tal y como se define en las variables dinámicas de recuperación). En el caso de las pausas publicitarias que no contienen el identificador de evento correcto, MediaTailor realiza una inserción de anuncios estándar. 

## Flujo de programación recurrente de la captura previa
<a name="understanding-prefetching-recurring"></a>

**Recuperación**  
Esto define el período de *recuperación recurrente*, que es el intervalo de tiempo en el que se MediaTailor obtienen previamente e insertan anuncios para un evento en directo (hasta 24 horas). A continuación, se proporciona una descripción general del modo en que se procesan las programaciones de MediaTailor captura previa recurrentes.  
Para ver los pasos para crear un programa de captura previa recurrente en la consola, consulte. [Creación de programas de captura previa](creating-prefetch-schedules.md) Para obtener instrucciones sobre la API, consulte la [PrefetchSchedules](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PrefetchSchedule.html)referencia de la *AWS Elemental MediaTailor API*.  
Durante el período de captura previa recurrente especificado, MediaTailor recupera e inserta los anuncios de un evento en directo que dura hasta 24 horas. Tras cada pausa publicitaria de la ventana, recupera MediaTailor automáticamente los anuncios para la siguiente pausa publicitaria.   
+ Si estableces el *plazo una vez finalizada* la pausa, MediaTailor espera el tiempo especificado antes de recuperar el siguiente conjunto de anuncios para la siguiente pausa publicitaria.
+ MediaTailor opcionalmente, utiliza el modelado del tráfico para limitar el número de solicitudes al ADS a la vez. Puede elegir entre dos enfoques:

  *Modelado del tráfico por intervalos de tiempo*: MediaTailor distribuye las solicitudes entre el número de segundos especificado en lugar de enviar las solicitudes para todas las sesiones a la vez. Esta distribución dispersa del tráfico ayuda a evitar que el ADS se sobrecargue, lo que se traduce en tiempos de espera y tasas de publicación de anuncios bajas.

  *Modelado del tráfico basado en el TPS*: MediaTailor limita las solicitudes en función de las transacciones por segundo (TPS) y de los usuarios simultáneos. Este enfoque proporciona una configuración más intuitiva en función de los límites de capacidad de ADS. Para obtener más información, consulte [Modelado del tráfico basado en TPS](tps-traffic-shaping.md).
+ Si configura *variables dinámicas, MediaTailor inclúyalas* en las solicitudes al ADS. MediaTailor Utiliza estas variables para que coincidan y permite recuperar previamente los horarios durante el período de consumo. Consulta la siguiente sección de *consumo* para obtener más información.

**Example**  
Un evento en directo dura de 19:00 a 20:45, con cuatro pausas publicitarias a lo largo de ese tiempo. Las pausas publicitarias no tienen un horario predecible. La captura previa periódica se configura entre las 19:00 y las 20:45 horas, con un retraso de 10 minutos y un intervalo de 60 segundos para determinar el tráfico. Tras cada descarga, MediaTailor recupera los anuncios para la siguiente pausa publicitaria. Diez minutos después de que finalice la disponibilidad, MediaTailor comienza a enviar las solicitudes de recuperación al ADS. Con un intervalo de 60 segundos que mide el tráfico y 500 000 usuarios simultáneos, MediaTailor distribuye las solicitudes de ADS para lograr una tasa media de aproximadamente 8 333 transacciones por segundo durante 60 segundos (500 000 usuarios/60 segundos = 8 333 solicitudes por segundo), en lugar de enviar todas las solicitudes simultáneamente.   
La configuración de `1234` recuperación incluye la clave y el valor de la variable dinámica. `scte.event` MediaTailor incluye esta variable en las solicitudes al ADS, que luego se puede utilizar para segmentar anunciantes específicos con el ID de evento 1234.

**Consumo**  
Cuando MediaTailor encuentra marcadores de pausas publicitarias SCTE-35, coloca los anuncios precargados en una pausa publicitaria.  
+ Si estableces la *caducidad de los anuncios recuperados*, los anuncios precargados estarán disponibles para su inserción hasta la fecha de caducidad especificada.
+ Si no has establecido los criterios de coincidencia disponibles, MediaTailor inserta los anuncios en la primera pausa de la ventana de consumo.
+ Si configuraste una *clave de variable dinámica para utilizar* los criterios *de* *coincidencia, MediaTailor evalúa estos *criterios* comparándolos* con las variables dinámicas que configuraste en la ventana de recuperación. Una pausa publicitaria solo es apta para la inserción de anuncios precargados si se cumplen los criterios de coincidencia disponibles. MediaTailor inserta anuncios en la primera pausa que cumplan los criterios.

  Para obtener una lista de los criterios de coincidencia disponibles admitidos, consulte la columna *Disponible para la captura previa de anuncios en la* tabla sobre. [MediaTailor variables de sesión para solicitudes de ADS](variables-session.md)

**Example continuación**  
En el consumo, incluyes como clave `scte.event_id` los criterios de coincidencia disponibles.   
Para cada pausa publicitaria que MediaTailor encuentre, evalúa el ID de SCTE evento de cada pausa publicitaria. En cada sesión de reproducción, MediaTailor inserta los anuncios precargados en cada pausa publicitaria que tenga un ID de evento igual a 1234 (tal y como se define en las variables dinámicas de recuperación). En el caso de las pausas publicitarias que no contienen el identificador de evento correcto, MediaTailor realiza una inserción de anuncios estándar.   
Has establecido la caducidad de los anuncios en 2700 segundos para que los anuncios recuperados estén disponibles para su inserción durante 45 minutos.
El siguiente gráfico ilustra el ejemplo, en el que los cuadrados pequeños representan las pausas publicitarias. La configuración de la programación periódica de la captura previa se ilustra a lo largo de la cronología del evento.  

![\[Ilustración gráfica de un evento en directo que incluye las configuraciones de programación recurrentes de la captura previa.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/recurring_prefetch_timeline.png)


## Comprensión de los costos de precarga
<a name="billing"></a>

Realizar solicitudes de recuperación de anuncios no conlleva ningún coste. Sin embargo, para recuperar anuncios precargados, se te cobrará la tarifa de transcodificación estándar para los anuncios precargados que se transcodifiquen. MediaTailor En cuanto al consumo de anuncios precargados, se te cobrará la tarifa estándar por la inserción de anuncios para los anuncios precargados que se incluyan en las pausas publicitarias. MediaTailor [Para obtener información sobre los costes de transcodificación e inserción de anuncios, consulta los precios.AWS Elemental MediaTailor](https://aws.amazon.com/mediatailor/pricing/)

# Creación de programas de captura previa
<a name="creating-prefetch-schedules"></a>

El siguiente procedimiento explica cómo crear un programa de captura previa mediante la consola. MediaTailor *Para obtener información sobre cómo crear y administrar programáticamente programas de captura previa mediante la MediaTailor API, consulte la referencia de la API. [PrefetchSchedules](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PrefetchSchedule.html)AWS Elemental MediaTailor *

**nota**  
Al configurar los programas de captura previa MediaTailor, es importante entender cómo se gestionan los diferentes tipos de variables.  

**Aproveche los criterios de coincidencia**  
Si desea utilizar los criterios de coincidencia de disponibilidad en una programación, asegúrese de configurar primero la plantilla de URL de ADS de su configuración de reproducción con [variables de sesión dinámicas](variables-session.md); de lo contrario, los criterios de coincidencia de disponibilidad no tendrán ningún efecto. Para obtener información sobre cómo trabajar con variables de sesión dinámicas, consulta [Paso 3: Configurar la URL de la solicitud de ADS y los parámetros de consulta](getting-started-ad-insertion.md#getting-started-configure-request) el tema Cómo empezar a insertar MediaTailor anuncios.

**Variables de reproducción en los programas de captura previa**  
Al crear un programa de captura previa, no defina las variables de reproducción como variables dinámicas en su configuración de captura previa. En su lugar, pasa las variables del reproductor como lo harías normalmente al inicio de la sesión. MediaTailor incluye automáticamente estas variables en las solicitudes de anuncios de captura previa si las variables están mapeadas en la URL de la plantilla de ADS.

**Para crear un nuevo programa de captura previa mediante la consola**

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

1. En el panel de navegación, elija **Configuraciones**. Seleccione la configuración de reproducción para la que desee crear un programa de captura previa.

1. **En la pestaña **Programaciones de captura previa, seleccione Agregar programación** de captura previa.**

1. En el panel de **detalles del programa de captura previa, haga** lo siguiente:
   + En **Nombre**, introduzca un identificador para su programa de captura previa, como. **my-prefetch-schedule**
   + Para **Stream ID, si** lo desea, introduzca un ID único. Si tu origen contiene varias transmisiones de reproducción, puedes usar este ID para indicar que MediaTailor coloques anuncios en una transmisión específica. Por ejemplo, si tu configuración de reproducción tiene una transmisión de deportes y una transmisión de un programa de televisión, puedes usar el ID de la transmisión para crear programaciones preconfiguradas e insertar anuncios segmentados para la transmisión de deportes. Transfieres el valor del ID de la transmisión a MediaTailor la solicitud de inicialización de sesión o manifiesto de tu cliente. Para obtener más información, consulta el siguiente ejemplo.
     + Para el *seguimiento del lado del servidor*, incluye el parámetro y el valor de la `?aws.streamId` consulta en la `GET HTTP` solicitud del cliente a tu MediaTailor punto final. Para obtener información general sobre el seguimiento del lado del servidor, consulte. [MediaTailor seguimiento e informes de anuncios del lado del servidor](ad-reporting-server-side.md) Una solicitud de manifiesto a un punto final de HLS que incluye un ID de transmisión tiene el siguiente aspecto, donde `myStreamId` aparece el nombre del ID de transmisión:

       ```
       GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.streamId=myStreamId
       ```
     + Para el *seguimiento desde el lado del cliente*, incluye la `streamId` clave y el valor en el cuerpo de la solicitud de inicialización de `POST HTTP` sesión del cliente dirigida al punto final. **MediaTailor/v1/session** Para obtener información general sobre el seguimiento del lado del cliente, consulte. [Seguimiento de anuncios del lado del cliente](ad-reporting-client-side.md) Una solicitud de inicialización de sesión que incluye un ID de transmisión tiene el siguiente aspecto, donde `myStreamId` aparece el nombre del ID de transmisión:

       ```
       POST <mediatailorURL>/v1/session/<hashed-account-id>/<origin-id>/<asset-id>
       {
           'streamId': 'myStreamId',
           'reportingMode': 'client'
       }
       ```

1. En el **caso del tipo Prefetch**, selecciona lo que desees y elige la sección correspondiente para obtener ayuda con los campos adicionales:
   + Elige **Single** si vas a crear un programa de captura previa para una pausa publicitaria de un evento.
   + Elige **Recurrente** si vas a crear un programa que precargue automáticamente los anuncios antes de cada pausa publicitaria de un evento. 

## Programa único de captura previa
<a name="single-prefetch"></a>

Para crear un cronograma que busque previamente los anuncios antes de que se publique uno de ellos en un evento.

1. En el panel **Recuperación**, especifica la configuración de recuperación que deseas usar. Esta configuración determina cuándo se MediaTailor obtienen previamente los anuncios del ADS. También determinan qué variables de sesión dinámicas se deben incluir en la solicitud al ADS, si las hay.
   + En **Hora de inicio**, introduzca la hora a la que se MediaTailor pueden iniciar las recuperaciones previas de esta pausa publicitaria. MediaTailor intentará recuperar previamente los anuncios para las solicitudes de manifiesto que su cliente haya realizado a partir de ese momento. El valor predeterminado es la hora actual. Si no especificas ningún valor, el servicio iniciará la recuperación previa lo antes posible.
   + En **Hora de finalización**, introduce la hora en la que quieres dejar de cargar previamente MediaTailor los anuncios para esta pausa publicitaria. MediaTailor intentará recuperar previamente los anuncios para las solicitudes de manifiesto que se produzcan en ese momento o antes. La ventana de recuperación puede superponerse con la ventana de consumo.
   + Si lo desea, configure el modelado del tráfico para limitar el número de solicitudes al ADS a la vez. Elija uno de los siguientes enfoques:

     *Enfoque de intervalo de tiempo*: para **ver la duración del período de modelado del tráfico**, introduzca el número de segundos que MediaTailor deben distribuirse las solicitudes al ADS. Para obtener más información, consulte la explicación de la recuperación de [un solo programa de precaptura](understanding-prefetching.md#avail-matching-criteria-retr).

     *Enfoque basado en el TPS*: configure los **usuarios simultáneos de **Peak TPS** y Peak para limitar las solicitudes en función de las transacciones por segundo y de los usuarios** simultáneos. Para obtener más información, consulte [Modelado del tráfico basado en TPS](tps-traffic-shaping.md).
   + En la sección [**Variables dinámicas**](variables.md), introduzca hasta 100 variables de sesión dinámicas. MediaTailor utiliza estas variables para sustituirlas en las solicitudes de captura previa que envía al ADS. [Si no ingresas ninguna variable de sesión dinámica, MediaTailor intenta interpolar los valores de las variables dinámicas contenidas en la URL de ADS.](configurations-create.md#configurations-create-main)
     + Selecciona **Añadir variable dinámica**. 
     + En **Clave**, introduzca una clave de variable de sesión dinámica, como`scte.event_id`. Puede utilizar cualquier variable dinámica que sea MediaTailor compatible. Para obtener información sobre las variables de sesión dinámicas, consulte[MediaTailor variables de sesión para solicitudes de ADS](variables-session.md).
     + En **Valor**, introduzca un valor de variable dinámica, como*my-event*.
     + Para añadir otra variable dinámica, elija Seleccionar **añadir variable dinámica**. 

1. En el panel **Consumo**, especifique la configuración que quiere usar para la ventana de consumo. Esta configuración determina cuándo se MediaTailor colocan los anuncios en la pausa publicitaria. También determinan los criterios de coincidencia disponibles que desee utilizar.
   + En **Hora de inicio**, introduce la hora en la que quieres empezar MediaTailor a incluir los anuncios precargados en la pausa publicitaria. El valor predeterminado es la hora actual. Si no especificas una hora, el servicio empezará a consumir la precarga lo antes posible.
   + En **Hora de finalización**, introduce una hora en la que quieras MediaTailor dejar de incluir los anuncios precargados en la pausa publicitaria. MediaTailor intentará buscar previamente los anuncios para las solicitudes de manifiesto de tu cliente que se produzcan en ese momento o antes. La hora de finalización debe ser posterior a la hora de inicio y dentro de menos de un día. La ventana de consumo puede superponerse con la ventana de recuperación.
   + En la sección [**Aprovechar los criterios de coincidencia**](variables.md), selecciona **Añadir criterios de disponibilidad** y añade hasta cinco criterios de coincidencia disponibles a tu programación. A continuación, en la **clave de variable dinámica**, añade una clave de variable dinámica, como. `scte.event_id` MediaTailor colocará los anuncios precargados en la pausa publicitaria *solo* si cumplen los criterios definidos por los valores de las variables dinámicas a MediaTailor los que el cliente los transfiera o que se MediaTailor deducen de información como los datos de la sesión. Si una pausa publicitaria no cumple los criterios de coincidencia especificados, MediaTailor omite la captura previa de esa pausa. Para obtener más información, consulta la explicación del consumo del [programa de captura previa única](understanding-prefetching.md#avail-matching-criteria).

1. Selecciona **Añadir criterios de disponibilidad**.

Los programas de precarga caducan automáticamente después de la hora de finalización del período de consumo. Para fines de diagnóstico, permanecen visibles durante al menos 7 días, tras lo cual MediaTailor se eliminan automáticamente. Como alternativa, puede eliminar manualmente un programa de captura previa en cualquier momento. Para obtener información sobre cómo eliminar manualmente un programa de captura previa, consulte la siguiente sección. [Eliminar los horarios de captura previa](deleting-prefetch-schedules.md)

### Determinar la frecuencia con la que su cliente debe llamar a la API CreatePrefetchSchedule
<a name="how-often"></a>

Tu cliente puede llamar a la [CreatePrefetchSchedule](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreatePrefetchSchedule.html)API mediante programación una vez al día para configurar la recuperación y el consumo si sabes exactamente cuándo se producirán las pausas publicitarias. O bien, tu cliente puede llamar a la API varias veces a lo largo del día para definir la recuperación y el consumo. A la hora de elegir la frecuencia de las llamadas a la API, ten en cuenta el [número máximo de programas de captura previa activos](quotas.md#prefetch-schedules-limit) y la probabilidad de que el programa de pausas publicitarias cambie una vez que hayas creado el programa o programas de captura previa. Si es probable que la programación de pausas publicitarias cambie después de haber creado la programación previa a la captura, te recomendamos que llames a la API con más frecuencia.

## Programa de captura previa recurrente
<a name="recurring-prefetch"></a>

Para crear un cronograma que busque previamente los anuncios antes de que cada anuncio aparezca en un evento.

1. En el panel **Recuperación periódica**, especifica la configuración de recuperación que quieres usar. Esta configuración determina cuándo se MediaTailor obtienen previamente los anuncios del ADS. También determinan qué variables de sesión dinámicas se deben incluir en la solicitud al ADS, si las hay.
   + En la **ventana de captura previa periódica**, introduzca la hora en la que se MediaTailor pueden iniciar las recuperaciones previas para esta pausa publicitaria. MediaTailor intentará recuperar previamente los anuncios para las solicitudes de manifiesto que su cliente haya realizado a partir de ese momento. El valor predeterminado es la hora actual. Si no especificas ningún valor, el servicio iniciará la recuperación previa lo antes posible.
   + En **Demora una vez finalizada** la recuperación, introduce el número de segundos que MediaTailor deben transcurrir hasta que finalice la recuperación previa de los anuncios para su siguiente descarga. Si no especificas ningún valor, el valor MediaTailor predeterminado es sin demora. 
   + Si lo desea, configure el modelado del tráfico para limitar el número de solicitudes al ADS a la vez. Elija uno de los siguientes enfoques:

     *Enfoque de intervalo de tiempo*: para **ver la duración del período de modelado del tráfico**, introduzca el número de segundos que MediaTailor deben distribuirse las solicitudes al ADS. Para obtener más información, consulte la explicación de la recuperación del horario de [precarga recurrente](understanding-prefetching.md#avail-matching-criteria-recurring-retr)

     *Enfoque basado en el TPS*: configure los usuarios de **Peak TPS** y **Peak concurrent para limitar las solicitudes en función de las transacciones por segundo y de los usuarios** simultáneos. Para obtener más información, consulte [Modelado del tráfico basado en TPS](tps-traffic-shaping.md).
   + En la sección [**Variables dinámicas**](variables.md), introduzca hasta 100 variables de sesión dinámicas. MediaTailor utiliza estas variables para sustituirlas en las solicitudes de captura previa que envía al ADS. [Si no ingresas ninguna variable de sesión dinámica, MediaTailor intenta interpolar los valores de las variables dinámicas contenidas en la URL de ADS.](configurations-create.md#configurations-create-main)
     + Selecciona **Añadir variable dinámica**. 
     + En **Clave**, introduzca una clave de variable de sesión dinámica, como`scte.event_id`. Puede utilizar cualquier variable dinámica que sea MediaTailor compatible. Para obtener información sobre las variables de sesión dinámicas, consulte[MediaTailor variables de sesión para solicitudes de ADS](variables-session.md).
     + En **Valor**, introduzca un valor de variable dinámica, como*my-event*.
     + Para añadir otra variable dinámica, elija Seleccionar **añadir variable dinámica**. 

1. En el panel **Consumo**, especifique la configuración que quiere usar para la ventana de consumo. Esta configuración determina cuándo se MediaTailor colocan los anuncios en la pausa publicitaria. También determinan los criterios de coincidencia disponibles que desee utilizar.
   + En el **caso de la fecha de caducidad** de los anuncios recuperados, indica cuánto tiempo después de la recuperación estarán disponibles para su inserción.
   + En la sección [**Aprovechar los criterios de coincidencia**](variables.md), selecciona **Añadir criterios de disponibilidad** y añade a tu programación tantos criterios de coincidencia como cinco. A continuación, en la **clave de variable dinámica**, añade una clave de variable dinámica, como. `scte.event_id` MediaTailor colocará los anuncios precargados en la pausa publicitaria *solo* si cumplen los criterios definidos por los valores de las variables dinámicas a MediaTailor los que el cliente los transfiera o que se MediaTailor deducen de información como los datos de la sesión. Si una pausa publicitaria no cumple los criterios de coincidencia especificados, MediaTailor omite la captura previa de esa pausa. Para obtener más información, consulta la explicación sobre el consumo del [programa de captura previa recurrente](understanding-prefetching.md#avail-matching-criteria-recur).

1. Selecciona **Añadir criterios de disponibilidad**.

Los programas de precarga caducan automáticamente después de la hora de finalización del período de consumo. Para fines de diagnóstico, permanecen visibles durante al menos 7 días, tras lo cual MediaTailor se eliminan automáticamente. Como alternativa, puede eliminar manualmente un programa de captura previa en cualquier momento. Para obtener información sobre cómo eliminar manualmente un programa de captura previa, consulte la siguiente sección. [Eliminar los horarios de captura previa](deleting-prefetch-schedules.md)

# Modelado del tráfico basado en TPS
<a name="tps-traffic-shaping"></a>

AWS Elemental MediaTailor ofrece dos enfoques opcionales de modelado del tráfico para limitar el número de solicitudes al ADS a la vez. El modelado del tráfico basado en el TPS ofrece una alternativa al modelado del tráfico basado en una ventana temporal para los horarios de captura previa. Este enfoque proporciona una configuración más intuitiva, ya que te permite especificar la capacidad del servidor de decisiones publicitarias (ADS) en términos de transacciones por segundo (TPS) y de usuarios simultáneos esperados, en lugar de calcular el tiempo.

## Cómo funciona el modelado del tráfico basado en TPS
<a name="tps-how-it-works"></a>

En lugar de especificar las duraciones de las ventanas de recuperación, debe proporcionar los siguientes parámetros:

TPS máximo  
El número máximo de solicitudes por segundo que puede gestionar su ADS. Este parámetro no tiene un valor predeterminado.

Número máximo de usuarios simultáneos  
El número máximo esperado de espectadores simultáneos de tu contenido. Este parámetro no tiene un valor predeterminado.

MediaTailor distribuye automáticamente las solicitudes de captura previa a lo largo del tiempo para mantenerlas dentro del límite de TPS especificado, independientemente del número de sesiones simultáneas.

**Example Ejemplo de configuración basada en TPS**  
Su ADS puede gestionar 500 TPS y espera 100 000 espectadores simultáneos durante las horas punta. Tú configuras:  
+ TPS máximo: 500
+ Número máximo de usuarios simultáneos: 100 000
MediaTailor distribuye automáticamente las solicitudes de captura previa a lo largo del tiempo para mantenerlas dentro del límite de TPS especificado, independientemente del número de sesiones simultáneas.

# Eliminar los horarios de captura previa
<a name="deleting-prefetch-schedules"></a>

En el siguiente procedimiento, se explica cómo eliminar un programa de captura previa mediante la consola. MediaTailor *Para obtener información sobre cómo eliminar los programas de captura previa mediante programación mediante la MediaTailor API, consulte la referencia de la API. [DeletePrefetchSchedule](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_DeletePrefetchSchedule.html)AWS Elemental MediaTailor *

**nota**  
La eliminación no se produce en tiempo real. Es posible que se produzca un retraso al MediaTailor eliminar los programas de captura previa, durante el cual la recuperación y el consumo de la captura previa seguirán ejecutándose en segundo plano.

**Para eliminar un programa de captura previa mediante la consola**

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

1. En el panel de navegación, elija **Configuraciones**. Seleccione la configuración de reproducción que contenga los programas de captura previa que desee eliminar.

1. En la pestaña **Programaciones de captura previa**, seleccione la programación de captura previa que desee eliminar. A continuación, elija **Eliminar**.

# Uso de anuncios preacondicionados con AWS Elemental MediaTailor
<a name="precondition-ads"></a>

En un [flujo de trabajo típico de inserción de anuncios](what-is-flow.md), transcodifica los anuncios de MediaTailor forma dinámica para que coincidan con el flujo de contenido, los guarda e integra los anuncios en la transmisión en directo. Como este proceso solo se produce después de MediaTailor recibir el anuncio en forma de respuesta VAST del servidor de decisiones publicitarias (ADS), hay un retraso hasta que el anuncio está disponible para su edición. Si se introduce una latencia adicional en el flujo de trabajo de creación de anuncios (ya sea debido al tiempo de espera del ADS o a otros problemas de contenido o red), se MediaTailor podría cubrir parcialmente el tiempo disponible o perder por completo la pausa publicitaria. 

Para reducir el tiempo necesario para incluir los anuncios en tu contenido, puedes utilizar anuncios precondicionados. Un anuncio precondicionado es aquel que transcodificas antes de usarlo en la inserción de anuncios. MediaTailor En lugar de incluir URLs los anuncios incondicionados en tus ADS, incluyes los anuncios URLs precondicionados. En su respuesta VAST a la MediaTailor solicitud, el ADS incluye enlaces directos a los anuncios precondicionados. Al eliminar la parte de transcodificación de los anuncios, basta MediaTailor con guardar el anuncio e incorporarlo al flujo de contenido. El proceso de unión de anuncios con anuncios precondicionados reduce el tiempo que transcurre entre el momento en que se MediaTailor descubre la existencia de un anuncio gracias a la respuesta VAST y el momento en que el anuncio se incorpora al contenido. 

Como alternativa, también puedes utilizar la captación previa de anuncios, que consiste en configurar el proceso de captación de anuncios MediaTailor a una hora programada antes de que sea necesaria la pausa publicitaria. Para obtener más información sobre la captura previa de anuncios, consulte. [Búsqueda previa de anuncios](prefetching-ads.md)

## Requisitos de anuncios precondicionados
<a name="precondition-ads-req"></a>

Los siguientes son requisitos que debes tener en cuenta al configurar un flujo de trabajo de creación de anuncios con anuncios precondicionados.

### Requisitos de `MediaFiles`
<a name="precondition-ads-req-vast"></a>

La respuesta VAST a la que envíe el servidor de anuncios MediaTailor debe incluir datos `MediaFiles` que cumplan estos requisitos:

El anuncio (`Creative`) debe tener variantes que se ajusten a las variantes de velocidad de bits del flujo de contenido. *Es tu responsabilidad asegurarte de que la respuesta de VAST utilice las variantes de anuncio adecuadas para que coincidan con los manifiestos de las plantillas.*

Si bien el uso de anuncios precondicionados puede ayudar a que la inserción de anuncios sea más eficaz, MediaTailor no tiene la capacidad de gestionar el proceso de transcodificación para garantizar que los archivos multimedia de los anuncios sean compatibles con las especificaciones del manifiesto de contenido. Si el anuncio no coincide con el flujo de contenido, MediaTailor podría omitir la inserción o la falta de coincidencia podría provocar un error en el dispositivo de reproducción. 

Además, para poder incorporarse al flujo de contenido sin necesidad de MediaTailor transcodificarlo, `MediaFile` debe cumplir los siguientes requisitos:
+ Debe estar accesible en la red pública de Internet para que se MediaTailor pueda descargar. 
+ Debe utilizar la transmisión por streaming, como se indica `delivery="streaming"` en la respuesta VAST.
+ Debe ser un archivo `.m3u8` (para HLS) o `.mpd` (para DASH).

**Example Respuesta VASTA**  
En el siguiente ejemplo de respuesta VAST, MediaTailor inserta la respuesta `MediaFile` con lo siguiente URLs:  
+ Para una transmisión HLS, MediaTailor utiliza`https://example-ad-origin.amazonaws.com/ad1/index_low.m3u8`. Esta es la primera vez que `MediaFile` se entrega en streaming y tiene una extensión de archivo compatible (. `m3u8`).
+ Para una transmisión DASH, MediaTailor usa`https://example-ad-origin.amazonaws.com/ad1/index.mpd`. Esta es la primera vez que `MediaFile` se entrega en streaming y tiene una extensión de archivo compatible (. `mpd`).

```
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0">
    <Ad id="ad1">
        <InLine>
            <AdSystem>ExampleAdSystem</AdSystem>
            <AdTitle>ad1</AdTitle>
            <Impression><![CDATA[https://example-impression.amazonaws.com]]></Impression>
            <AdServingId>de8e0d33-9c72-4d77-bb3a-f7e566ffc605</AdServingId>
            <Creatives>
                <Creative id="creativeId1" sequence="1">
                    <Linear skipoffset="00:00:05">
                        <Duration>00:00:30</Duration>
                        <MediaFiles>
                            <MediaFile delivery="progressive" width="1280" height="720" type="video/mp4" bitrate="533" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/ad1.mp4]]></MediaFile>
                            <MediaFile delivery="streaming" width="1280" height="720" type="application/dash+xml" bitrate="533" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/index.mpd]]></MediaFile>
                            <MediaFile delivery="streaming" width="640" height="360" type="application/x-mpegURL" bitrate="262" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/index_low.m3u8]]></MediaFile>
                            <MediaFile delivery="streaming" width="2560" height="1440" type="application/x-mpegURL" bitrate="1066" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/index_high.m3u8]]></MediaFile>
                        </MediaFiles>
                    </Linear>
                </Creative>
            </Creatives>
        </InLine>
    </Ad>
</VAST>
```

### Añadir requisitos manifiestos
<a name="precondition-ads-req-ads"></a>

Para utilizar anuncios precondicionados, los manifiestos de anuncios para padres e hijos deben cumplir los siguientes requisitos:
+ El manifiesto que está enlazado en la `Creative` sección de la respuesta de VAST debe ser el manifiesto publicitario principal.
+ Los URLs manifiestos de anuncios secundarios deben ser rutas relativas.
+ Los manifiestos de anuncios secundarios deben estar en el mismo directorio que la lista de reproducción multivariante principal, al mismo nivel. Los manifiestos secundarios no pueden estar en un subdirectorio ni en ninguna otra ubicación.

**Example lista de reproducción multivariante principal compatible**  
La siguiente lista de reproducción multivariante con anuncios principales contiene listas de reproducción multimedia publicitarias relativas a URLs las secundarias. Las listas de reproducción secundarias también se encuentran en el mismo directorio que la lista de reproducción multivariante principal.  

```
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
index_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
index_2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
index_3.m3u8
```

**Example lista de reproducción multivariante principal no admitida: subdirectorios**  
La siguiente lista de reproducción multivariante de anuncios principal contiene listas de reproducción secundarias que se encuentran en subdirectorios en relación con la lista de reproducción multivariante principal. No es una lista de reproducción compatible con anuncios preacondicionados.  

```
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
child/index_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
child/index_2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
child/index_3.m3u8
```

**Example lista de reproducción multivariante principal no compatible: absoluta URLs**  
La siguiente lista de reproducción multivariante con anuncios principales contiene listas de reproducción secundarias con valores absolutos. URLs No es una lista de reproducción compatible con anuncios preacondicionados.  

```
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
https://example.mediatailor.us-west-2.amazonaws.com/index_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
https://example.mediatailor.us-west-2.amazonaws.com/index_2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
https://example.mediatailor.us-west-2.amazonaws.com/index_3.m3u8
```

## Flujo de trabajo de anuncios precondicionados
<a name="precondition-ads-setup"></a>

La siguiente es una descripción básica del funcionamiento de los anuncios precondicionados en un flujo de trabajo de creación de anuncios con. MediaTailor La primera parte del flujo de trabajo son las acciones que debes realizar para prepararte para el uso de anuncios precondicionados. La segunda parte describe cómo MediaTailor procesa los anuncios.

**Parte 1: Configuración de los anuncios precondicionados**  
Realiza los siguientes pasos para configurar un flujo de trabajo que utilice anuncios precondicionados en. MediaTailor

1. Utiliza un servicio de transcodificación, por ejemplo AWS Elemental MediaConvert, para condicionar tus creatividades a variantes que admitan las distintas velocidades de bits, resoluciones y códecs de los manifiestos de plantillas. 

1. Incluye los archivos multimedia pretranscodificados en tus ADS URLs para usarlos en las respuestas de VAST.

1. [Crea tu configuración de reproducción](configurations-create.md) en. MediaTailor Para usar anuncios preacondicionados, selecciona **Ninguno** en el ajuste de **acondicionamiento de archivos multimedia de streaming** en la configuración.

1. Continúa con la configuración de entrega de contenido como lo harías normalmente.

**Parte 2: procesamiento MediaTailor de anuncios**  
MediaTailor y la costura se completa como se describe en[Cómo funciona MediaTailor la inserción de anuncios](what-is-flow.md). Cuando MediaTailor recibe una respuesta VAST del ADS, utiliza la siguiente lógica para determinar qué medidas debe tomar con respecto a los anuncios. Esta lógica viene determinada por el ajuste de **acondicionamiento de los archivos multimedia de streaming** de la configuración de reproducción. 
+ Si el **acondicionamiento de archivos multimedia de Streaming** está configurado en **Transcodificar**, MediaTailor transcodifica los archivos multimedia con la `progressive` entrega y los incluye en el manifiesto. Si no hay suficientes anuncios con archivos multimedia de `progressive` entrega como para cubrir el número de anuncios disponibles, MediaTailor transcodifícalos y utilízalos junto con la entrega. `streaming`
+ Si el **acondicionamiento de archivos multimedia en streaming** está establecido en **Ninguno, agrupa** MediaTailor los anuncios con archivos multimedia de `streaming` entrega en el manifiesto sin transcodificarlos. Si no hay suficientes anuncios con archivos multimedia de `streaming` entrega como para cubrir el número de anuncios, MediaTailor transcodifíquelos y utilícelos junto con la opción de entrega. `progressive` 

# MediaTailor variables de anuncios dinámicos para solicitudes de ADS
<a name="variables"></a>

AWS Elemental MediaTailor utiliza variables publicitarias dinámicas para pasar la información de la sesión de visualización al servidor de decisiones publicitarias (ADS). Esta información ayuda al ADS a seleccionar los anuncios más relevantes para tus espectadores.

En esta sección, se proporciona una descripción general de las variables de los anuncios dinámicos y enlaces a guías de implementación específicas. Para obtener instrucciones step-by-step de configuración, consulta los temas individuales que aparecen a continuación.

**Tipos de variables dinámicas**  
MediaTailor admite cuatro tipos de variables dinámicas:
+ **Variables de sesión**: valores generados automáticamente, como el ID de sesión y los datos del SCTE-35. Consulte [MediaTailor variables de sesión para solicitudes de ADS](variables-session.md).
+ **Variables del reproductor**: parámetros personalizados enviados por el reproductor de vídeo. Consulte [MediaTailor variables de reproductor para solicitudes de ADS](variables-player.md).
+ **Variables de dominio** con **alias de configuración**: dominios URL dinámicos para configuraciones de varios orígenes. 
+ **Alias de configuración**: mapeos predefinidos para el reemplazo dinámico de variables. Consulte [Alias de configuración](configuration-aliases-overview.md).

**Casos de uso comunes**  
Utilice variables de anuncios dinámicos para:
+ Transfiere los datos demográficos y las preferencias de los espectadores a tus ADS
+ Dirija las solicitudes a diferentes orígenes en función de la ubicación geográfica
+ Habilite la visualización en horario con MediaPackage la integración
+ Implemente A/B escenarios de prueba y conmutación por error

En las siguientes secciones se proporciona información adicional sobre el uso de variables de anuncios dinámicos con MediaTailor.

**Topics**
+ [Variables de sesión](variables-session.md)
+ [Variables de jugador](variables-player.md)
+ [Variables de dominio](variables-domains.md)
+ [Alias de configuración](configuration-aliases-overview.md)
+ [Pasar parámetros de ADS](passing-paramters-to-the-ads.md)
+ [Enrutamiento de parámetros](parameter-routing-behavior.md)
+ [Integración de MediaPackage](mediapackage-integration-param.md)
+ [Comportamiento de sesión](parameter-session-behavior.md)
+ [Referencia de parámetros](parameter-comprehensive-reference.md)
+ [Solución de problemas de parámetros](parameter-troubleshooting.md)
+ [Solución de problemas de alias](configuration-aliases-troubleshooting.md)

Para conocer los requisitos de formato de los parámetros y la solución de problemas, consulte [MediaTailor referencia y limitaciones de los parámetros](parameter-comprehensive-reference.md) y[MediaTailor guía de solución de problemas de parámetros](parameter-troubleshooting.md).

# MediaTailor variables de sesión para solicitudes de ADS
<a name="variables-session"></a>

AWS Elemental MediaTailor envía los datos de la sesión al servidor de decisiones publicitarias (ADS) cuando se configura AWS Elemental MediaTailor para especificar una o más de las variables que se enumeran en esta sección en la URL de ADS de la plantilla. Puede utilizar variables individuales y concatenar varias variables para crear un único valor. MediaTailor genera algunos valores y obtiene el resto de fuentes como el manifiesto y la solicitud de inicialización de sesión del jugador. 

En la siguiente tabla se describen las variables de datos de sesión que puede utilizar en la configuración de la URL de solicitud de ADS de su plantilla. Los números de sección que aparecen en la tabla corresponden a la versión 2019a de la especificación -35 de la Sociedad de Ingenieros de Telecomunicaciones por Cable (SCTE), denominada [Digital Program Insertion Cueing Message](https://account.scte.org/standards/library/catalog/scte-35-digital-program-insertion-cueing-message/). Para obtener más información sobre la captura previa de anuncios, consulte. [Búsqueda previa de anuncios](prefetching-ads.md)


| Name | Disponible para la captura previa de anuncios | Sección de especificaciones del SCTE-35 | Description (Descripción) | 
| --- | --- | --- | --- | 
| [avail.index] | Sí |  | Número que representa la posición de un anuncio disponible en un índice. Al inicio de una sesión de reproducción, MediaTailor crea un índice de todos los anuncios disponibles en un manifiesto y lo guarda durante el resto de la sesión. Cuando solicita MediaTailor a la ADS que llene el formulario de disponibilidad del anuncio, se incluye el número de índice de disponibilidad del anuncio. Este parámetro permite a ADS mejorar la selección de anuncios mediante características como la exclusión competitiva y la limitación de frecuencia. | 
| [avail.random] | Sí |  | Un número aleatorio entre 0 y 10 000 000 000 000, como número largo, que se MediaTailor genera por cada solicitud al ADS. Algunos servidores de anuncios utilizan este parámetro para habilitar características como separar los anuncios de empresas en competencia. | 
| [scte.archive\$1allowed\$1flag] | Sí | 10.3.3.1 | Un valor booleano opcional. Cuando este valor es 0, las restricciones de grabación se imponen en el segmento. Cuando este valor es 1, las restricciones de grabación no se imponen en el segmento. | 
| [scte.avail\$1num] | Sí | 9.7.2.1 | El valor analizado MediaTailor desde el campo SCTE-35avail\$1num, como un número largo. MediaTailor Puede usar este valor para designar números lineales y disponibles.El valor debe ser un número entero. | 
| [scte.avails\$1expected] | Sí | 9,7.2.1 | Un valor largo opcional que proporciona el recuento esperado de validaciones en el evento actual. | 
| [scte.delivery\$1not\$1restricted\$1flag] | Sí | 10.3.3.1 | Un valor booleano opcional. Cuando este valor es 0, se reservan los cinco bits siguientes. Cuando este valor es 1, los cinco bits siguientes adquieren los significados descritos en la especificación SCTE-35. | 
| [scte.device\$1restrictions] | Sí | 10.3.3.1 | Un valor entero opcional que señala tres grupos de dispositivos predefinidos, independientes y no jerárquicos. Para obtener más información sobre esta variable, consulte la descripción segments\$1expected en la especificación SCTE-35. | 
| [scte.event\$1id] | Sí | 9.1 y 9.7.2.1 | El valor analizado MediaTailor desde el campo SCTE-35splice\$1event\$1id, como un número largo. MediaTailor Utiliza este valor para designar números de disponibilidad de anuncios lineales o para rellenar cadenas de consulta del servidor de anuncios, como las posiciones de los pods de anuncios.El valor debe ser un número entero. | 
| [scte.no\$1regional\$1blackout\$1flag] | Sí | 10.3.3.1 | Un valor booleano opcional. Cuando este valor es 0, se aplican restricciones de bloqueo regionales al segmento. Cuando este valor es 1, las restricciones de bloqueo regionales no se aplican al segmento. | 
| [scte.segment\$1num] | Sí | 10.3.3.1 | Un valor entero opcional que numera los segmentos de un conjunto de segmentos. Para obtener más información sobre esta variable, consulte la descripción segment\$1num en la especificación SCTE-35. | 
| [scte.segmentation\$1event\$1id]  | Sí | 10.3.3.1 | MediaTailor expone esta variable como. [scte.event_id](#scte.event_id) | 
| [scte.segmentation\$1type\$1id] | Sí | 10.3.3.1 | Un valor entero de 8 bits opcional que especifica el tipo de segmentación. Para obtener más información sobre esta variable, consulte la descripción del segmentation\$1type\$1id en la especificación SCTE-35. | 
| [scte.segmentation\$1upid] |  `segmentation_upid_type`: sí `private_data`: sí  |  **segmentation\$1upid: 10.3.3.1** UPID privado gestionado: 10.3.3.3  |  Corresponde al elemento SCTE-35. `segmentation_upid` El `segmentation_upid` elemento contiene `segmentation_upid_type` y. `segmentation_upid_length` MediaTailor admite los siguientes `segmentation_upid` tipos: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/variables-session.html)  | 
| [scte.segmentation\$1upid.assetId] | Sí |  | Se utiliza junto con el UPID privado gestionado (0xC) para los flujos de trabajo de Podbuster. segmentation\$1 upid\$1type MediaTailorobtiene este valor del assetId parámetro de la estructura JSON de la MPU. private\$1data Para obtener más información, consulte [Managed Private UPID JSON structure for a podbuster workflow](#podbuster-workflow). | 
| [scte.segmentation\$1upid.cueData.key] | Sí |  | Se utiliza junto con el UPID privado gestionado (0xC) para los flujos de trabajo de Podbuster. segmentation\$1 upid\$1type MediaTailorobtiene este valor del cueData.key parámetro de la estructura JSON de la MPU. private\$1data Para obtener más información, consulte [Managed Private UPID JSON structure for a podbuster workflow](#podbuster-workflow). | 
| [scte.segmentation\$1upid.cueData.value] | Sí |  | Se utiliza junto con el UPID privado gestionado (0xC) para los flujos de trabajo de Podbuster. segmentation\$1 upid\$1type MediaTailorobtiene este valor del cueData.key parámetro de la estructura JSON de la MPU. private\$1data Para obtener más información, consulte [Managed Private UPID JSON structure for a podbuster workflow](#podbuster-workflow).El valor puede ser una cadena. | 
| [scte.segmentation\$1upid.private\$1data.\$1index\$1] | Sí |  | Se utiliza junto con el UPID privado gestionado (0xC) segmentation\$1upid\$1type para flujos de trabajo de publicidad segmentada. MediaTailor divide los identificadores UPID de segmentación delimitados por dos puntos y crea variables de sesión indexadas. El índice corresponde a la posición en la lista delimitada por dos puntos e ignora los espacios en blanco que aparecen al principio de los dos puntos iniciales. Por ejemplo, si, entonces: `segmentation_upid = ":3213214:2313321/5:3943"` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/variables-session.html) El valor puede ser una cadena. | 
| [scte.segments\$1expected] | Sí | 10.3.3.1 | Un valor entero opcional que proporciona el recuento esperado de segmentos individuales dentro de un conjunto de segmentos. Para obtener más información sobre esta variable, consulte la descripción segments\$1expected en la especificación SCTE-35. | 
| [scte.sub\$1segment\$1num] | Sí | 10.3.3.1 | Un valor entero opcional que identifica un subsegmento concreto dentro de un conjunto de subsegmentos. Para obtener más información sobre esta variable, consulte la descripción del sub\$1segment\$1num en la especificación SCTE-35. | 
| [scte.sub\$1segments\$1expected] | Sí | 10.3.3.1 | Un valor entero opcional que proporciona el recuento esperado de subsegmentos individuales dentro de un conjunto de subsegmentos. Para obtener más información sobre esta variable, consulte la descripción de sub\$1segments\$1expected en la especificación SCTE-35. | 
| [scte.unique\$1program\$1id] | Sí | 9.7.2.1 | El valor entero analizado MediaTailor desde el campo SCTE-35. splice\$1insert unique\$1program\$1id El ADS utiliza el ID de programa exclusivo (UPID) para proporcionar destinos de anuncios en el nivel del programa para una secuencia lineal en directo. Si el comando SCTE-35 no es splice insert, lo MediaTailor establece en un valor vacío.El valor debe ser un número entero. | 
| [session.avail\$1duration\$1ms] | Sí |  |  La duración en milisegundos del espacio de disponibilidad del anuncio. El valor predeterminado es de 300 000 ms. AWS Elemental MediaTailor obtiene el valor de duración del manifiesto de entrada de la siguiente manera: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/variables-session.html)  | 
| [session.avail\$1duration\$1secs] | Sí |  | La duración en segundos del espacio de disponibilidad del anuncio, o disponibilidad del anuncio, se redondea al segundo más cercano. MediaTailor determina este valor del mismo modo que lo determina[session.avail\$1duration\$1ms]. | 
| [session.client\$1ip] | No |  | La dirección IP remota de la que proviene la MediaTailor solicitud. Si se ha definido el encabezado X-forwarded-for, ese valor es el que MediaTailor utiliza para client\$1ip. | 
| [session.id] | No |  | Un identificador numérico único para la sesión de reproducción actual. Todas las solicitudes que realiza un reproductor para una sesión tienen el mismo ID y, por tanto, ese ID se puede usar para los campos de ADS diseñados para relacionar solicitudes de una única visualización. | 
| [session.referer] | No |  | Normalmente, la URL de la página que aloja el reproductor de vídeo. MediaTailor establece esta variable en el valor del Referer encabezado que el reproductor utilizó en su solicitud MediaTailor. Si el reproductor no proporciona este encabezado, MediaTailor deja [session.referer] vacío. Si utilizas una red de entrega de contenido (CDN) o un proxy delante del punto final del manifiesto y quieres que aparezca esta variable, coloca aquí el encabezado correcto desde el reproductor. | 
| [session.user\$1agent] | No |  | El User-Agent encabezado que se MediaTailor recibió de la solicitud de inicialización de sesión del jugador. Si utiliza una CDN o proxy delante del punto de enlace del manifiesto, debe delegar el encabezado correcto desde el reproductor aquí. | 
| [session.uuid] | No |  |  Alternativa a. **[session.id]** Se trata de un identificador único de la sesión de reproducción actual, como el siguiente: <pre>e039fd39-09f0-46b2-aca9-9871cc116cde</pre>  | 
| [avail.source\$1content\$1time\$1epoch\$1ms] | No |  |  En el caso del HLS, el valor es el PDT del segmento de origen que inició la descarga. En el caso de DASH, el valor es el `<SupplementalProperty> urn:scte:dash:utc-time` `<Period>` que contiene el. `<EventStream>` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/variables-session.html)  | 

**Example**  
Si el ADS requiere que un parámetro de consulta denominado `deviceSession` se pase con el identificador de sesión único, la URL de ADS de plantilla de AWS Elemental MediaTailor podría tener un aspecto similar al siguiente:  

```
https://my.ads.server.com/path?deviceSession=[session.id]
```
AWS Elemental MediaTailor genera automáticamente un identificador único para cada transmisión e introduce el identificador en lugar de. `session.id` Si el identificador lo es`1234567`, la solicitud final que se MediaTailor haga al ADS tendría un aspecto similar al siguiente:  

```
https://my.ads.server.com/path?deviceSession=1234567
```
Si el ADS requiere que se pasen varios parámetros de consulta, la URL del ADS de la plantilla AWS Elemental MediaTailor podría tener el siguiente aspecto:  

```
https://my.ads.server.com/sample?e=[scte.avails_expected]&f=[scte.segment_num]&g=[scte.segments_expected]&h=[scte.sub_segment_num]&j=[scte.sub_segments_expected]&k=[scte.segmentation_type_id]
```
En el siguiente fragmento XML de ejemplo del marcador DASH se muestra cómo usarlo`scte35:SpliceInsert`:  

```
<Period start="PT444806.040S" id="123456" duration="PT15.000S">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="1350000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095">
        <scte35:SpliceInsert spliceEventId="1234567890" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
          <scte35:Program><scte35:SpliceTime ptsTime="5672624400"/></scte35:Program>
          <scte35:BreakDuration autoReturn="true" duration="1350000"/>
        </scte35:SpliceInsert>
      </scte35:SpliceInfoSection>
```
El siguiente fragmento XML de ejemplo de marcador DASH muestra cómo usarlo`scte35:TimeSignal`:  

```
<Period start="PT346530.250S" id="123456" duration="PT61.561S">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="5310000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183003" tier="4095">
        <scte35:TimeSignal>
          <scte35:SpliceTime ptsTime="3442857000"/>
        </scte35:TimeSignal>
        <scte35:SegmentationDescriptor segmentationEventId="1234567" segmentationEventCancelIndicator="false" segmentationDuration="8100000" segmentationTypeId="52" segmentNum="0" segmentsExpected="0">
          <scte35:DeliveryRestrictions webDeliveryAllowedFlag="false" noRegionalBlackoutFlag="false" archiveAllowedFlag="false" deviceRestrictions="3"/>
          <scte35:SegmentationUpid segmentationUpidType="12" segmentationUpidLength="2">0100</scte35:SegmentationUpid>
        </scte35:SegmentationDescriptor>
      </scte35:SpliceInfoSection>
    </Event>
```
El siguiente fragmento XML de ejemplo de marcador DASH muestra cómo usarlo`scte35:Binary`:  

```
<Period start="PT444806.040S" id="123456" duration="PT15.000S">
  <EventStream schemeIdUri="urn:scte:scte35:2014:xml+bin" timescale="1">
    <Event presentationTime="1541436240" duration="24" id="29">
      <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016">
        <scte35:Binary>/DAhAAAAAAAAAP/wEAUAAAHAf+9/fgAg9YDAAAAAAAA25aoh</Binary>
      </scte35:Signal>
    </Event>
    <Event presentationTime="1541436360" duration="24" id="30">
      <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016">
        <scte35:Binary>QW5vdGhlciB0ZXN0IHN0cmluZyBmb3IgZW5jb2RpbmcgdG8gQmFzZTY0IGVuY29kZWQgYmluYXJ5Lg==</Binary>
      </scte35:Signal>
    </Event>
```
El siguiente ejemplo de etiqueta HLS muestra cómo usarla`EXT-X-DATERANGE`:  

```
#EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2014-03-05T11:
15:00Z",PLANNED-DURATION=59.993,SCTE35-OUT=0xFC002F0000000000FF0
00014056FFFFFF000E011622DCAFF000052636200000000000A0008029896F50
000008700000000
```
En el siguiente ejemplo de etiqueta HLS se muestra cómo utilizarla: `EXT-X-CUE-OUT`  

```
#EXT-OATCLS-SCTE35:/DA0AAAAAAAAAAAABQb+ADAQ6QAeAhxDVUVJQAAAO3/PAAEUrEoICAAAAAAg+2UBNAAANvrtoQ==  
#EXT-X-ASSET:CAID=0x0000000020FB6501  
#EXT-X-CUE-OUT:201.467
```
En el siguiente ejemplo de etiqueta HLS se muestra cómo utilizarla: `EXT-X-SPLICEPOINT-SCTE35`  

```
#EXT-X-SPLICEPOINT-SCTE35:/DA9AAAAAAAAAP/wBQb+uYbZqwAnAiVDVUVJAAAKqX//AAEjW4AMEU1EU05CMDAxMTMyMjE5M19ONAAAmXz5JA==
```
El siguiente ejemplo muestra cómo utilizar la `scte35:Binary` decodificación:  

```
{
  "table_id": 252,
  "section_syntax_indicator": false,
  "private_indicator": false,
  "section_length": 33,
  "protocol_version": 0,
  "encrypted_packet": false,
  "encryption_algorithm": 0,
  "pts_adjustment": 0,
  "cw_index": 0,
  "tier": "0xFFF",
  "splice_command_length": 16,
  "splice_command_type": 5,
  "splice_command": {
    "splice_event_id": 448,
    "splice_event_cancel_indicator": false,
    "out_of_network_indicator": true,
    "program_splice_flag": true,
    "duration_flag": true,
    "splice_immediate_flag": false,
    "utc_splice_time": {
      "time_specified_flag": false,
      "pts_time": null
    },
    "component_count": 0,
    "components": null,
    "break_duration": {
      "auto_return": false,
      "duration": {
        "pts_time": 2160000,
        "wall_clock_seconds": 24.0,
        "wall_clock_time": "00:00:24:00000"
      }
    },
    "unique_program_id": 49152,
    "avail_num": 0,
    "avails_expected": 0
    "segment_num": 0,
    "segments_expected": 0,
    "sub_segment_num": 0,
    "sub_segments_expected": 0
  },
  "splice_descriptor_loop_length": 0,
  "splice_descriptors": null,
  "Scte35Exception": {
    "parse_status": "SCTE-35 cue parsing completed with 0 errors.",
    "error_messages": [],
    "table_id": 252,
    "splice_command_type": 5
  }
}
```

# MediaTailor variables de reproductor para solicitudes de ADS
<a name="variables-player"></a>

AWS Elemental MediaTailor envía los datos recibidos del reproductor al ADS cuando AWS Elemental MediaTailor configuras para especificar `player_params.<query_parameter_name>` variables en la URL de ADS de la plantilla. Por ejemplo, si el reproductor envía un parámetro de consulta mencionado `user_id` en su solicitud a MediaTailor, para pasar esos datos en la solicitud de ADS, inclúyalo `[player_params.user_id]` en la configuración de la URL de ADS. 

Esto le permite controlar los parámetros de consulta que se incluyen en la solicitud de ADS. Normalmente, se añade un parámetro de consulta especial que el ADS reconoce a la URL de solicitud de ADS y se proporcionan pares de clave-valor como el valor del parámetro. 

Los ejemplos que se utilizan en el siguiente procedimiento utilizan los siguientes pares de clave-valor:
+ *param1* con un valor de *value1:*
+ *param2* con un valor de *value2:*

**Para añadir parámetros de consulta como pares de clave-valor** 

1. En AWS Elemental MediaTailor, configure la URL de la plantilla de solicitud de ADS para que haga referencia a los parámetros. La siguiente URL muestra la inclusión de los parámetros de ejemplo: 

   ```
   https://my.ads.com/path?param1=[player_params.param1]&param2=[player_params.param2]
   ```

1. (Opcional) Para los informes de seguimiento de anuncios del lado del servidor, codifique en formato URL los pares de clave-valor del reproductor. Cuando MediaTailor recibe la solicitud de inicialización de la sesión, decodifica los valores una vez en la URL antes de sustituirlos en la URL de la solicitud de ADS. 
**nota**  
Si su ADS requiere un valor codificado como URL, codifique el valor en formato URL dos veces en el reproductor. De esta forma, la decodificación realizada por el ADS MediaTailor da como resultado un valor codificado una vez. 

   Por ejemplo, si la representación descodificada de los valores enviados al ADS es `param1=value1:&param2=value2:`, la representación codificada como URL es `param1=value1%3A&param2=value2%3A`.

1. En la llamada de inicialización de sesión del reproductor, transfiera los pares clave-valor a MediaTailor como el valor de un único parámetro de consulta. Las siguientes llamadas de ejemplo proporcionan los pares de clave-valor de ejemplo para los informes de seguimiento de anuncios del lado del servidor y del cliente.
   + Ejemplo de solicitudes para informes de seguimiento de anuncios del lado del servidor mediante pares codificados como URL

     HLS:

     ```
     <master>.m3u8?ads.param1=value1%3A&ads.param2=value2%3A
     ```

     DASH:

     ```
     <manifest>.mpd?ads.param1=value1%3A&ads.param2=value2%3A
     ```
   + Solicitud de ejemplo para informes de seguimiento de anuncios del lado del servidor sin codificación en URL

     HLS:

     ```
     POST <master>.m3u8
         {
             "adsParams": {
                "param1": "value1:",
                "param2": "value2:"
            }
         }
     ```

     DASH:

     ```
     POST <manifest>.mpd
         {
             "adsParams": {
                "param1": "value1:",
                "param2": "value2:"
            }
         }
     ```

Para generar informes desde el servidor, MediaTailor decodifica los parámetros cuando se recibe la solicitud del jugador. En el caso de los informes del lado del cliente, no altera los parámetros recibidos en la carga útil de JSON. MediaTailor envía la siguiente solicitud al ADS:

```
https://my.ads.com/<path>?param1=value1:&param2=value2:
```

De esta forma, los pares de clave-valor `param1` y `param2` se incluyen como parámetros de consulta de primera clase en la solicitud de ADS.

# MediaTailor variables de dominio para múltiples fuentes de contenido
<a name="variables-domains"></a>

AWS Elemental MediaTailor Las variables de dominio dinámicas le permiten usar varios dominios, como la parte **my-ads-server.com** de la URL http://my-ads-server.com, con los parámetros del reproductor en su configuración. Esto te permite usar más de una fuente de contenido o un servidor de decisiones publicitarias (ADS) en una sola configuración. 

 Puedes usar variables de dominio con cualquier parámetro que contenga un URI: 
+ `AdDecisionServerUrl`
+ `AdSegmentUrlPrefix`
+ `ContentSegmentUrlPrefix`
+ `LivePreroll.AdDecisionServerUrl`
+ `VideoContentSourceUrl`

 Las variables de dominio se utilizan junto con los *alias de configuración* para sustituir las variables de forma dinámica. Los alias de configuración asignan un conjunto de alias y valores a los parámetros del reproductor que se utilizan para la configuración dinámica del dominio. Para conocer los procedimientos de configuración, consulte. [Creación y uso de alias de configuración con MediaTailor](creating-configuration-aliases.md) Para obtener información de referencia detallada, consulte[MediaTailor descripción general de los alias de configuración](configuration-aliases-overview.md). 

# MediaTailor descripción general de los alias de configuración
<a name="configuration-aliases-overview"></a>

AWS Elemental MediaTailor Los alias de configuración permiten la sustitución dinámica de variables en los dominios URL y otros campos compatibles. Utilice esta función para utilizar varios dominios y realizar una configuración dinámica URLs durante la inicialización de la sesión.

## Casos de uso
<a name="configuration-aliases-use-cases"></a>

Los alias de configuración permiten arquitecturas sofisticadas de múltiples configuraciones para los siguientes escenarios:
+ **Enrutamiento geográfico: dirija** las solicitudes a diferentes orígenes o servidores de anuncios en función de la ubicación del espectador mediante alias específicos de la región. [Para obtener instrucciones sobre la implementación, consulta Origin FailoverCloudFront .](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html)
+ **Enrutamiento basado en el contenido:** dirija los diferentes tipos de contenido a orígenes o canales de procesamiento especializados. Para obtener información sobre la configuración del comportamiento de enrutamiento, consulte. [Configure los comportamientos de enrutamiento de CDN para MediaTailor](cdn-routing-behaviors.md)
+ **Escenarios de conmutación por error:** Implemente los orígenes de las copias de seguridad y los servidores de anuncios con una conmutación por error automática mediante el cambio de alias. Para obtener información detallada sobre la implementación, consulte [Implemente la resiliencia multirregional MediaTailor con MQAR](media-quality-resiliency.md) y. [Planifique su integración de CDN para AWS Elemental MediaTailor](planning-cdn-integration.md)
+ **Pruebas A/B:** prueba diferentes servidores de anuncios, orígenes o configuraciones enrutando el tráfico en función de los parámetros del reproductor. Para obtener información sobre las pruebas de carga, consulta [Cómo preparar y ejecutar pruebas de rendimiento para Amazon CloudFront con supervisión de usuarios reales](https://aws.amazon.com/blogs/networking-and-content-delivery/prepare-and-run-performance-tests-for-amazon-cloudfront-with-real-user-monitoring/).
+ **Optimización específica para cada dispositivo:** optimice la entrega de contenido y la publicación de anuncios para diferentes tipos de dispositivos o capacidades. Para obtener una guía completa, consulte. [Configura el filtrado de manifiestos con MediaTailor MediaPackage, y CDN](cdn-emp-manifest-filtering.md)
+ **Equilibrio de carga:** distribuya la carga entre varios orígenes o servidores de anuncios mediante el enrutamiento dinámico. Para obtener orientación sobre la implementación, consulte [Implemente la resiliencia multirregional MediaTailor con MQAR](media-quality-resiliency.md) y[Planifique su integración de CDN para AWS Elemental MediaTailor](planning-cdn-integration.md).

## Campos compatibles
<a name="configuration-aliases-supported"></a>

Puede utilizar variables dinámicas en los siguientes campos de configuración:
+ `VideoContentSourceUrl`
+ `AdDecisionServerUrl`
+ `LivePreroll.AdDecisionServerUrl`
+ `AdSegmentUrlPrefix`
+ `ContentSegmentUrlPrefix`
+ `TranscodeProfileName`
+ `SlateAdUrl`
+ `StartUrl`
+ `EndUrl`

En las siguientes secciones se describe cómo utilizar los alias de configuración.

**Topics**
+ [Casos de uso](#configuration-aliases-use-cases)
+ [Campos compatibles](#configuration-aliases-supported)
+ [Crear y usar](creating-configuration-aliases.md)
+ [Ejemplo de flujo](configuration-aliases-examples.md)

# Creación y uso de alias de configuración con MediaTailor
<a name="creating-configuration-aliases"></a>

Antes de empezar a usar variables de dominio, debe crear alias de configuración para su configuración. Los alias de configuración se utilizan como variables de reemplazo del dominio en el momento de la inicialización de la sesión.

**Restricciones**  
Tenga en cuenta las siguientes restricciones al utilizar los alias de configuración:
+ Todas las variables dinámicas utilizadas en el dominio deben definirse como variables `ConfigurationAliases` dinámicas.
+ Las variables de los parámetros del reproductor deben ir precedidas de`player_params.`. Por ejemplo, `player_params.origin_domain`.
+ La lista de valores con alias debe ser exhaustiva para las variables de dominio críticas URLs (`VideoContentSourceUrl`,`AdSegmentUrlPrefix`,`ContentSegmentUrlPrefix`).
+ Si se realiza una solicitud para una variable de dominio crítica URLs que no especifica la variable dinámica o utiliza un alias no válido, la solicitud fallará con un código de `400` estado HTTP. Los campos no críticos (`SlateAdUrl`,`TranscodeProfileName`, bumper URLs) registrarán las advertencias pero no rechazarán la solicitud.

**Comportamiento alternativo para los alias faltantes**  
Cuando los alias de configuración no se encuentran o no son válidos, MediaTailor implementa el siguiente comportamiento alternativo:
+ **Variables de dominio:** si falta un alias de variable de dominio o no es válido, la solicitud falla con el código de estado HTTP 400. Todas las variables de dominio deben tener definidos alias válidos.
+ **Variables que no son de dominio:** en el caso de las variables que se utilizan en partes que no son de dominio URLs (como los elementos de ruta o los parámetros de consulta), si faltan alias, se reemplaza una cadena vacía.
+ **Validación de la configuración:** MediaTailor valida que todos los alias necesarios estén presentes durante las operaciones de creación y actualización de la configuración.

## Paso 1: Crear alias de configuración
<a name="dynamic-domains-creating-configuration-alias"></a>

Para crear alias de configuración para utilizarlos en la sustitución de dominios mediante la MediaTailor consola, lleve a cabo el siguiente procedimiento.

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

**Para crear alias de configuración mediante la consola**

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

1. En la sección **Alias de configuración** de la página de **configuraciones**, selecciona **Añadir parámetro de reproductor**. 

1. En **Parámetro del reproductor**, introduzca el nombre del parámetro del reproductor que desee utilizar como variable dinámica. Por ejemplo, `player_params.origin_domain`. 

1. En el caso de los **alias**, introduzca los alias y sus valores que desee utilizar para el parámetro del reproductor. 

1. Seleccione **Aceptar**. 

   AWS Elemental MediaTailor muestra el nuevo parámetro en la tabla de la sección **Alias de configuración**.

1. Repita los pasos anteriores para añadir más parámetros del reproductor. 

1. Seleccione **Save**. 

------
#### [ API ]

**Para crear alias de configuración mediante la API**  
Al crear o actualizar una MediaTailor configuración, utilice el `ConfigurationAliases` parámetro con la siguiente estructura JSON: 

```
{
                "ConfigurationAliases": {
                "player_params.origin_domain": {
                "pdx": "abc.mediapackage.us-west-2.amazonaws.com",
                "iad": "xyz.mediapackage.us-east-1.amazonaws.com"
                },
                "player_params.ad_type": {
                "customized": "abc12345",
                "default": "defaultAdType"
                }
                }
                }
```

------

## Paso 2: Utilice los alias de configuración en la inicialización de la sesión
<a name="dynamic-domains-using-configuration-alias"></a>

Después de configurar los alias de configuración, puede usarlos como variables de reemplazo para los dominios de su solicitud de inicialización de sesión. Esto le permite configurar dinámicamente los dominios de la sesión.

**Example Ejemplo de alias de configuración básica**  
Este es un ejemplo básico de una configuración que incluye alias de configuración y variables de dominio dinámicas:  

```
PUT /playbackConfiguration
{
    "Name": "aliasedConfig",
    "AdDecisionServerUrl": "https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=[player_params.ad_type]",
    "VideoContentSourceUrl": "https://[player_params.origin_domain].mediapackage.[player_params.region].amazonaws.com/out/v1/[player_params.endpoint_id]",
    "ConfigurationAliases": {
        "player_params.origin_domain": {
            "pdx": "abc",
            "iad": "xyz"
        },
        "player_params.region": {
            "pdx": "us-west-2",
            "iad": "us-east-1"
        },
        "player_params.endpoint_id": {
            "pdx": "abcd",
            "iad": "wxyz"
        },
        "player_params.ad_type": {
            "customized": "abc12345",
            "default": "defaultAdType"
        }
    }
}
```

**Example Inicialización de la sesión con alias**  
Con la configuración anterior, una solicitud de inicialización de sesión que utilice las variables y los alias del reproductor tendría un aspecto similar al siguiente:  

```
POST index.m3u8
{
    "playerParams": {
        "origin_domain": "pdx",
        "region": "pdx",
        "endpoint_id": "pdx",
        "ad_type": "customized"
    }
}
```
MediaTailor reemplaza las cadenas de alias por los valores mapeados en la configuración de los alias de configuración.  
La solicitud al ADS tendrá el siguiente aspecto:  

```
https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=abc12345
```
La solicitud de los manifiestos al origen tendrá el siguiente aspecto:  

```
https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd
```

# Alias de configuración con ejemplo MediaTailor de uso
<a name="configuration-aliases-examples"></a>

En los siguientes ejemplos se muestra cómo completar una MediaTailor configuración con alias de configuración, una solicitud de inicialización de sesión con alias y el flujo de procesamiento de los alias.

**Example Configuración completa con alias**  
El siguiente ejemplo muestra una configuración completa que incluye alias de configuración y variables de dominio dinámicas:   

```
PUT /playbackConfiguration
{
    "Name": "aliasedConfig",
    "AdDecisionServerUrl": "https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=[player_params.ad_type]",
    "VideoContentSourceUrl": "https://[player_params.origin_domain].mediapackage.[player_params.region].amazonaws.com/out/v1/[player_params.endpoint_id]",
    
    "AdSegmentUrlPrefix": "https://[player_params.ad_cdn_domain]/ads/",
    "ContentSegmentUrlPrefix": "https://[player_params.content_cdn_domain]/content/",
    "TranscodeProfileName": "[player_params.transcode_profile]",
    "SlateAdUrl": "https://[player_params.slate_domain]/slate/[player_params.slate_type].mp4",
    "StartUrl": "https://[player_params.tracking_domain]/start?session=[session.id]",
    "EndUrl": "https://[player_params.tracking_domain]/end?session=[session.id]",
    
    "ConfigurationAliases": {
        "player_params.origin_domain": {
            "pdx": "abc",
            "iad": "xyz"
        },
        "player_params.region": {
            "pdx": "us-west-2",
            "iad": "us-east-1"
        },
        "player_params.endpoint_id": {
            "pdx": "abcd",
            "iad": "wxyz"
        },
        "player_params.ad_type": {
            "customized": "abc12345",
            "default": "defaultAdType"
        },
        "player_params.ad_cdn_domain": {
            "pdx": "ads-west.cdn.example.com",
            "iad": "ads-east.cdn.example.com"
        },
        "player_params.content_cdn_domain": {
            "pdx": "content-west.cdn.example.com",
            "iad": "content-east.cdn.example.com"
        },
        "player_params.transcode_profile": {
            "mobile": "mobile_optimized",
            "desktop": "high_quality",
            "tv": "4k_profile"
        },
        "player_params.slate_domain": {
            "pdx": "slate-west.example.com",
            "iad": "slate-east.example.com"
        },
        "player_params.slate_type": {
            "standard": "default_slate",
            "branded": "brand_slate"
        },
        "player_params.tracking_domain": {
            "pdx": "tracking-west.example.com",
            "iad": "tracking-east.example.com"
        }
    }
}
```

**Example Inicialización de la sesión con alias**  
El siguiente ejemplo muestra una solicitud de inicialización de sesión que especifica las variables y los alias del reproductor:   

```
POST master.m3u8
{
    "playerParams": {
        "origin_domain": "pdx",
        "region": "pdx", 
        "endpoint_id": "pdx",
        "ad_type": "customized",
        "ad_cdn_domain": "pdx",
        "content_cdn_domain": "pdx",
        "transcode_profile": "mobile",
        "slate_domain": "pdx",
        "slate_type": "branded",
        "tracking_domain": "pdx"
    }
}
```

**Example Flujo de procesamiento de parámetros**  
En el siguiente ejemplo, MediaTailor reemplaza las cadenas de alias por los valores mapeados en los alias de configuración. El procesamiento da como resultado las siguientes solicitudes:   
+ Solicitud de ADS:

  ```
  https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=abc12345
  ```
+ VideoContentSource solicitud:

  ```
  https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd
  ```
+ AdSegmentUrlPrefix:

  ```
  https://ads-west.cdn.example.com/ads/
  ```
+ ContentSegmentUrlPrefix:

  ```
  https://content-west.cdn.example.com/content/
  ```
+ TranscodeProfileName:

  ```
  mobile_optimized
  ```
+ SlateAdUrl:

  ```
  https://slate-west.example.com/slate/brand_slate.mp4
  ```
+ StartUrl:

  ```
  https://tracking-west.example.com/start?session=[session.id]
  ```
+ EndUrl:

  ```
  https://tracking-west.example.com/end?session=[session.id]
  ```

# MediaTailor pasar parámetros a ADS
<a name="passing-paramters-to-the-ads"></a>

AWS Elemental MediaTailor permite configurar variables dinámicas en las MediaTailor solicitudes al ADS mediante los siguientes pasos. 
+ Para obtener información sobre los formatos admitidos para los parámetros de consulta, consulte[MediaTailor referencia y limitaciones de los parámetros](parameter-comprehensive-reference.md).
+ Para ver los alias de configuración y las variables de dominio, consulte[MediaTailor descripción general de los alias de configuración](configuration-aliases-overview.md).
+ Para ver personalizaciones adicionales de la solicitud de ADS, consulte. [Uso avanzado](#variables-advanced-usage)

**Métodos de inicialización de la sesión**  
MediaTailor admite varios métodos para la inicialización de la sesión y el paso de parámetros: 

1. **POST con cuerpo de solicitud:**

   ```
   POST <master>.m3u8
   {
       "adsParams": {"param1": "value1", "param2": "value2"},
       "playerParams": {"param3": "value3"}
   }
   ```

1. **Parámetros de consulta en la URL:**

   ```
   GET <master>.m3u8?ads.param1=value1&ads.param2=value2&playerParams.param3=value3
   ```

**importante**  
Solo puede especificar los parámetros una vez, en el momento de la inicialización. Los alias de configuración se resuelven con los valores reales antes de reenviarlos. 

**Para pasar información de la sesión y el reproductor a ADS**

1. Trabaje con el ADS para determinar la información que necesita para responder a una consulta de anuncios. AWS Elemental MediaTailor

1. Crea una configuración MediaTailor que utilice una plantilla de URL de solicitud de ADS que cumpla los requisitos de ADS. En la URL, incluya parámetros estáticos y marcadores de posición para los parámetros dinámicos. Especifique la URL de la plantilla en el campo **Ad decision server (Servidor de decisión de anuncios)** de la configuración. 

   En el siguiente ejemplo, la URL de la plantilla, `correlation`, proporciona datos de la sesión y `deviceType` proporciona datos del reproductor: 

   ```
   https://my.ads.server.com/path?correlation=[session.id]&deviceType=[player_params.deviceType]
   ```

1. En el reproductor, configure la solicitud de inicio de sesión para que AWS Elemental MediaTailor proporcione los parámetros para los datos del reproductor. Incluya los parámetros en la solicitud de inicio de sesión y omítalos en las solicitudes de sesión posteriores. 

   El tipo de llamada que realiza el jugador para inicializar la sesión determina si el jugador (cliente) o MediaTailor (servidor) proporciona informes de seguimiento de anuncios para la sesión. Para obtener información sobre estas dos opciones, consulte [Elaboración de informes y datos de seguimiento](ad-reporting.md). 

   Realice uno de los siguientes tipos de llamadas, en función de si desea realizar informes de seguimiento de anuncios en el servidor o en el cliente. En ambas llamadas de ejemplo, `userID` es para el ADS y `auth_token` es para el origen:
   + (Opcional) Solicita informes de seguimiento de anuncios en el servidor: añade un prefijo a los parámetros que quieres enviar MediaTailor al ADS. `ads` Suprima el prefijo para los parámetros que desee que MediaTailor envíe al servidor de origen: 

     Los siguientes ejemplos muestran las solicitudes entrantes de HLS y DASH a. AWS Elemental MediaTailor MediaTailor usa el `deviceType` en su solicitud al ADS y el `auth_token` en su solicitud al servidor de origen. 

     Ejemplo de HLS:

     ```
     GET master.m3u8?ads.deviceType=ipad&auth_token=kjhdsaf7gh
     ```

     Ejemplo de DASH:

     ```
     GET manifest.mpd?ads.deviceType=ipad&auth_token=kjhdsaf7gh
     ```
   + (Opcional) Solicita informes de seguimiento de anuncios por parte del cliente: proporciona parámetros para el ADS dentro de un objeto. `adsParams`

     Ejemplo de HLS:

     ```
     POST master.m3u8
         {
             "adsParams": {
                "deviceType": "ipad"
            }
         }
     ```

     Ejemplo de DASH:

     ```
     POST manifest.mpd
         {
             "adsParams": {
                "deviceType": "ipad"
            }
         }
     ```

Cuando el reproductor inicia una sesión, AWS Elemental MediaTailor reemplaza las variables de la URL de solicitud de ADS de la plantilla por los datos de la sesión y los parámetros del reproductor. `ads` Pasa los parámetros restantes del reproductor al servidor de origen. 

**Example MediaTailor solicitudes con variables publicitarias**  
Los siguientes ejemplos muestran las llamadas al ADS y al servidor de origen desde AWS Elemental MediaTailor que se corresponden con los ejemplos de llamada de inicialización de sesión del reproductor anterior:   
+ MediaTailor llama al ADS con los datos de la sesión y el tipo de dispositivo del jugador: 

  ```
  https://my.ads.server.com/path?correlation=896976764&deviceType=ipad
  ```
+ MediaTailor llama al servidor de origen con el token de autorización del jugador.
  + Ejemplo de HLS:

    ```
    https://my.origin.server.com/master.m3u8?auth_token=kjhdsaf7gh
    ```
  + Ejemplo de DASH:

    ```
    https://my.origin.server.com/manifest.mpd?auth_token=kjhdsaf7gh
    ```

## Uso avanzado
<a name="variables-advanced-usage"></a>

Puede personalizar la solicitud de ADS de muchas formas con datos del reproductor y de la sesión. Solo necesita incluir el nombre de host de ADS. 

En los siguientes ejemplos se muestran algunas de las maneras en que puede personalizar su solicitud: 
+ Concatenar los parámetros del reproductor y los parámetros de la sesión para crear nuevos parámetros. Ejemplo: 

  ```
  https://my.ads.com?key1=[player_params.value1][session.id]
  ```
+ Usar un parámetro de reproductor como parte de un elemento de ruta. Ejemplo:

  ```
  https://my.ads.com/[player_params.path]?key=value
  ```
+ Usar parámetros del reproductor para pasar los elementos de ruta y las propias clave, en lugar de solo valores. Ejemplo: 

  ```
  https://my.ads.com/[player_params.path]?[player_params.key1]=[player_params.value1]
  ```

# MediaTailor enrutamiento de parámetros para ADS y orígenes
<a name="parameter-routing-behavior"></a>

AWS Elemental MediaTailor enruta los parámetros de consulta a diferentes destinos en función de su prefijo y propósito. Comprender el enrutamiento de parámetros es esencial para implementar funciones específicas del origen, como la visualización con cambios en el tiempo. MediaPackage

**Reglas de enrutamiento de parámetros**  
MediaTailor utiliza las siguientes reglas de enrutamiento para los parámetros de consulta:
+ **Parámetros de origen (sin prefijo):** los parámetros sin un prefijo específico se transfieren al servidor de origen para obtener una funcionalidad específica del origen
+ **Parámetros ADS (`ads.`prefijo):** los parámetros con el prefijo de se envían al servidor de decisiones `ads.` publicitarias
+ **Parámetros de manifiesto (`manifest.`prefijo): los parámetros con el prefijo** de `manifest.` se utilizan para el enrutamiento y la autorización de la CDN

**Example Ejemplo de enrutamiento de parámetros**  
La siguiente inicialización de la sesión muestra el enrutamiento de parámetros:  

```
POST /v1/session/123456789/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1",
        "param2": "value2"
    },
    "manifestParams": {
        "auth_token": "abc123"
    }
}
```
En este ejemplo:  
+ `param1`y `param2` se envían al ADS
+ `auth_token`se utiliza para el enrutamiento y la autorización de la CDN
+ Los parámetros sin prefijos se pasarían al servidor de origen

## Comportamiento de los parámetros del servidor origen
<a name="origin-parameter-behavior"></a>

Los parámetros que se transfieren a los servidores de origen permiten funciones específicas del origen, como la visualización con cambios de hora, el filtrado de contenido y la autenticación.

**Casos de uso comunes de los parámetros de origen**  
Los parámetros de origen se utilizan habitualmente para:
+ **Visualización desplazada en el tiempo:** `start` y `end` parámetros para el contenido desplazado en el MediaPackage tiempo
+ **Autenticación de contenido:** el servidor de origen necesita identificadores de autenticación
+ **Filtrado de contenido:** parámetros que controlan qué variantes de contenido se devuelven
+ **Características específicas del origen:** cualquier parámetro que utilice el servidor de origen para el procesamiento del contenido

**importante**  
Los parámetros se procesan en el momento de la inicialización de la sesión y se mantienen durante toda la sesión. Para modificar parámetros como las ventanas de cambio de hora, debe crear una sesión nueva con los valores actualizados.

# MediaTailor e integración de visualización MediaPackage desplazada en el tiempo
<a name="mediapackage-integration-param"></a>

AWS Elemental MediaTailor puede transferir los parámetros de visualización desplazados en el tiempo a los MediaPackage orígenes para permitir la funcionalidad de visualización inicial y puesta al día. Esta integración permite a los espectadores empezar a ver contenido en directo desde momentos más tempranos.

**MediaPackage parámetros de visualización desplazados en el tiempo**  
MediaPackage admite los siguientes parámetros de visualización desplazados en el tiempo que se pueden transferir: MediaTailor
+ `start`: Marca temporal o marca temporal ISO 8601 que define el comienzo del manifiesto desplazado en el tiempo
+ `end`: Marca temporal o marca temporal ISO 8601 que define el final del manifiesto desplazado en el tiempo
+ `time_delay`: retrasa la disponibilidad del contenido en segundos específicos
+ `manifest_window_seconds`: solicite un manifiesto más corto que la ventana configurada

**Example MediaTailor inicialización de la sesión con parámetros cambiados en MediaPackage el tiempo**  
El siguiente ejemplo muestra cómo inicializar una sesión con parámetros de visualización desplazados en el tiempo:  

```
GET /v1/master/123456789/originId/index.m3u8?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```
O usar la inicialización de sesión explícita:  

```
POST /v1/session/123456789/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1"
    }
}
```
Con parámetros de consulta adicionales:  

```
?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```

**Comportamiento de los parámetros durante las sesiones**  
Los parámetros de visualización desplazados en el tiempo tienen características de comportamiento específicas:
+ **Inicialización de la sesión:** los parámetros se procesan cuando se crea la sesión
+ **Persistencia de los parámetros:** los parámetros permanecen asociados a la sesión durante la reproducción
+ **Inmutable tras la inicialización:** los parámetros no se pueden cambiar durante una sesión activa
+ **Se requiere una nueva sesión:** para modificar las ventanas de cambio de hora, cree una nueva sesión con los valores de los parámetros actualizados

**MediaPackage requisitos de la ventana de inicio**  
Para que funcione con la visualización con cambios de hora MediaPackage, asegúrese de lo siguiente:

1. Configure una ventana de inicio y recuperación en su MediaPackage terminal (hasta 24 horas)

1. Asegúrese de que su CDN reenvíe los parámetros de consulta necesarios a MediaPackage

1. Utilice ventanas de reproducción uniformes en todas las sesiones del reproductor para mejorar el almacenamiento en caché de la CDN

1. Compruebe que las horas de inicio y finalización se encuentren dentro de la ventana de puesta en marcha configurada

**importante**  
Cuando utilice la visualización con cambio de hora, utilice ventanas de reproducción uniformes en todas las sesiones de reproducción en lugar de generar horas de inicio o finalización únicas para cada espectador. Esto mejora el almacenamiento en caché en la CDN y evita posibles limitaciones.

*Para obtener información completa sobre la configuración y los parámetros de la visualización MediaPackage desplazada en el tiempo, consulte Visualización [desplazada en el tiempo con en la Guía del usuario](https://docs.aws.amazon.com/mediapackage/latest/ug/time-shifted.html). AWS Elemental MediaPackageAWS Elemental MediaPackage *

# MediaTailor parametrizar el comportamiento y la persistencia de la sesión
<a name="parameter-session-behavior"></a>

AWS Elemental MediaTailor procesa los parámetros al inicializar la sesión y los mantiene durante todo el ciclo de vida de la sesión. Comprender el comportamiento de las sesiones es crucial para implementar escenarios de parámetros dinámicos.

**Métodos de inicialización de sesiones**  
MediaTailor admite varios métodos para la inicialización de sesiones con parámetros:

1. **Inicialización de sesión implícita:** parámetros incluidos en la solicitud de manifiesto inicial

   ```
   GET /v1/master/123456789/originId/index.m3u8?manifest.auth_token=abc123&start=2024-08-26T10:00:00Z
   ```

1. **Inicialización explícita de la sesión (POST):** parámetros proporcionados en el cuerpo de la solicitud

   ```
   POST /v1/session/123456789/originId/index.m3u8
   {
       "adsParams": {"param1": "value1"},
       "manifestParams": {"auth_token": "abc123"}
   }
   ```

1. **Inicialización de sesión explícita (GET):** parámetros proporcionados como parámetros de consulta

   ```
   GET /v1/session/123456789/originId/index.m3u8?ads.param1=value1&manifestParams.auth_token=abc123
   ```

**Persistencia e inmutabilidad de los parámetros**  
MediaTailor el comportamiento de los parámetros sigue estas reglas:
+ **Especificación única:** los parámetros solo se pueden especificar una vez, al inicializar la sesión
+ **Persistencia en toda la sesión:** los parámetros se mantienen durante toda la sesión
+ **Inmutable tras la inicialización:** los parámetros no se pueden modificar una vez creada la sesión
+ **Resolución de alias de configuración:** los alias se resuelven en valores reales antes de reenviarlos a los destinos

**Escenarios de modificación de parámetros**  
Para modificar los parámetros durante la reproducción:
+ **Crear una nueva sesión:** inicialice una nueva sesión con los valores de los parámetros actualizados
+ **Transición del jugador:** realiza una transición fluida del jugador a la nueva sesión
+ **Herencia de parámetros:** mantenga los parámetros sin cambios para mantener la coherencia

**Example Modificación de los parámetros de cambio horario**  
Para cambiar de un período de 1 hora a uno de 2 horas:  

1. Sesión actual: `start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z`

1. Crear nueva sesión: `start=2024-08-26T10:00:00Z&end=2024-08-26T12:00:00Z`

1. Cambia el reproductor a la nueva URL de sesión

**importante**  
Las solicitudes múltiples de listas de reproducción multivariantes para una sola sesión no actualizan los parámetros después de la primera solicitud. Los parámetros permanecen inmutables durante la sesión.

# MediaTailor referencia y limitaciones de los parámetros
<a name="parameter-comprehensive-reference"></a>

Antes de configurar las variables de anuncios dinámicos, comprenda los requisitos y limitaciones de formato de los parámetros que se aplican a todas MediaTailor las configuraciones.

AWS Elemental MediaTailor proporciona información completa sobre las restricciones de caracteres de los parámetros, las limitaciones de longitud y los formatos admitidos tanto para los parámetros de consulta del manifiesto como para los parámetros de ADS. 

## Restricciones de caracteres del parámetro de consulta del manifiesto
<a name="manifest-parameter-character-restrictions"></a>

Los parámetros de consulta del manifiesto admiten caracteres específicos y tienen limitaciones de longitud definidas. 

**Caracteres admitidos (sin codificación de URL)**  
Puedes usar los siguientes caracteres directamente en los parámetros de consulta del manifiesto: 
+ Caracteres alfanuméricos (A-Z, a-z, 0-9)
+ Períodos (.)
+ Guiones (-)
+ Guiones bajos (\$1)
+ Barras invertidas (\$1)

**Caracteres compatibles con codificación URL**  
Cuando se codifica en URL, se admiten los siguientes caracteres especiales: 
+ punto (.) = %2E
+ guión (-) = %2D
+ guión bajo (\$1) = %5F
+ porcentaje (%) = %25
+ tilde (\$1) = %7E
+ barra inclinada (/) = %2F
+ asterisco (\$1) = %2A
+ es igual a (=) = %3D
+ pregunta (?) = %3F

**Soporte de codificación de URL**  
MediaTailor admite el signo de porcentaje (%) cuando se utiliza en la codificación de direcciones URL (por ejemplo, hello%20world = hello world). Puede utilizar cualquier carácter codificado en una URL, siempre que sean codificaciones de URL válidas de acuerdo con la especificación HTTP. 

**Caracteres no admitidos**  
No puedes usar los siguientes caracteres en los parámetros de consulta del manifiesto sin codificar la URL:`:`,,, `?` `&` `=``%`, `/` (barra inclinada). 

**importante**  
MediaTailor no admite caracteres dobles como%%% o ==. No se pueden utilizar valores de parámetros de consulta completos URLs como manifiesto debido a las restricciones de caracteres. 

**Limitaciones de longitud**  
La longitud total de todos los parámetros de consulta del manifiesto (claves y valores combinados) no debe superar los 2000 caracteres. 

## Limitaciones de longitud de los parámetros ADS
<a name="ads-parameter-limitations"></a>

Las siguientes limitaciones de longitud se aplican a los parámetros utilizados en las solicitudes al ADS: 
+ **Nombre del parámetro ADS**: máximo 10 000 caracteres
+ **Valor del parámetro ADS**: 25 000 caracteres como máximo
+ **URL de ADS**: 25 000 caracteres como máximo

# MediaTailor guía de solución de problemas de parámetros
<a name="parameter-troubleshooting"></a>

AWS Elemental MediaTailor proporciona orientación para solucionar problemas comunes relacionados con los parámetros MediaTailor, como las restricciones de caracteres, los problemas de codificación de URL y los errores de alias de configuración. 

## Errores de restricción de caracteres
<a name="parameter-character-restriction-errors"></a>

Los valores de los parámetros que contienen caracteres no admitidos pueden provocar errores o un comportamiento inesperado. 

**Síntomas frecuentes**  
Los siguientes síntomas pueden indicar problemas de restricción de caracteres: 
+ Los parámetros no aparecen en el manifiesto URLs
+ Errores de HTTP 400 durante la inicialización de la sesión
+ Valores de parámetros truncados o dañados
+ Las solicitudes de ADS fallan debido a un formato incorrecto URLs

**Pasos de resolución**  
Para resolver errores de restricción de caracteres: 

1. Revise los valores de los parámetros de los caracteres no admitidos: `:``?`,`&`,,`=`, `%` `/`

1. Aplique la codificación URL adecuada a los caracteres especiales (consulte) [MediaTailor referencia y limitaciones de los parámetros](parameter-comprehensive-reference.md)

1. Evite los caracteres dobles como o `%%%` `==`

1. Considere la posibilidad de utilizar formatos de parámetros alternativos si URLs no se puede utilizar el formato completo

**Example Ejemplo de codificación de URL**  
En lugar de usar:   

```
manifest.redirect_url=https://example.com/path?param=value
```
Utilice un formato codificado en URL:   

```
manifest.redirect_url=https%3A%2F%2Fexample.com%2Fpath%3Fparam%3Dvalue
```

## Errores de limitación de longitud
<a name="parameter-length-limitation-errors"></a>

Los parámetros que superan los límites de longitud pueden truncarse o provocar errores. 

**Límites de longitud**  
Se aplican los siguientes límites de longitud (consulte [MediaTailor referencia y limitaciones de los parámetros](parameter-comprehensive-reference.md) para obtener detalles completos):
+ Parámetros de consulta del manifiesto (total): 2000 caracteres
+ Nombres de parámetros de ADS: 10 000 caracteres
+ Valores de los parámetros ADS: 25 000 caracteres
+ ADS URLs: 25 000 caracteres

**Estrategias de resolución**  
Para gestionar las limitaciones de longitud: 

1. Utilice nombres y valores de parámetros más cortos siempre que sea posible

1. Divida los valores de los parámetros grandes en varios parámetros más pequeños

1. Utilice los alias de configuración para asignar los alias cortos a valores más largos (consulte) [MediaTailor descripción general de los alias de configuración](configuration-aliases-overview.md)

1. Considere la posibilidad de utilizar almacenamiento externo para datos de gran tamaño con referencias de parámetros

## Errores de alias de configuración
<a name="parameter-configuration-alias-errors"></a>

Los problemas con los alias de configuración pueden provocar errores HTTP 400 o valores de parámetros inesperados. 

**Errores comunes de alias de configuración**  
Los siguientes errores suelen producirse con los alias de configuración: 
+ Error HTTP 400: falta un valor de alias o no es válido
+ Las variables de dominio no se resuelven correctamente
+ Los parámetros del reproductor no se sustituyen por valores de alias

**Lista de verificación de resolución**  
Para resolver los errores de alias de configuración: 

1. Compruebe que todas las variables de dominio estén definidas como `ConfigurationAliases`

1. Asegúrese de que las variables de los parámetros del reproductor usen el `player_params.` prefijo

1. Confirme que la lista de valores con alias sea exhaustiva para las variables de dominio en estado crítico URLs (`VideoContentSourceUrl`,,`AdSegmentUrlPrefix`) `ContentSegmentUrlPrefix`

1. Compruebe que las solicitudes de inicialización de sesión especifican valores de alias válidos

1. Valide la estructura JSON del parámetro ConfigurationAliases 

Para obtener una guía detallada de solución de problemas, consulte[MediaTailor guía de solución de problemas de alias de configuración](configuration-aliases-troubleshooting.md).

**Example Validación del alias de configuración**  
Asegúrese de que la configuración incluya todos los alias necesarios:   

```
"ConfigurationAliases": {
    "player_params.origin_domain": {
        "pdx": "abc.mediapackage.us-west-2.amazonaws.com",
        "iad": "xyz.mediapackage.us-east-1.amazonaws.com"
        // Must include all possible values used in session initialization
    }
}
```

## Problemas con el flujo de procesamiento de parámetros
<a name="parameter-processing-flow-issues"></a>

Comprender el flujo de procesamiento de parámetros ayuda a solucionar problemas relacionados con el reenvío y la transformación de los parámetros. 

**Orden de procesamiento de los parámetros**  
MediaTailor procesa los parámetros en el siguiente orden: 

1. Validación de los parámetros de inicialización de la sesión

1. Resolución de alias de configuración (si corresponde)

1. Filtrado de parámetros (ADS frente a origen frente a manifiesto)

1. Codificación y formato de URL

1. Aplicación de parámetros a URLs

**Depuración del flujo de parámetros**  
Para depurar problemas de procesamiento de parámetros: 

1. Compruebe que los parámetros estén correctamente especificados en la inicialización de la sesión

1. Compruebe que los alias de configuración se resuelven según los valores esperados

1. Confirme que los parámetros aparecen correctamente URLs (manifiesto, ADS, origen)

1. Valide que la codificación de la URL se haya aplicado correctamente

**Example Ejemplo de flujo de parámetros**  
Inicialización de sesión:   

```
POST master.m3u8
{
    "playerParams": {"origin_domain": "pdx"},
    "manifestParams": {"test": "123"}
}
```
Tras la resolución y el procesamiento del alias:   
+ Solicitud de origen: `https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd`
+ URL del manifiesto: `/v1/master/.../index.m3u8?aws.sessionId=session&test=123`

## Consideraciones y prácticas recomendadas de seguridad
<a name="parameter-security-considerations-troubleshooting"></a>

MediaTailor implementa medidas de seguridad para el manejo de parámetros a fin de evitar problemas de seguridad comunes. 

**Medidas de seguridad**  
MediaTailor implementa las siguientes medidas de seguridad: 

1. Limitaciones de tamaño de entrada para evitar que la base de datos se sobrecargue

1. Codificación y desinfección adecuadas de las entradas de los usuarios

1. Codificación URL de la entrada para evitar que la respuesta se dañe

**Prácticas recomendadas**  
Siga estas prácticas recomendadas para una gestión segura de los parámetros: 
+ Valide los valores de los parámetros en el lado del cliente antes de enviarlos
+ Utilice alias de configuración para limitar los posibles valores de los parámetros
+ Evite incluir información confidencial en los parámetros
+ Supervise el uso de los parámetros para detectar patrones inusuales
+ Mantenga los valores de los parámetros dentro de los límites de longitud recomendados

# MediaTailor guía de solución de problemas de alias de configuración
<a name="configuration-aliases-troubleshooting"></a>

AWS Elemental MediaTailor proporciona una guía sistemática de solución de problemas relacionados con los alias de configuración y los escenarios de error más comunes. 

## Errores de validación del alias de configuración
<a name="configuration-alias-validation-errors"></a>

Cuando faltan alias de configuración o no son válidos, MediaTailor devuelve respuestas de error específicas para ayudar a identificar el problema. 

**Escenarios de error comunes**  
En la siguiente tabla se describen los errores de alias de configuración más comunes y sus pasos para resolverlos: 


| Error | Causa | Resolución | 
| --- | --- | --- | 
| HTTP 400: alias de parámetros de reproductor no válido | No se encontró el valor del parámetro del reproductor en ConfigurationAliases | Compruebe que el valor del parámetro del reproductor existe como clave en el ConfigurationAliases mapeo correspondiente | 
| HTTP 400: falta el alias de configuración obligatorio | Variable de dominio utilizada sin la ConfigurationAliases entrada correspondiente | Añada el parámetro de jugador que falta ConfigurationAliases a todas las asignaciones de alias necesarias | 
| HTTP 400: Falló la validación de la configuración | ConfigurationAliases la estructura está mal formada o incompleta | Valide la estructura JSON y asegúrese de que todas las variables de dominio tengan los alias correspondientes | 
| Sustitución de una cadena vacía en URLs | No se encontró el alias de una variable que no es de dominio | Añada el mapeo de alias que falte o proporcione un valor predeterminado en ConfigurationAliases | 

**Lista de comprobación de validación**  
Utilice la siguiente lista de comprobación para validar la configuración de los alias de configuración: 

1. **Cobertura de variables de dominio:** asegúrese de que todas las variables utilizadas en las partes del dominio URLs tengan las entradas correspondientes ConfigurationAliases 

1. **Integridad de los alias:** compruebe que todos los valores posibles de los parámetros del jugador estén incluidos como claves en las asignaciones de alias

1. **Estructura de JSON:** valida que el ConfigurationAliases JSON esté correctamente formateado y anidado

1. **Denominación de los parámetros:** confirme que todos los parámetros del reproductor utilizan el prefijo `player_params.`

1. **Coherencia de valores:** asegúrate de que los valores de alias sean válidos para el uso al que están destinados (nombres de perfilURLs, etc.)

## Depuración de la configuración y resolución de alias
<a name="configuration-alias-debugging"></a>

Siga este enfoque sistemático para depurar los problemas de resolución de los alias de configuración. 

**Step-by-step metodología de depuración**  
Siga los siguientes pasos para identificar y resolver los problemas de alias de configuración: 

**Procedimiento de depuración de los alias de configuración**

1. **Verifique la estructura de configuración:** confirme que la configuración de reproducción incluye el formato correcto ConfigurationAliases

   ```
   {
       "ConfigurationAliases": {
           "player_params.example_param": {
               "alias1": "value1",
               "alias2": "value2"
           }
       }
   }
   ```

1. **Compruebe el formato de los parámetros del reproductor:** asegúrese de que la inicialización de la sesión incluya los parámetros del reproductor correctamente formateados

   ```
   {
       "playerParams": {
           "example_param": "alias1"
       }
   }
   ```

1. **Validar el mapeo de alias:** confirme que el valor del parámetro del reproductor («alias1") existe como clave en el mapeo ConfigurationAliases 

1. **Pruebe con una configuración sencilla:** comience con una configuración mínima para aislar el problema

1. **Supervise las respuestas a los errores:** compruebe las respuestas MediaTailor de error para ver si hay mensajes de validación específicos

1. **Verificar resuelto URLs:** confirme que las resoluciones finales URLs son válidas y accesibles

## Prácticas recomendadas para los alias de configuración
<a name="configuration-alias-best-practices"></a>

Siga estas prácticas recomendadas para garantizar una implementación fiable de los alias de configuración. 

**Consideraciones de seguridad**  
Implemente las siguientes medidas de seguridad cuando utilice los alias de configuración: 
+ **Validación de entrada:** valida todos los valores de los parámetros del reproductor antes de usarlos en la resolución de alias
+ **Saneamiento de los valores de alias:** asegúrese de que los valores de alias contengan solo los caracteres y formatos esperados
+ **Restricciones de dominio:** limite los alias de dominio a dominios controlados y de confianza
+ **Control de acceso:** restrinja la modificación de la configuración únicamente al personal autorizado

**Optimización del rendimiento**  
Optimice el rendimiento de los alias de configuración con estas recomendaciones: 
+ **Minimice el recuento de alias:** utilice solo los alias necesarios para reducir la sobrecarga de procesamiento
+ **Nomenclatura eficiente:** utilice convenciones de nomenclatura claras y coherentes para los alias y los parámetros
+ **Valores predeterminados:** proporcione alias predeterminados razonables para los casos de uso más comunes
+ Almacenamiento en **caché de la configuración:** aproveche el almacenamiento en caché MediaTailor de la configuración para mejorar el rendimiento

**Mantenimiento y supervisión**  
Mantenga operaciones de alias de configuración confiables con estas prácticas: 
+ **Validación periódica:** valide periódicamente que todas las asignaciones de alias estén actualizadas y funcionen
+ **Supervisión de errores:** supervise los errores de HTTP 400 relacionados con alias faltantes o no válidos
+ **Documentación:** mantenga una documentación clara de todas las asignaciones de alias y sus propósitos
+ **Procedimientos de prueba:** Implemente pruebas exhaustivas para todas las combinaciones de alias

# MediaTailor parámetros de consulta de manifiesto
<a name="manifest-query-parameters"></a>

AWS Elemental MediaTailor gestiona los parámetros de consulta con distintos fines: los parámetros de consulta del manifiesto para el enrutamiento y la autorización de la CDN y otros parámetros de consulta que se pueden utilizar para funciones específicas del origen.

AWS Elemental MediaTailor conserva los parámetros de consulta desde el inicio de la sesión y los añade al manifiesto personalizado y a otros activos. URLs Utilice esta funcionalidad cuando tenga una red de entrega de contenido (CDN) entre el reproductor cliente MediaTailor y el reproductor.

Usa los parámetros de consulta del manifiesto cuando tu CDN necesite los parámetros de consulta para lo siguiente:
+ Enrutamiento dinámico a diferentes puntos finales MediaTailor 
+ Autorización de token

**Comportamiento del lado del cliente frente al de la CDN**  
MediaTailor agrega parámetros de consulta para los puntos finales de informes del lado del cliente, pero no los agrega para los segmentos de CDN. La funcionalidad actualizada proporciona un soporte más completo para los parámetros de consulta en varios MediaTailor activos, lo que mejora la flexibilidad en los casos de uso de enrutamiento y autorización de la CDN.

MediaTailor agrega parámetros de consulta para los puntos finales de informes del lado del cliente, pero no agrega los parámetros de consulta para los segmentos CloudFront (u otros segmentos de la CDN).

Para utilizar la conservación de parámetros, póngase en contacto con [AWS Support](https://aws.amazon.com/premiumsupport/) para solicitar que se habilite la transferencia de parámetros de consulta del manifiesto. 

El comportamiento varía entre HLS y DASH, y entre la inicialización de sesión explícita e implícita. En los temas siguientes se describe cómo configurar las solicitudes de inicialización de sesión para que MediaTailor pasen los parámetros al manifiesto:

# MediaTailor gestión de parámetros de consulta para los orígenes
<a name="origin-query-parameters"></a>

AWS Elemental MediaTailor gestiona los parámetros de consulta de forma diferente en función de su finalidad. Los parámetros de consulta del manifiesto (con el prefijo`manifest.`) se utilizan para el enrutamiento y la autorización de la CDN, mientras que otros parámetros de consulta se pueden utilizar para funciones específicas del origen.

**Visualización desplazada en el tiempo con MediaPackage**  
Si desea utilizar la función de visualización en diferido temporal MediaPackage, puede incluir `start` `end` parámetros en sus solicitudes. Estos parámetros definen ventanas de contenido específicas para la visualización inicial y posterior.

**Example solicitud de visualización desplazada en el tiempo**  
Incluye los parámetros de inicio y finalización en tu solicitud de manifiesto para verlos en turnos horarios:  

```
GET /v1/master/111122223333/originId/index.m3u8?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```

**Comportamiento de los parámetros durante las sesiones**  
Los parámetros de consulta se procesan en el momento de la inicialización de la sesión. Para la visualización con cambios en el tiempo u otras funciones específicas del origen:
+ **Inicialización de la sesión:** incluye los parámetros necesarios en la solicitud de manifiesto inicial
+ **Persistencia de los parámetros:** los parámetros se asocian a la sesión y se mantienen durante la reproducción
+ **Cambiar los parámetros:** para modificar las ventanas de cambio de hora u otros parámetros, cree una sesión nueva con los valores actualizados

**importante**  
El manejo específico de los parámetros de consulta depende de la configuración de origen y de los parámetros que admita el origen del contenido. Para MediaPackage la integración, asegúrese de que la CDN esté configurada para reenviar los parámetros de consulta necesarios, tal y como se describe en[Configure los parámetros de consulta esenciales](mediapackage-integration.md#mediapackage-query-strings).

# MediaTailor restricciones de caracteres de parámetros y codificación de URL
<a name="manifest-query-parameters-character-restrictions"></a>

AWS Elemental MediaTailor admite caracteres específicos en los parámetros de consulta del manifiesto. Puede utilizar la codificación URL para los caracteres especiales.

**Caracteres compatibles con codificación URL**  
La codificación de URL admite los siguientes caracteres especiales:
+ punto (.) = %2E
+ guión (-) = %2D
+ guión bajo (\$1) = %5F
+ porcentaje (%) = %25
+ tilde (\$1) = %7E
+ barra inclinada (/) = %2F
+ asterisco (\$1) = %2A
+ es igual a (=) = %3D
+ pregunta (?) = %3F

**Soporte de codificación de URL**  
MediaTailor admite el signo de porcentaje (%) cuando se utiliza en la codificación de direcciones URL (por ejemplo, hello%20world = hello world). Puede utilizar cualquier carácter codificado en una URL, siempre que sean codificaciones de URL válidas de acuerdo con la especificación HTTP.

**importante**  
MediaTailor no admite caracteres dobles como%%% o ==.

**Consideraciones de seguridad**  
MediaTailor implementa las siguientes medidas de seguridad para el manejo de parámetros:

1. Limitaciones de tamaño de entrada para evitar que la base de datos se sobrecargue

1. Codificación y desinfección adecuadas de las entradas de los usuarios

1. Codificación URL de la entrada para evitar que la respuesta se dañe

**Topics**
+ [Parámetros de consulta de origen](origin-query-parameters.md)
+ [MediaTailorrestricciones de caracteres](manifest-query-parameters-character-restrictions.md)
+ [MediaTailorSesiones implícitas de HLS](manifest-query-parameters-hls-implicit-session-initialization.md)
+ [MediaTailor Sesiones implícitas de DASH](manifest-query-parameters-dash-implicit-session-initialization.md)
+ [MediaTailor inicialización explícita de la sesión](manifest-query-parameters-hls-and-dash-explicit-session-initialization.md)
+ [MediaTailorcomportamiento específico del protocolo](manifest-query-parameters-protocol-differences.md)
+ [MediaTailor Integración de CDN](manifest-query-parameters-cdn-integration.md)

# MediaTailor Inicialización de sesión implícita en HLS
<a name="manifest-query-parameters-hls-implicit-session-initialization"></a>

AWS Elemental MediaTailor incluye los parámetros de consulta en los enlaces a los MediaTailor recursos cuando la solicitud incluye parámetros de consulta con la clave. `manifest.*` El siguiente ejemplo muestra este formato de solicitud:

```
GET /v1/master/111122223333/originId/index.m3u8?manifest.test=123&other=456
```

Los enlaces no incluyen el `manifest.` prefijo.

**Aplicación de parámetros en HLS**  
Para las sesiones implícitas de HLS, MediaTailor aplica los parámetros a las siguientes ubicaciones de la jerarquía del manifiesto:
+ Lista de reproducción multivariante URLs
+ Lista de reproducción multimedia URLs
+ Segmento de contenido URLs
+ Segmento de anuncios URLs
+ Inicialización de HLS URLs

**Example lista de reproducción multivariante**  
El siguiente ejemplo muestra cómo se MediaTailor incluyen los parámetros de consulta en la URL de la lista de reproducción multivariante:  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-MEDIA:LANGUAGE="eng",AUTOSELECT=YES,FORCED=NO,TYPE=SUBTITLES,URI="../../../manifest/111122223333/originId/session/1.m3u8?test=123",GROUP-ID="subtitles",DEFAULT=YES,NAME="caption_1"
#EXT-X-STREAM-INF:CODECS="avc1.640029,mp4a.40.2",AVERAGE-BANDWIDTH=2525657,RESOLUTION=960x540,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=2665212
../../../manifest/111122223333/originId/session/0.m3u8?test=123
```

**Example lista de reproducción multimedia**  
El siguiente ejemplo muestra cómo se MediaTailor incluyen los parámetros de consulta en URLs los segmentos de contenido:  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:28716269
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXTINF:6.006,
https://origin.com/contentSegment_1.ts?originQueryParam=foo&test=123
#EXT-X-DISCONTINUITY
#EXTINF:6.006,
../../../../segment/111122223333/originId/session/0/2?test=123
```

# MediaTailor Inicialización de sesión implícita de DASH
<a name="manifest-query-parameters-dash-implicit-session-initialization"></a>

AWS Elemental MediaTailor crea una sesión para el cliente y la redirige con parámetros de consulta cuando el cliente realiza una solicitud de manifiesto sin una sesión. El siguiente ejemplo muestra este formato de solicitud:

```
GET /v1/dash/111122223333/originId/index.mpd?manifest.test=123&other=456
```

MediaTailor crea una sesión para el cliente y la redirige con los parámetros de consulta:

```
/v1/dash/111122223333/originId/index.mpd?sessionId=session&test=123
```

**Aplicación de parámetros en DASH**  
La respuesta al manifiesto de DASH incluye los parámetros de consulta en varios lugares, incluidos los segmentos de contenido, los segmentos de anuncios y la inicialización URLs. MediaTailor aplica parámetros a lo siguiente:
+ Elementos de ubicación del manifiesto DASH
+ SegmentTemplate atributos de inicialización
+ SegmentTemplate atributos multimedia
+ segmento de contenido URLs
+ Segmento de anuncios URLs

Cuando el cliente hace la solicitud, MediaTailor responde con un manifiesto de DASH similar al siguiente ejemplo. El primer período es un período de contenido, por lo que MediaTailor no inserta el parámetro de consulta del manifiesto en él. En el segundo período, que es un período publicitario, MediaTailor inserta el parámetro de consulta del manifiesto en el `initialization` atributo y `media` el atributo del `SegmentTemplate` elemento. El `Location` elemento también tiene los parámetros de consulta del manifiesto.

```
<?xml version="1.0" encoding="UTF-8"?>
<MPD availabilityStartTime="2018-07-27T09:48:23.634000+00:00" id="201" minBufferTime="PT30S" minimumUpdatePeriod="PT15S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-02-14T23:37:43" suggestedPresentationDelay="PT25.000S" timeShiftBufferDepth="PT56.997S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
    <BaseURL>https://origin.com/contentSegments/</BaseURL>
    <Location>https://mediatailor.com/v1/dash/111122223333/originId/index.mpd?test=123&aws.sessionId=session</Location>
    <Period duration="PT29.963S" id="28737823" start="PT143732873.178S">
        <AdaptationSet bitstreamSwitching="true" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <Representation bandwidth="2200000" codecs="avc1.640029" frameRate="30000/1001" height="540" id="1" width="960">
                <SegmentTemplate initialization="index_video_7_0_init.mp4?m=1611174111" media="index_video_7_0_$Number$.mp4?m=1611174111" presentationTimeOffset="4311986195351" startNumber="28737828" timescale="30000">
                    <SegmentTimeline>
                        <S d="180180" t="4311986911066"/>
                        <S d="3003" t="4311987091246"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="28737829_1" start="PT39925H48M23.141S">
        <BaseURL>https://mediatailor.com/v1/dashsegment/111122223333/originId/session/28737829/28737829_1/</BaseURL>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="2200000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_2_0init.mp4?test=123" media="asset_540_2_0_$Number%09d$.mp4?test=123" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="87087" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
    </Period>
</MPD>
```

# MediaTailor Inicialización explícita de sesiones de HLS y DASH
<a name="manifest-query-parameters-hls-and-dash-explicit-session-initialization"></a>

AWS Elemental MediaTailor incluye los parámetros de consulta `manifestParams` as en la lista de reproducción multivariante y el seguimiento URLs en la respuesta cuando el cliente realiza una solicitud explícita de inicialización de sesión.

**Métodos de inicialización de la sesión**  
Para la inicialización explícita de la sesión, puedes usar POST con el cuerpo de la solicitud o GET con los parámetros de consulta:

1. **POST con cuerpo de solicitud:**

   ```
   POST /v1/session/111122223333/originId/index.m3u8
   {
       "adsParams": {"param1": "value1", "param2": "value2", "param3": "value3"},
       "manifestParams": {"test": "123"}
   }
   ```

1. **GET con parámetros de consulta:**

   ```
   GET /v1/session/111122223333/originId/index.m3u8?ads.param1=value1&ads.param2=value2&manifestParams.test=123
   ```

**Example solicitud de inicialización de sesión**  

```
POST /v1/session/111122223333/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1",
        "param2": "value2",
        "param3": "value3"
    },
    "manifestParams": { 
        "test": "123"
    },
    "reportingMode": "client"
}
```

**Example respuesta manifiesta y de seguimiento**  

```
{
    "manifestUrl": "/v1/master/111122223333/originId/index.m3u8?aws.sessionId=session&test=123",
    "trackingUrl": "/v1/tracking/111122223333/originId/session?test=123"
}
```

Las respuestas manifiestas de la sesión tienen características específicas MediaTailor URLs similares a las `manifestParams` de los flujos de trabajo de inicialización de sesión implícitos descritos anteriormente. La diferencia clave es que los parámetros del manifiesto para la inicialización explícita de la sesión no comienzan por. `manifest.`

Los parámetros de consulta del manifiesto son inmutables y solo puedes configurarlos al inicializar la sesión. Si un cliente realiza varias solicitudes de listas de reproducción multivariantes para una sola sesión, MediaTailor no actualiza los parámetros de la consulta del manifiesto después de la primera solicitud.

**Flujo de procesamiento de parámetros**  
Solo puede especificar los parámetros una vez, en el momento de la inicialización. Los alias de configuración se resuelven con los valores reales antes de reenviarlos. Por ejemplo: se `player_params.ad_type=customized` resuelve `ad_type=abc12345` en función de la ConfigurationAliases configuración.

# MediaTailor comportamiento de los parámetros específicos del protocolo
<a name="manifest-query-parameters-protocol-differences"></a>

AWS Elemental MediaTailor gestiona los parámetros de consulta del manifiesto de forma diferente para los protocolos HLS y DASH. Cada tipo de protocolo tiene ubicaciones de aplicación y métodos de procesamiento específicos.

**Comparación del manejo de parámetros entre HLS y DASH**  
En la siguiente tabla, se compara la forma en que se MediaTailor gestionan los parámetros de las consultas de manifiestos en los protocolos HLS y DASH:


| Aspecto | Comportamiento del HLS | Comportamiento DASH | 
| --- | --- | --- | 
| Aplicación de parámetros | Se aplica directamente al manifiesto URLs y al segmento URLs | Se aplica a los elementos, SegmentTemplate atributos y segmentos de ubicación URLs | 
| Jerarquía de manifiestos | Lista de reproducción multivariante → Listas de reproducción multimedia → Segmentos | MPD → Períodos → → Representaciones AdaptationSets  | 
| Inicialización URLs | Se aplica al inicio del HLS cuando está presente URLs  | Se aplica a los atributos de SegmentTemplate inicialización | 
| Gestión de sesiones | Los parámetros se conservan en todas las actualizaciones de la lista | Parámetros incluidos en el elemento de ubicación del MPD para la continuidad de la sesión | 
| Gestión de segmentos de anuncios | Se aplica al segmento de anuncios URLs en las listas de reproducción multimedia | Se aplica a los atributos SegmentTemplate multimedia del período publicitario | 

**Ubicaciones de aplicaciones de parámetros**  
MediaTailor aplica los parámetros de consulta del manifiesto a las siguientes ubicaciones:

## Aplicación de parámetros HLS
<a name="hls-parameter-application"></a>

En el caso de las transmisiones HLS, MediaTailor aplica los parámetros de consulta del manifiesto a:
+ Lista de **reproducción multivariante URLs:** los parámetros se añaden a las referencias de las listas de reproducción multimedia
+ **Lista de reproducción multimedia URLs:** los parámetros se incluyen en el segmento URLs de las listas de reproducción multimedia
+ **Segmento de contenido URLs:** todos los segmentos de contenido incluyen los parámetros de consulta del manifiesto
+ **Segmento de anuncios URLs:** los segmentos de anuncios reciben parámetros para el enrutamiento y la autorización de la CDN
+ **Inicialización de HLS URLs:** los segmentos de inicio incluyen parámetros cuando están presentes en la transmisión
+ **Segmento de Slate URLs:** el contenido de Slate incluye parámetros para un comportamiento coherente de la CDN

**Example Ejemplo de aplicación de parámetros HLS**  
Dada la inicialización de la sesión:  

```
GET /v1/master/123456789/originId/index.m3u8?manifest.auth_token=abc123&manifest.region=us-west
```
La lista de reproducción multivariante incluye parámetros en las referencias de las listas de reproducción multimedia:  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=2665212,RESOLUTION=960x540
../../../manifest/123456789/originId/session/0.m3u8?auth_token=abc123&region=us-west
```
La lista de reproducción multimedia incluye parámetros en el segmento: URLs  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXTINF:6.006,
https://origin.com/segment1.ts?auth_token=abc123&region=us-west
#EXTINF:6.006,
../../../../segment/123456789/originId/session/0/2?auth_token=abc123&region=us-west
```

## Aplicación de parámetros DASH
<a name="dash-parameter-application"></a>

En el caso de las transmisiones de DASH, MediaTailor aplica los parámetros de consulta del manifiesto a:
+ **Elementos de ubicación del MPD:** el elemento de ubicación incluye parámetros para las solicitudes de actualización del manifiesto
+ **SegmentTemplate atributos de inicialización:** el segmento de inicio incluye parámetros URLs 
+ **SegmentTemplate atributos multimedia:** las plantillas de URL de los segmentos multimedia incluyen parámetros
+ **Segmento de contenido URLs:** todos los segmentos de contenido generados a partir de plantillas incluyen parámetros
+ **Segmento de anuncios URLs:** los segmentos del período de anuncio incluyen parámetros para la integración de la CDN
+ Redireccionamientos **de informes del lado del servidor: 302 redireccionamientos** a segmentos de anuncios conservan los parámetros

**Example Ejemplo de aplicación de parámetros DASH**  
Dada la inicialización de la sesión:  

```
GET /v1/dash/123456789/originId/index.mpd?manifest.auth_token=abc123&manifest.region=us-west
```
El manifiesto de DASH incluye parámetros en varias ubicaciones:  

```
<MPD>
    <Location>https://mediatailor.com/v1/dash/123456789/originId/index.mpd?auth_token=abc123&region=us-west&aws.sessionId=session</Location>
    <Period>
        <AdaptationSet>
            <Representation>
                <SegmentTemplate 
                    initialization="init.mp4?auth_token=abc123&region=us-west" 
                    media="segment_$Number$.mp4?auth_token=abc123&region=us-west"/>
            </Representation>
        </AdaptationSet>
    </Period>
</MPD>
```

# MediaTailor Integración de CDN y enrutamiento de parámetros
<a name="manifest-query-parameters-cdn-integration"></a>

AWS Elemental MediaTailor los parámetros de consulta manifiesta permiten escenarios sofisticados de integración de CDN. Puede utilizarlos para el enrutamiento dinámico, la autorización y el equilibrio de carga.

**Casos de uso del enrutamiento de CDN**  
Entre los escenarios de integración de CDN más comunes que se benefician de los parámetros de consulta de manifiestos se incluyen los siguientes:
+ **Enrutamiento geográfico: dirija** las solicitudes a MediaTailor puntos finales específicos de la región en función de la ubicación del espectador
+ **Autorización basada en tokens: pasa los tokens de autorización** a través de la CDN para acceder de forma segura al contenido MediaTailor 
+ **Equilibrio de carga:** distribuya el tráfico entre varios MediaTailor puntos finales mediante la lógica de enrutamiento de la CDN
+ **Pruebas A/B: dirija** diferentes segmentos de usuarios a diferentes configuraciones para realizar las pruebas MediaTailor 
+ **Optimización específica del dispositivo: direccione** las solicitudes en función del tipo o las capacidades del dispositivo

**Preservación de parámetros en todas las capas de CDN**  
MediaTailor garantiza que los parámetros de consulta del manifiesto se conserven en varios tipos de solicitudes y capas de CDN:

1. **Solicitud inicial:** los parámetros se extraen de la solicitud de inicialización de la sesión

1. **Generación del manifiesto:** los parámetros se aplican a todos los elementos relevantes URLs del manifiesto

1. **Solicitudes de segmentos:** los parámetros se incluyen en todos los segmentos URLs para garantizar un comportamiento coherente de la CDN

1. **Inserción de anuncios:** los parámetros se conservan durante la inserción del anuncio y el reemplazo de segmentos

**Example Flujo de autorización de CDN**  
En el siguiente ejemplo, se muestra un flujo de autorización de CDN completo mediante parámetros de consulta de manifiesto:  

1. El cliente solicita el manifiesto con un token de autorización:

   ```
   GET https://cdn.example.com/mediatailor/v1/master/123456789/originId/index.m3u8?manifest.auth_token=jwt_token_here&manifest.user_id=12345
   ```

1. La CDN reenvía la solicitud a MediaTailor con los siguientes parámetros:

   ```
   GET https://mediatailor.amazonaws.com/v1/master/123456789/originId/index.m3u8?manifest.auth_token=jwt_token_here&manifest.user_id=12345
   ```

1. MediaTailor genera un manifiesto con los parámetros aplicados a todos: URLs

   ```
   #EXTM3U
   #EXT-X-STREAM-INF:BANDWIDTH=2665212
   ../../../manifest/123456789/originId/session/0.m3u8?auth_token=jwt_token_here&user_id=12345
   ```

1. Las solicitudes de segmento posteriores incluyen parámetros para la autorización de la CDN:

   ```
   GET https://cdn.example.com/mediatailor/segment/123456789/originId/session/0/1?auth_token=jwt_token_here&user_id=12345
   ```

# Elaboración de informes y datos de seguimiento
<a name="ad-reporting"></a>

MediaTailor ofrece dos opciones para hacer un seguimiento de la cantidad de anuncios que ha visto un espectador y generar informes al respecto. En el enfoque de generación de informes de anuncios del lado del servidor, se hace un MediaTailor seguimiento del anuncio y se envían balizas (señales de seguimiento) directamente al servidor de anuncios. Como alternativa, en el enfoque de seguimiento por parte del cliente, el reproductor cliente (el dispositivo del usuario) rastrea el anuncio y envía las balizas al servidor de anuncios. El tipo de informe publicitario utilizado en una sesión de reproducción depende de la solicitud específica que haga el reproductor para iniciar la sesión. MediaTailor

Para obtener información sobre cómo transferir los datos de la sesión y del reproductor al servidor de anuncios mediante variables dinámicas, consulte[MediaTailor variables de anuncios dinámicos para solicitudes de ADS](variables.md). Para obtener más información sobre los parámetros de inicialización de la sesión, consulte[MediaTailor parámetros de consulta de manifiesto](manifest-query-parameters.md).

**Topics**
+ [MediaTailor seguimiento e informes de anuncios del lado del servidor](ad-reporting-server-side.md)
+ [Seguimiento de anuncios del lado del cliente](ad-reporting-client-side.md)

# MediaTailor seguimiento e informes de anuncios del lado del servidor
<a name="ad-reporting-server-side"></a>

AWS Elemental MediaTailor utiliza de forma predeterminada los informes del lado del servidor para realizar un seguimiento y una medición exhaustivos de los anuncios. Con los informes del lado del servidor, cuando el reproductor solicita una URL de anuncios del manifiesto, el servicio informa sobre el consumo de anuncios directamente a la URL de seguimiento de anuncios. Una vez que el reproductor haya iniciado una sesión de reproducción MediaTailor, no será necesaria ninguna otra intervención por tu parte ni por parte del reproductor para realizar los informes desde el servidor. A medida que se reproduce cada anuncio, MediaTailor envía balizas al servidor de anuncios para indicar qué parte del anuncio se ha visto. MediaTailor envía balizas para indicar el inicio del anuncio y su progresión en cuartiles: el primer cuartil, el punto medio, el tercer cuartil y la finalización del anuncio.

**Para realizar informes de anuncios del lado del servidor**
+ Desde el reproductor, inicia una nueva sesión de MediaTailor reproducción mediante una solicitud en uno de los siguientes formatos, según tu protocolo:
  + Ejemplo: formato HLS

    ```
    GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?ads.<key-value-pairs-for-ads>&<key-value-pairs-for-origin-server>
    ```
  + Ejemplo: formato DASH

    ```
    GET <mediatailorURL>/v1/dash/<hashed-account-id>/<origin-id>/<asset-id>?ads.<key-value-pairs-for-ads>&<key-value-pairs-for-origin-server>
    ```

  Los pares clave-valor son los parámetros de destino dinámicos para el seguimiento de anuncios. Para obtener información sobre cómo añadir parámetros a la solicitud, consulte [MediaTailor variables de anuncios dinámicos para solicitudes de ADS](variables.md).

AWS Elemental MediaTailor responde a la solicitud con la URL del manifiesto. El manifiesto contiene URLs cuatro manifiestos multimedia. Los manifiestos multimedia contienen enlaces integrados para las solicitudes de segmentos de anuncios.

**nota**  
Cuando MediaTailor encuentra una barra doble (//) en una URL de seguimiento, la barra se reduce a una (/).

Cuando el reproductor solicita la reproducción desde la URL (`/v1/segment`ruta) de un segmento de anuncios, AWS Elemental MediaTailor envía la baliza correspondiente al servidor de anuncios a través del seguimiento del anuncio. URLs Al mismo tiempo, el servicio emite una redirección al segmento de anuncios `*.ts` real. El segmento de anuncios se encuentra en la CloudFront distribución de Amazon, donde se MediaTailor almacenan los anuncios transcodificados, o en la red de entrega de contenido (CDN), donde se ha almacenado el anuncio en caché. 

En las siguientes secciones se proporciona más información sobre cómo trabajar con el seguimiento de anuncios desde el lado del servidor. MediaTailor

**Topics**
+ [Seguimiento SGAI del lado del servidor](ad-reporting-server-side-sgai.md)
+ [Glosario de balizas](ad-reporting-server-side-beacon-glossary.md)
+ [Comportamiento de temporización y almacenamiento en caché](ad-reporting-server-side-timing-behavior.md)
+ [Funciones de seguimiento](ad-reporting-server-side-features.md)

# Seguimiento del lado del servidor con inserción de anuncios guiada por el servidor (SGAI)
<a name="ad-reporting-server-side-sgai"></a>

*Cuando utilizas la inserción de anuncios guiada por el servidor (SGAI), el seguimiento por parte del servidor utiliza un mecanismo de baliza sin sesión que difiere del enfoque basado en el modo cosido descrito anteriormente.* En lugar de incluir segmentos de MediaTailor anuncios en el manifiesto de contenido (donde realiza un seguimiento de las `/v1/segment` solicitudes), SGAI devuelve las referencias a los anuncios como listas de reproducción independientes en una respuesta a la lista de activos, con los metadatos de las balizas integrados en el anuncio. URIs

## Cómo funciona la baliza del lado del servidor sin sesión
<a name="ad-reporting-server-side-sgai-how-it-works"></a>

Los siguientes pasos describen cómo funciona la baliza del lado del servidor para las sesiones de SGAI:

1. **Inicialización de la sesión**: el reproductor solicita la lista de reproducción multivariante HLS con. `aws.insertionMode=GUIDED` Los informes del lado del servidor son los predeterminados (no se necesita ningún parámetro). `aws.reportingMode` *A diferencia del modo cosido, la respuesta de inicialización de la sesión no incluye un.* `trackingUrl`

1. Manifiesto que **se puede almacenar en caché: MediaTailor devuelve un manifiesto** que se puede almacenar en caché y que contiene `EXT-X-DATERANGE` etiquetas `CLASS="com.apple.hls.interstitial"` y `X-ASSET-LIST` atributos que apuntan al punto final de la lista de activos intersticiales. MediaTailor

1. **Lista de activos con metadatos de balizas**: cuando el jugador encuentra una pausa publicitaria, busca la lista de activos. MediaTailordevuelve una respuesta en JSON en la que cada URI de anuncio incluye metadatos de balizas cifrados:

   ```
   {
     "ASSETS": [
       {
         "DURATION": 30.0,
         "URI": "https://cdn.example.com/ad/master.m3u8?awsBeaconData=<encrypted>&awsBeaconDomain=<MediaTailor-endpoint>&awsConfigurationName=<config-name>"
       }
     ]
   }
   ```

   Cuando los informes del lado del servidor están activos, la respuesta *no incluye ninguna* sección. `TRACKING` El anuncio contiene todos los URIs datos de las balizas.

1. **Sustitución de variables HLS**: el reproductor busca la lista de reproducción multivariante del anuncio. El manifiesto publicitario utiliza `#EXT-X-DEFINE:QUERYPARAM` directivas para pasar los parámetros de baliza de la cadena de consulta URI al segmento URLs mediante la sustitución de variables HLS:

   ```
   #EXTM3U
   #EXT-X-DEFINE:QUERYPARAM="awsBeaconData"
   #EXT-X-DEFINE:QUERYPARAM="awsBeaconDomain"
   #EXT-X-DEFINE:QUERYPARAM="awsConfigurationName"
   #EXTINF:5.0,
   {$awsBeaconDomain}/segment/hash/{$awsConfigurationName}/{$awsBeaconData}/0/0?aws.segmentRelativePath=asset_00001.ts
   ```

   El reproductor resuelve las `{$awsConfigurationName}` variables y `{$awsBeaconData}``{$awsBeaconDomain}`, utilizando los valores de la cadena de consulta del URI del manifiesto publicitario y, a continuación, solicita cada segmento de anuncio a través MediaTailor de él.

1. La **baliza se activa cuando se solicita un segmento** de anuncio: a medida que el jugador solicita cada segmento de anuncio, se envía la solicitud MediaTailor. El servicio descifra los datos de la baliza, determina la posición del segmento dentro del anuncio (impresión, primer cuartil, punto medio, tercer cuartil o completo) y envía la baliza de seguimiento VAST adecuada al servidor de anuncios. MediaTailor a continuación, redirige al reproductor al segmento de contenido publicitario real.

## Requisitos del reproductor para la baliza SGAI del lado del servidor
<a name="ad-reporting-server-side-sgai-requirements"></a>

Para utilizar la baliza del lado del servidor con SGAI, tu jugador debe cumplir los siguientes requisitos:
+ HLS versión 11 o posterior
+ Support for `EXT-X-DATERANGE` with `CLASS` attribute for HLS Interstitials
+ Support for `#EXT-X-DEFINE:QUERYPARAM` variable substitution (RFC 8216bis). El jugador debe decodificar porcentualmente los valores de los parámetros de consulta antes de sustituirlos en el segmento. URLs

**nota**  
Actualmente, la baliza SGAI del lado del servidor solo se admite para HLS. La baliza SGAI del lado del servidor aún no es compatible con DASH.

## Comparación con el seguimiento del lado del servidor en modo cosido
<a name="ad-reporting-server-side-sgai-comparison"></a>

En la siguiente tabla se resume en qué se diferencia el seguimiento del lado del servidor entre la inserción de anuncios unificada y la guiada por el servidor:


| Aspecto | Cosido (SSAI) | Guiado por servidor (SGAI) | 
| --- | --- | --- | 
| Capacidad de almacenamiento en caché manifiesta | Por sesión, no se puede almacenar en caché | Se puede almacenar en caché y se comparte entre los espectadores | 
| Enrutamiento de segmentos de anuncios | Mediante el /v1/segment/ uso del ID de sesión | Mediante /v1/segment/ el uso de un blob de datos de baliza cifrado | 
| Estado de sesión para balizas | Almacenado por sesión en MediaTailor | Sin sesión: todo el estado se incluye en el parámetro cifrado awsBeaconData | 
| URL de seguimiento al inicio de la sesión | Se devuelve en la respuesta de inicialización de la sesión | No se proporciona: los datos de la baliza se incluyen en el anuncio de cada URIs respuesta a la lista de activos | 
| Compatibilidad con DASH |  compatible | No se admite todavía | 

**nota**  
Para las sesiones de SGAI en directo, puedes habilitar la búsqueda previa de anuncios basada en manifiestos mediante. `aws.guidedPrefetchMode=MANIFEST` Esto es independiente de la API de captura previa basada en horarios que se utiliza en las sesiones agrupadas (SSAI). Para obtener más información, consulte [Búsqueda previa guiada con palpitaciones manifiestas](sgai-guided-prefetch.md).

# Glosario de balizas de seguimiento del lado del servidor
<a name="ad-reporting-server-side-beacon-glossary"></a>

MediaTailor El seguimiento del lado del servidor utiliza un conjunto estandarizado de balizas para informar del progreso de visualización de los anuncios a los servidores de anuncios y a los servicios de verificación. Estas balizas se ajustan a los estándares de la Oficina de Publicidad Interactiva (IAB) para la medición de los anuncios de vídeo y proporcionan informes precisos sobre las impresiones de los anuncios y las tasas de finalización.


**Tipos de balizas de seguimiento del lado del servidor**  

| Tipo de baliza | Cuando se dispara | Finalidad | Detalles de temporización | 
| --- | --- | --- | --- | 
| Impresión | Cuando el jugador solicita el primer segmento de anuncio | Indica que el contenido del anuncio ha empezado a cargarse y está a punto de mostrarse al espectador | Se activa cuando se /v1/segment solicita un anuncio por primera vez. Cumple con las directrices de la IAB, que exigen que el contenido de los anuncios comience a cargarse antes de contabilizar una impresión. Consulte [Flujo de trabajo de seguimiento del lado del servidor](ad-reporting-server-side-timing-behavior.md#ad-reporting-server-side-timing-behavior-workflow) la secuencia completa. | 
| Inicio | Cuando el reproductor comience a renderizar el contenido del anuncio | Confirma que la reproducción del anuncio se ha iniciado realmente | Normalmente, se activa simultáneamente con la baliza de impresión de la primera solicitud de segmento, pero representa el inicio real de la renderización del anuncio. Esta distinción es importante para los servicios de verificación que rastrean los eventos de impresión e inicio por separado. | 
| Primer cuartil | Cuando el jugador alcanza el 25% de la duración del anuncio | Mide la visualización continua del anuncio durante el primer trimestre del anuncio | Se activa cuando el jugador solicita el segmento que contiene el 25% de la duración del anuncio. Por ejemplo, en un anuncio de 20 segundos con segmentos de 2 segundos, normalmente se activa cuando se solicita el tercer segmento (aproximadamente entre 4 y 6 segundos después del anuncio). | 
| Punto medio | Cuando el jugador alcanza el 50% de la duración del anuncio | Mide la visualización continua del anuncio durante la mitad del anuncio | Se activa cuando el jugador solicita el segmento que contiene el 50% de la duración del anuncio. Por ejemplo, en un anuncio de 20 segundos con segmentos de 2 segundos, normalmente se activa cuando se solicita el quinto segmento (aproximadamente entre 8 y 10 segundos después del anuncio). | 
| Tercer cuartil | Cuando el jugador alcanza el 75% de la duración del anuncio | Mide la visualización continua del anuncio durante las tres cuartas partes del anuncio | Se activa cuando el jugador solicita el segmento que contiene el 75% de la duración del anuncio. Por ejemplo, en un anuncio de 20 segundos con segmentos de 2 segundos, normalmente se publicaría cuando se solicitara el octavo segmento (aproximadamente entre 14 y 16 segundos después del anuncio). | 
| Completado | Cuando el jugador llega al final del anuncio | Confirma que el anuncio completo se ha entregado al espectador | Se activa cuando el jugador solicita el segmento final del anuncio. Esto indica que es posible que el espectador haya visto todo el contenido del anuncio. Por ejemplo, en un anuncio de 20 segundos con segmentos de 2 segundos, suele aparecer cuando se solicita el décimo segmento (aproximadamente entre 18 y 20 segundos después del anuncio). | 

**nota**  
El momento exacto en que se activa la baliza depende de la duración del segmento y de la longitud del anuncio. MediaTailor calcula la solicitud de segmento adecuada que corresponde a cada posición del cuartil en función de la duración específica del anuncio y de la estructura del segmento.

# El tiempo de seguimiento del lado del servidor y el comportamiento del almacenamiento en caché
<a name="ad-reporting-server-side-timing-behavior"></a>

En los informes del lado del servidor, MediaTailor los eventos de seguimiento se activan en función de las solicitudes de segmento reales del jugador, no en función de las actividades de análisis o precarga de los manifiestos. Este enfoque garantiza un recuento preciso de las impresiones que se ajusta a los estándares del sector en materia de medición de anuncios de vídeo.

## Principios clave de cronometraje
<a name="ad-reporting-server-side-timing-behavior-principles"></a>

MediaTailor El seguimiento del lado del servidor sigue estos principios fundamentales de temporización:
+ **El seguimiento de los eventos se activa en función de las solicitudes de segmentos reales: las** balizas solo se envían cuando el reproductor realiza solicitudes HTTP `/v1/segment` URLs, no durante el análisis de los manifiestos o el almacenamiento en caché.
+ **El almacenamiento en caché y la precarga de los manifiestos no desencadenan eventos**: los jugadores pueden analizar, almacenar en caché o precargar la información del manifiesto sin generar ningún evento de seguimiento.
+ *La **búsqueda previa de segmentos desencadena eventos**: si los jugadores buscan previamente los segmentos de anuncios reales antes de reproducirlos, siguen el comportamiento estándar del sector, según el cual las solicitudes de segmentos constituyen impresiones válidas.*
+ **Cada solicitud /v1/segmento activa la baliza adecuada**: el evento de seguimiento específico (impresión, cuartil, finalización) viene determinado por la posición del anuncio y el segmento que se solicita.
+ Los **plazos se ajustan a los estándares de la IAB**: el enfoque sigue las directrices de la Interactive Advertising Bureau sobre la medición de los anuncios de vídeo y el recuento de impresiones.

## Flujo de trabajo de seguimiento del lado del servidor
<a name="ad-reporting-server-side-timing-behavior-workflow"></a>

Los siguientes diagramas ilustran todo el flujo de trabajo de seguimiento del lado del servidor y muestran cuándo se activan los eventos de seguimiento en relación con las solicitudes de los jugadores:

**Fase 1: inicialización de la sesión**  
El jugador solicita un manifiesto de MediaTailor, que devuelve un manifiesto personalizado que contiene un segmento URLs de anuncio:  

![\[La fase de inicialización de la sesión muestra al jugador que solicita un manifiesto MediaTailor y lo recibe personalizado con un segmento URLs de anuncio.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/ss-track-phase1.png)


**Fase 2: seguimiento de las solicitudes de anuncios y las impresiones**  
Cuando el reproductor solicita el primer segmento de anuncio, envía MediaTailor balizas de impresión e inicio tanto al servidor de decisiones publicitarias como a los servicios de verificación de anuncios:  

![\[La fase de seguimiento de las impresiones del anuncio muestra el MediaTailor envío de balizas de impresión y de inicio al servidor de decisiones publicitarias y a los servicios de verificación de anuncios cuando el jugador solicita el primer segmento de anuncio.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/ss-track-phase2.png)


**Fase 3: seguimiento por cuartiles**  
MediaTailor dispara balizas de cuartil (primer cuartil, punto medio, tercer cuartil, finalización) en función de las solicitudes de segmento posteriores:  

![\[La fase de seguimiento del cuartil muestra cómo se envían balizas de cuartil tanto MediaTailor al servidor de decisiones publicitarias como a los servicios de verificación de anuncios cuando el jugador solicita los siguientes segmentos de anuncios.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/ss-track-phase3.png)


**Fase 4: Entrega por segmentos**  
Tras activar las balizas de seguimiento, MediaTailor redirige al segmento de anuncio real desde Amazon CloudFront o tu CDN:  

![\[La fase de publicación de los segmentos muestra cómo MediaTailor se redirige al jugador al segmento de anuncio real desde la CDN tras activar las CloudFront balizas de seguimiento.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/ss-track-phase4.png)


El flujo de trabajo de seguimiento del lado del servidor incluye los siguientes comportamientos clave de sincronización:

1. **Inicialización de la sesión**: el jugador solicita un manifiesto a. MediaTailor MediaTailor devuelve un manifiesto personalizado que contiene un segmento de anuncio URLs con la `/v1/segment` ruta.

1. Análisis **y almacenamiento en caché del manifiesto**: el reproductor analiza el manifiesto y puede precargar o almacenar en caché la información de los segmentos. No **se activa ningún evento de seguimiento durante esta fase**, independientemente del comportamiento de almacenamiento en caché del jugador.

1. **Seguimiento de solicitudes y impresiones de segmentos de anuncios**: cuando el reproductor solicita realmente el primer segmento de anuncio (normalmente para su reproducción), MediaTailor activa la baliza de impresión y comienza a rastrear el evento tanto en el servidor de decisiones publicitarias como en los servicios de verificación de anuncios. Esto ocurre en la propia solicitud HTTP a la `/v1/segment` URL, no cuando se analiza el manifiesto.

1. **Seguimiento de cuartiles basado en solicitudes de segmentos**: MediaTailor envía balizas de cuartil (primer cuartil, punto medio, tercer cuartil, finalización) tanto al servidor de decisiones publicitarias como a los servicios de verificación de anuncios en función de las solicitudes de segmento posteriores que corresponden a las posiciones de los cuartiles calculadas dentro de la duración del anuncio.

1. **Entrega por segmentos**: tras activar la baliza de seguimiento adecuada, MediaTailor emite una redirección HTTP al segmento de anuncio real (ya sea desde Amazon CloudFront o desde tu CDN).

## Consideraciones sobre el almacenamiento en caché y la precarga del reproductor
<a name="ad-reporting-server-side-timing-behavior-caching-considerations"></a>

MediaTailor El seguimiento del lado del servidor está diseñado para ser compatible con diversas estrategias de almacenamiento en caché y precarga de los jugadores y, al mismo tiempo, mantener una medición precisa de las impresiones:
+ **Carga previa del manifiesto**: los jugadores que precargan o almacenan en caché la información del manifiesto no activan eventos de seguimiento. Los eventos de seguimiento solo se activan cuando se realizan solicitudes de segmento reales.
+ **Búsqueda previa de segmentos: si un reproductor recupera** previamente los segmentos de un anuncio antes de reproducirlos, los eventos de seguimiento se activarán cuando se soliciten esos segmentos, posiblemente antes del tiempo de reproducción real. Este comportamiento se ajusta a los estándares del sector, que consideran que las solicitudes de segmentos son impresiones válidas.
+ Almacenamiento en **búfer del reproductor**: el comportamiento estándar de almacenamiento en búfer del reproductor (solicitar segmentos ligeramente antes de la reproducción) activará el seguimiento de los eventos en el momento adecuado en función del patrón de solicitud de segmentos.

## Solución de problemas de seguimiento de discrepancias
<a name="ad-reporting-server-side-timing-behavior-troubleshooting"></a>

Si observas discrepancias entre el seguimiento MediaTailor del servidor y las métricas de terceros, ten en cuenta los siguientes factores:
+ **Diferencias en el comportamiento de los jugadores**: los distintos jugadores pueden tener diferentes estrategias de búsqueda previa y almacenamiento en búfer, lo que afecta a la hora de realizar solicitudes de segmentos.
+ **Condiciones de la red: las** malas condiciones de la red pueden provocar que los jugadores soliciten segmentos varias veces o en intervalos diferentes a los esperados.
+ **Configuración de la CDN**: el almacenamiento incorrecto de las `/v1/segment` solicitudes en la CDN puede provocar que los eventos de seguimiento se pierdan o se dupliquen.
+ **Administración de sesiones**: asegúrese de que cada sesión de reproducción utilice un identificador de sesión único para evitar conflictos de eventos de seguimiento.

Para obtener una guía detallada de solución de problemas, consulte[Solución de problemas comunes de](monitoring-and-troubleshooting.md#troubleshooting-common-issues).

# MediaTailor funciones y capacidades de seguimiento del lado del servidor
<a name="ad-reporting-server-side-features"></a>

AWS Elemental MediaTailor aplica automáticamente estas funciones de seguimiento integradas del lado del servidor para optimizar la precisión y la fiabilidad de la medición de anuncios. El sistema evita la duplicación de balizas, gestiona el tráfico durante los períodos de gran volumen, mantiene una secuencia de eventos adecuada y proporciona una supervisión integral del rendimiento sin que tengas que realizar ninguna configuración por tu parte. Solo tienes que asegurarte de que tu servidor de decisiones publicitarias (ADS) proporcione las balizas de seguimiento en la respuesta de VAST.

**nota**  
Estas funciones estarán disponibles para los nuevos clientes a partir del 30 de septiembre de 2025. Los clientes actuales tendrán acceso a él a lo largo de 2025 como parte de las mejoras continuas del servicio. Si desea tener acceso inmediato a estas funciones, póngase en contacto con [AWS Support](https://aws.amazon.com/premiumsupport/).

**nota**  
Estas funciones se aplican tanto a los métodos de inserción de anuncios agrupados (SSAI) como a los guiados por el servidor (SGAI). Los tipos de balizas y la temporización son los mismos en ambos modos. Se diferencian en la forma en que MediaTailor activan las balizas; consulte [Seguimiento del lado del servidor con inserción de anuncios guiada por el servidor (SGAI)](ad-reporting-server-side-sgai.md) para obtener más información sobre la baliza SGAI del lado del servidor.

## Deduplicación de balizas
<a name="ad-reporting-server-side-beacon-deduplication"></a>

MediaTailor evita que se activen balizas duplicadas para eventos publicitarios idénticos. El sistema de seguimiento del servidor envía cada baliza de impresión, cuartil y finalización solo una vez por sesión de visualización del anuncio. Cuando los reproductores de vídeo solicitan el mismo segmento de anuncios varias veces debido a las condiciones de la red, a cambios en la velocidad de bits o a estrategias de almacenamiento en búfer, MediaTailor rastrea las balizas emitidas y bloquea las transmisiones redundantes.

La deduplicación resuelve automáticamente los escenarios habituales que provocan un aumento del número de balizas:
+ **Transmisión con velocidad de bits adaptativa**: cuando los jugadores descargan variantes de calidad diferentes del mismo segmento de anuncios
+ **Escenarios de reintentos de red**: cuando los jugadores vuelven a solicitar segmentos debido a problemas de red o a tiempos de espera
+ **Estrategias de almacenamiento en búfer de jugadores**: cuando los jugadores capturan segmentos previamente o vuelven a buscarlos con fines de almacenamiento

El sistema está diseñado para disparar balizas de impresión una sola vez, incluso cuando los jugadores cambian entre diferentes niveles de calidad.

## Regulación adaptativa y reintentos de baliza
<a name="ad-reporting-server-side-adaptive-throttling"></a>

MediaTailor gestiona automáticamente las tasas de tráfico de balizas en función de los indicadores de respuesta del servidor. El sistema monitorea los patrones de respuesta HTTP, los tiempos de espera de conexión y los códigos de error para detectar la congestión y, a continuación, ajusta las tasas de tráfico en consecuencia. Cuando el sistema identifica los indicadores de stress del servidor, reduce las tasas de tráfico del dominio afectado y las aumenta automáticamente cuando los servidores muestran una capacidad mejorada.

El sistema monitorea el estado de los servidores mediante estos indicadores:
+ Tiempos de **espera de conexión HTTP**: cuando las plataformas de medición no responden en los plazos esperados
+ **Códigos de respuesta de error**: respuestas 503, 504 y 507 que indican una sobrecarga del servidor. Su servidor de anuncios también debe admitir estos códigos de error para lograr una compatibilidad total.
+ **Patrones de respuesta**: cambios en el rendimiento de la plataforma de medición que indican problemas de capacidad

El comportamiento de reintento intenta realizar automáticamente la entrega durante un máximo de 1 hora con un retraso mínimo de 30 segundos entre los intentos. Este comportamiento de reintento no se puede configurar. 

## Gestión del tráfico de balizas por segundo
<a name="ad-reporting-server-side-tps-management"></a>

Puede establecer límites de TPS para controlar las tasas de emisión de balizas. Esta es la única configuración configurable para las funciones de seguimiento del lado del servidor. Los límites a nivel de cuenta limitan el número total de solicitudes de seguimiento de anuncios enviadas a todos los socios de medición. MediaTailor impone un límite mínimo de TPS de 10 000 para proporcionar una capacidad suficiente para las operaciones a escala empresarial.

Envíe una solicitud de AWS asistencia para establecer los límites de TPS con la siguiente información:
+ **ID de cuenta de AWS**: su identificador de cuenta específico
+ **Región objetivo**: la región de AWS en la que desea que se aplique el límite de TPS
+ **Umbral de TPS deseado**: el límite de transacciones por segundo requerido (mínimo 10 000)

De forma predeterminada, no hay límite de TPS. Puedes solicitar un límite de TPS si tu servidor de decisiones publicitarias (ADS) lo requiere, pero el límite debe ser superior a 10 000 TPS. MediaTailor no superará el límite especificado, pero no garantiza un rendimiento uniforme hasta ese límite. Tu servidor de decisiones publicitarias te dirá qué límites de TPS admite.

## Balizamiento ordenado
<a name="ad-reporting-server-side-in-order-beaconing"></a>

MediaTailor mantiene automáticamente la entrega secuencial de los eventos de seguimiento de anuncios. El sistema mantiene el orden de las balizas incluso cuando se producen problemas con la red, los reintentos o la gestión del tráfico. Esto garantiza que los socios de medición reciban los eventos en el orden correcto para realizar análisis precisos.

El sistema sigue la secuencia de balizas estándar del sector:

1. **Iniciar eventos**: se activa cuando comienza la reproducción del anuncio

1. **Eventos del primer cuartil**: se activa cuando se completa el anuncio un 25%

1. **Eventos de punto medio: dispara** al 50% y los completa

1. **Eventos del tercer cuartil**: dispara al 75% y los completa

1. **Eventos de finalización**: se activan cuando los anuncios terminan

Estas funciones funcionan juntas automáticamente:
+ Las balizas se mantienen presionadas durante la aceleración para mantener el orden adecuado
+ Cada dominio asociado a la medición tiene colas de eventos independientes para evitar interrupciones durante los ajustes de la tarifa
+ La deduplicación rastrea el tipo de evento y la posición en el cronograma, manteniendo el orden cronológico

# Seguimiento de anuncios del lado del cliente
<a name="ad-reporting-client-side"></a>

Con la API de seguimiento del AWS Elemental MediaTailor lado del cliente, puedes incorporar controles de reproducción durante las pausas publicitarias en los flujos de trabajo de streaming. En el seguimiento por parte del cliente, el reproductor o el cliente emiten eventos de seguimiento, como las impresiones y las balizas publicitarias por cuartiles, al Ad Decision Server (ADS) y a otras entidades de verificación de anuncios. Estos eventos registran tanto el estado general de las pausas publicitarias como el anuncio individual disponible en cada pausa. Para obtener más información sobre la impresión y el cuartil (ADS) y otras entidades de verificación de anuncios. Para obtener más información sobre la señalización de anuncios por impresión y cuartil, consulte. [Balizamiento del lado del cliente](ad-reporting-client-side-beaconing.md) Para obtener más información sobre ADS y otras entidades de verificación de anuncios, consulte. [Integraciones de seguimiento de anuncios del lado del cliente](ad-reporting-client-side-ad-tracking-integrations.md)

Para obtener información sobre cómo transferir los parámetros de los jugadores y los datos de la sesión al ADS para su seguimiento por parte del cliente, consulte y. [MediaTailor variables de reproductor para solicitudes de ADS](variables-player.md) [MediaTailor variables de sesión para solicitudes de ADS](variables-session.md)

El seguimiento por parte del cliente permite funciones como las siguientes: 
+ Temporizadores de cuenta regresiva Ad-Break: para obtener más información, consulte. [Agrega un temporizador de cuenta regresiva](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-countdown-timer)
+ Registro de clics de anuncios: para obtener más información, consulte. [Cómo hacer clic en el anuncio](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-clickthrough)
+ Visualización de anuncios complementarios: para obtener más información, consulte. [Anuncios complementarios](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-companion-ads)
+ Anuncios que se pueden omitir: para obtener más información, consulte. [Anuncios que se pueden omitir](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-skippable-ads)
+ Visualización de íconos VAST para garantizar el cumplimiento de las normas de privacidad: para obtener más información, consulte. [Iconos de Google ¿Por qué este anuncio? (WTA)](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-google-wta)
+ Control de la limpieza de los jugadores durante los anuncios: para obtener más información, consulte[Fregando](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-scrubbing).

Con la API de seguimiento MediaTailor del lado del cliente, puedes enviar metadatos al dispositivo de reproducción que habilitan otras funciones además del seguimiento del lado del cliente:

## Flujo de trabajo de informes del lado del cliente
<a name="ad-reporting-client-side-workflow"></a>

En el siguiente diagrama se muestra todo el flujo de trabajo de elaboración de informes por parte del cliente, desde el inicio de la sesión hasta la reproducción de anuncios y la señalización:

![\[MediaTailor Diagrama secuencial de generación de informes del lado del cliente que muestra la interacción entre el reproductor de vídeo, el servidor de decisiones publicitarias MediaTailor, el origen del contenido y los servicios de verificación de anuncios durante todo el flujo de trabajo, desde el inicio de la sesión hasta la reproducción de anuncios y la baliza.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/tracking_flow.png)


El flujo de trabajo de elaboración de informes del lado del cliente incluye los siguientes pasos:

1. **Inicialización de la sesión**: el reproductor de vídeo envía una solicitud POST al punto final de la MediaTailor sesión con metadatos JSON`adsParams`, incluidos los tokens de origen y las funciones de la sesión. MediaTailor responde con `manifestUrl` y `trackingUrl` para la sesión.

1. **Solicitud de manifiesto y decisión sobre el anuncio**: el jugador solicita el manifiesto personalizado a MediaTailor. MediaTailor solicita el manifiesto de contenido original desde el origen, envía una solicitud de anuncio al Ad Decision Server (ADS) utilizando los parámetros del reproductor, recibe una respuesta de VAST con metadatos del anuncio y entrega al reproductor un manifiesto personalizado con marcadores de anuncios.

1. **Recuperación de datos de seguimiento**: el jugador consulta la URL de seguimiento a intervalos regulares (coincidiendo con la duración objetivo para HLS o con el período mínimo de actualización para DASH). MediaTailor devuelve metadatos de seguimiento en formato JSON que contienen datos de disponibilidad, anuncios, eventos de seguimiento URLs, balizas y datos de verificación de anuncios.

1. **Reproducción y baliza de anuncios: durante las pausas publicitarias, el reproductor analiza los metadatos de seguimiento, activa balizas** de impresión cuando los anuncios comienzan a mostrarse, activa balizas de cuartil (inicio, primer cuartil, punto medio, tercer cuartil, completo) en el momento adecuado, carga y ejecuta la verificación de anuncios si es necesario, y envía los eventos a servicios de verificación de terceros. JavaScript viewability/verification 

1. **Sondeo continuo**: el jugador sigue consultando la URL de seguimiento durante toda la sesión para recibir metadatos actualizados sobre las próximas pausas publicitarias y contenido dinámico.

Este flujo de trabajo incluye funciones avanzadas, como los temporizadores de la cuenta regresiva de los anuncios, la función de seguimiento de los clics, los anuncios complementarios, los anuncios que se pueden omitir y la visualización de iconos VAST para garantizar el cumplimiento de las normas de privacidad.

**Topics**
+ [Flujo de trabajo de informes del lado del cliente](#ad-reporting-client-side-workflow)
+ [Habilita el seguimiento por parte del cliente](#ad-reporting-client-side-enabling)
+ [Parámetros del servidor de anuncios](#ad-reporting-client-side-ad-server-parameters)
+ [Parámetros de consulta de interacción de Origin](#ad-reporting-client-side-origin-interaction-query-parameters)
+ [Funciones configuradas por sesión](#ad-reporting-client-side-session-configured-features)
+ [Prácticas recomendadas para el seguimiento del lado del cliente](#ad-reporting-client-side-best-practices)
+ [Esquema y propiedades del seguimiento de anuncios del lado del cliente](ad-reporting-client-side-ad-tracking-schema.md)
+ [Cronología de la actividad de seguimiento de anuncios](ad-reporting-client-side-ad-tracking-schema-activity-timing.md)
+ [Controles del reproductor y funciones para el seguimiento de anuncios del lado del cliente](ad-reporting-client-side-ad-tracking-schema-player-controls.md)
+ [Balizamiento del lado del cliente](ad-reporting-client-side-beaconing.md)
+ [Modo híbrido con balizas publicitarias del lado del servidor](ad-reporting-hybrid-mode.md)
+ [Integraciones de seguimiento de anuncios del lado del cliente](ad-reporting-client-side-ad-tracking-integrations.md)
+ [Navegando a través de balizas publicitarias con GetTracking](#gettracking)

## Habilita el seguimiento por parte del cliente
<a name="ad-reporting-client-side-enabling"></a>

Habilitas el seguimiento por parte del cliente para cada sesión. El reproductor crea un HTTP en el punto final del `POST` prefijo de inicialización de la sesión de la MediaTailor configuración. Si lo desea, el reproductor puede enviar metadatos adicionales MediaTailor para utilizarlos cuando realice anuncios publicitarios, llame al origen de un manifiesto e invoque o MediaTailor deshabilite funciones a nivel de sesión.

En el siguiente ejemplo, se muestra la estructura de los metadatos de JSON:

```
{
  "adsParams": {                  # 'adsParams' is case sensitive
    "param1": "value1",           # key is not case sensitive
    "param2": "value2",           # Values can contain spaces. For example, 'value 2' is an allowed value. 
    },
  "origin_access_token":"abc123", # this is an example of a query parameter designated for the origin
  "overlayAvails":"on"            # 'overlayAvails' is case sensitive. This is an example of a feature that is enabled at the session level.
}
```

Use la MediaTailor consola o la API para configurar la URL de la plantilla de solicitud de ADS para hacer referencia a estos parámetros. En el siguiente ejemplo, `player_params.param1` son los parámetros del reproductor para `param1` y `player_params.param2` son los parámetros del reproductor para`param2`.

```
https://my.ads.com/path?param1=[player_params.param1]&param2=[player_params.param2]
```

## Parámetros del servidor de anuncios
<a name="ad-reporting-client-side-ad-server-parameters"></a>

En el nivel superior de la estructura JSON hay un objeto JSON. `adsParams` Dentro de este objeto hay key/value pares que se MediaTailor pueden leer y enviar al servidor de anuncios en todas las solicitudes de sesión. MediaTailor admite los siguientes servidores de anuncios:
+ Administrador de anuncios de Google 
+ SpringServe 
+ FreeWheel 
+ Publica 

## Parámetros de consulta de interacción de Origin
<a name="ad-reporting-client-side-origin-interaction-query-parameters"></a>

Los key/value pares reservados que se encuentren en el nivel superior de la estructura JSON, como, y `adsParams` `availSuppression``overlayAvails`, no se agregan a la URL de la solicitud de origen en forma de parámetros de consulta. Cada solicitud de manifiesto de sesión que MediaTailor se envía al origen contiene estos parámetros de consulta. El origen ignora los parámetros de consulta ajenos. Por ejemplo, MediaTailor puede usar los key/value pares para enviar los tokens de acceso al origen.

## Funciones configuradas por sesión
<a name="ad-reporting-client-side-session-configured-features"></a>

Utilice la estructura JSON de inicialización de sesión para habilitar, deshabilitar o anular MediaTailor funciones como, y. `overlayAvails` `availSuppression` `adSignaling` Cualquier configuración de funciones que se apruebe durante la inicialización de la sesión anula la configuración a nivel de configuración. MediaTailor 

**nota**  
Los metadatos enviados MediaTailor al inicializar la sesión son inmutables y no se pueden agregar metadatos adicionales mientras dure la sesión. Utilice los marcadores SCTE-35 para almacenar los datos que cambien durante la sesión. Para obtener más información, consulte [MediaTailor variables de sesión para solicitudes de ADS](variables-session.md).

**Example : Realizar un seguimiento de anuncios del lado del cliente para HLS**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.m3u8

        {
            "adsParams": {
               "deviceType": "ipad"   # This value does not change during the session.
               "uid": "abdgfdyei-2283004-ueu"                     
           }
        }
```

**Example : Realizar un seguimiento de anuncios del lado del cliente para DASH**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.mpd

        {
            "adsParams": {
               "deviceType": "androidmobile",
               "uid": "xjhhddli-9189901-uic" 
           }
        }
```

### Parámetro del modo de informes
<a name="session-initialization-reporting-mode"></a>

Puedes especificar el modo de generación de informes al inicializar una sesión incluyendo el parámetro en el cuerpo de la `reportingMode` solicitud. Este parámetro controla si se MediaTailor realiza el seguimiento de los anuncios de la sesión desde el lado del cliente o del lado del servidor.
+ `client`- El reproductor realiza un seguimiento de los anuncios y envía balizas al servidor de anuncios. Si no se especifica ningún modo, este `reportingMode` es el modo predeterminado.
+ `server`- MediaTailor realiza un seguimiento de los anuncios del lado del servidor y envía balizas directamente al servidor de anuncios.

**Example Inicialización de la sesión con el modo de generación de informes del lado del servidor**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.m3u8

        {
            "adsParams": {
               "deviceType": "ipad",
               "uid": "abdgfdyei-2283004-ueu"                     
           },
           "reportingMode": "server"
        }
```

**Example Inicialización de la sesión con el modo de generación de informes del lado del cliente (explícito)**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.mpd

        {
            "adsParams": {
               "deviceType": "androidmobile",
               "uid": "xjhhddli-9189901-uic" 
           },
           "reportingMode": "client"
        }
```

**nota**  
El `reportingMode` parámetro se establece en el momento de la inicialización de la sesión y no se puede cambiar durante la sesión. Si no `reportingMode` se especifica, se establece de MediaTailor forma predeterminada la generación de informes del lado del cliente para mantener la compatibilidad con versiones anteriores.

Una respuesta correcta es un HTTP `200` con un cuerpo de respuesta. El cuerpo contiene un objeto JSON con una `manifestUrl` y una `trackingUrl` clave. Los valores son relativos y URLs el reproductor puede utilizarlos tanto para la reproducción como para el seguimiento de eventos publicitarios.

```
{
  "manifestUrl": "/v1/dashmaster/hashed-account-id/origin-id/asset-id.m3u8?aws.sessionId=session-id",
  "trackingUrl": "/v1/tracking/hashed-account-id/origin-id/session-id"
}
```

Para obtener más información sobre el esquema de seguimiento del lado del cliente, consulte. [Esquema y propiedades del seguimiento de anuncios del lado del cliente](ad-reporting-client-side-ad-tracking-schema.md)

## Prácticas recomendadas para el seguimiento del lado del cliente
<a name="ad-reporting-client-side-best-practices"></a>

En esta sección se describen las mejores prácticas para el seguimiento del lado del cliente, tanto para los flujos de trabajo en directo como MediaTailor para los de vídeo a la carta.

### Flujos de trabajo activos
<a name="ad-reporting-client-side-best-practices-live"></a>

Sondea el punto final de seguimiento en un intervalo que coincida con la duración objetivo de HLS o el período mínimo de actualización en el caso de DASH, a fin de disponer siempre de los metadatos de seguimiento de anuncios más recientes. Hacer coincidir este intervalo es especialmente importante en los flujos de trabajo en los que las creatividades pueden tener un componente interactivo o superpuesto. 

**nota**  
Algunos reproductores apoyan a los oyentes de los eventos, lo que podría utilizarse como alternativa a las votaciones. Por ejemplo, la función de decoración de los identificadores de MediaTailor anuncios tendría que estar habilitada para cada sesión. Para obtener más información, consulte [Decoración de ID de anuncio](ad-id-decoration.md). Al usar esta función, se coloca un identificador de intervalo de fechas (HLS) o elemento de evento (DASH) sobre cada anuncio disponible. Los jugadores pueden usar estas etiquetas de manifiesto como mensaje para llamar al punto final MediaTailor de seguimiento de la sesión.

### Flujos de trabajo de VOD
<a name="ad-reporting-client-side-best-practices-vod"></a>

Una vez inicializada correctamente la sesión y tras MediaTailor recibir el primer manifiesto que contenga contenido multimedia, solo tendrá que llamar al punto final de seguimiento una vez.

![\[Flujo de llamadas para flujos de trabajo de VOD. Llame al punto final de seguimiento del lado del cliente una vez inicializada la sesión y MediaTailor reciba el primer manifiesto que contiene contenido multimedia.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/vod-workflow-best-practice.png)


### Inserción de anuncios guiada por el servidor
<a name="ad-reporting-client-side-best-practices-sgai"></a>

Las sesiones de inserción de anuncios guiada por el servidor (SGAI) no utilizan la API. `GetTracking` En su lugar, cuando la utilizas`aws.reportingMode=CLIENT`, MediaTailor proporciona información de seguimiento en la `TRACKING` sección de la respuesta de cada lista de activos cuando los jugadores solicitan contenido publicitario. La respuesta de inicialización de la sesión no incluye un`trackingUrl`.

La respuesta de la lista de activos para las sesiones SGAI rastreadas por el lado del cliente tiene la siguiente estructura:

```
{
  "ASSETS": [
    { "DURATION": 20.0, "URI": "https://cdn.example.com/ad1/master.m3u8" },
    { "DURATION": 10.0, "URI": "https://cdn.example.com/ad2/master.m3u8" }
  ],
  "TRACKING": {
    ...VAST tracking events and beacon URLs for each ad...
  }
}
```

Al implementar el seguimiento del lado del cliente para los métodos de la SGAI:
+ Analice la `TRACKING` sección a partir de las respuestas de la lista de activos en lugar de llamar `GetTracking`
+ Usa el seguimiento que URLs se proporciona en la lista de activos para generar informes sobre eventos publicitarios
+ Activa balizas de rastreo basadas en los eventos reales de reproducción de anuncios en el reproductor
+ Gestione el seguimiento de cada pausa publicitaria de forma independiente a medida que vaya recopilando las listas de activos

**importante**  
La `TRACKING` sección solo se incluye en la lista de activos cuando `aws.reportingMode=CLIENT` está configurada. Cuando se utilizan los informes del lado del servidor (la opción predeterminada para SGAI), se MediaTailor omite la `TRACKING` sección y, en su lugar, se incorporan los datos de las balizas en el anuncio. URIs Para obtener más información, consulte [Seguimiento del lado del servidor con inserción de anuncios guiada por el servidor (SGAI)](ad-reporting-server-side-sgai.md).

# Esquema y propiedades del seguimiento de anuncios del lado del cliente
<a name="ad-reporting-client-side-ad-tracking-schema"></a>

Con la función de seguimiento de anuncios MediaTailor del lado del cliente, puedes integrar datos detallados del seguimiento de anuncios del lado del cliente en tu entorno de jugador. En las siguientes secciones se describe el esquema general de seguimiento de anuncios, así como las propiedades y valores específicos que lo componen.

## Esquema
<a name="ad-reporting-client-side-ad-tracking-schema-table"></a>

La siguiente estructura de JSON muestra el esquema de seguimiento de anuncios del MediaTailor lado del cliente. Esta representación ilustra la estructura de anidación del esquema para ayudarte a entender las relaciones entre las distintas partes.

Para obtener información detallada sobre cada propiedad, consulte[Propiedades](#ad-reporting-client-side-ad-tracking-schema-properties).

```
{
  "avails": [
    {
      "ads": [
        {
          "adID": "string",
          "adParameters": "string",
          "adSystem": "string",
          "adTitle": "string",
          "adVerifications": [
            {
              "executableResource": [
                {
                  "apiFramework": "string",
                  "type": "string",
                  "uri": "string",
                  "language": "string"
                }
              ],
              "javaScriptResource": [
                {
                  "apiFramework": "string",
                  "browserOptional": "string",
                  "uri": "string"
                }
              ],
              "trackingEvents": [
                {
                  "event": "string",
                  "uri": "string"
                }
              ],
              "vendor": "string",
              "verificationParameters": "string"
            }
          ],
          "companionAds": [
            {
              "adParameters": "string",
              "altText": "string",
              "attributes": {
                "adSlotId": "string",
                "apiFramework": "string",
                "assetHeight": "string",
                "assetWidth": "string",
                "expandedHeight": "string",
                "expandedWidth": "string",
                "height": "string",
                "id": "string",
                "pxratio": "string",
                "renderingMode": "string",
                "width": "string"
              },
              "companionClickThrough": "string",
              "companionClickTracking": "string",
              "htmlResource": "string",
              "iFrameResource": "string",
              "sequence": "string",
              "staticResource": "string",
              "trackingEvents": [
                {
                  "event": "string",
                  "uri": "string"
                }
              ]
            }
          ],
          "creativeId": "string",
          "creativeSequence": "string",
          "duration": "string",
          "durationInSeconds": number,
          "extensions": [
            {
              "type": "string",
              "content": "string"
            }
          ],
          "icons": [
            {
              "attributes": {
                "apiFramework": "string",
                "duration": "string",
                "height": "string",
                "offset": "string",
                "program": "string",
                "pxratio": "string",
                "width": "string",
                "xPosition": "string",
                "yPosition": "string"
              },
              "htmlResource": "string",
              "iconClicks": {
                "iconClickThrough": "string",
                "iconClickTracking": {
                  "id": "string"
                },
                "iconClickFallbackImages": [
                  {
                    "altText": "string",
                    "height": "string",
                    "width": "string",
                    "staticResource": {
                      "creativeType": "string",
                      "uri": "string"
                    }
                  }
                ]
              },
              "iconViewTracking": "string",
              "iFrameResource": "string",
              "staticResource": {
                "creativeType": "string",
                "uri": "string"
              }
            }
          ],
          "mediaFiles": {
            "adParameters": "string",
            "duration": "string",
            "durationInSeconds": number,
            "mediaFilesList": [
              {
                "apiFramework": "string",
                "delivery": "string",
                "height": "string",
                "maintainAspectRatio": "string",
                "mediaFileUri": "string",
                "mediaType": "string",
                "scalable": "string",
                "width": "string",
                "bitrate": "string"
              }
            ],
            "mezzanine": "string",
            "startTime": "string",
            "startTimeInSeconds": number,
            "trackingEvents": [
              {
                "beaconUrls": ["string"],
                "duration": "string",
                "durationInSeconds": number,
                "dateTime": "string",
                "eventId": "string",
                "eventType": "string",
                "startTime": "string",
                "startTimeInSeconds": number
              }
            ]
          },
          "startTime": "string",
          "startTimeInSeconds": number,
          "dateTime": "string",
          "adBreakTrackingEvents": [...],
          "vastAdId": "string"
        }
      ],
      "adType": "string",
      "availID": "string",
      "duration": "string",
      "durationInSeconds": number,
      "startTime": "string",
      "startTimeInSeconds": number,
      "dateTime": "string",
      "adMarkerDuration": "string",
      "adProgramDateTime": "string",
      "dashAvailabilityStartTime": "string",
      "hlsAnchorMediaSequenceNumber": "string"
    }
  ],
  "nonLinearAvails": [
    {
      "nonLinearAds": [...],
      "nonLinearAdsList": [...]
    }
  ],
  "nextToken": "string",
  "meta": {}
}
```

## Propiedades
<a name="ad-reporting-client-side-ad-tracking-schema-properties"></a>

En la siguiente tabla se enumeran las propiedades de la API de seguimiento del lado del cliente, sus definiciones, tipos de valores y ejemplos.


****  

| Propiedad | Definición | Tipo de valor | Ejemplo | 
| --- | --- | --- | --- | 
|   adID  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html) Ruta: `/avails/ads/adId` Mapeo VAST: ninguno  | Cadena | 10 | 
|   adBreakTrackingEvents  |  Matriz que contiene los eventos de seguimiento de VMAP de la respuesta VAST. Para obtener más información, consulte la sección 2.3.3 de la especificación [VMAP 1.0](https://www.iab.com/guidelines/vmap/). Ruta: `/avails/ads/adBreakTrackingEvents`  | Matriz |  []  | 
|   adMarkerDuration  |  El tiempo de disponibilidad observado a partir del marcador publicitario del manifiesto.  | Cadena |  30  | 
|   adParameters  |  Cadena de parámetros del anuncio, del VAST VPAID, que se MediaTailor transfiere al reproductor. Ruta: `/avails/ads/adParameters` Mapeo VAST: `VAST/Ad/InLine/Creatives/Creative/Linear/AdParameters`  | Cadena |  | 
|   adProgramDateTime  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html)  | Cadena |  | 
|   ads  |  Una matriz que contiene los objetos de anuncios que componen la oferta. Los anuncios se muestran en el orden en que aparecen en el manifiesto. Ruta: `/avails/ads`  | Matriz |  []  | 
|   adSystem  |  El nombre del sistema que publica el anuncio.  Asegúrese de proporcionar un valor. Si no proporciona un valor, pueden surgir problemas.   | Cadena |  myADS  | 
|   adTitle  |  El título del anuncio.  | Cadena |  ad1  | 
|   adVerifications  |  Contiene los recursos y los metadatos necesarios para ejecutar el código de medición de terceros a fin de verificar la reproducción creativa. Para obtener más información sobre esta propiedad, consulte la sección 3.16 de la [especificación VAST 4.2](https://iabtechlab.com/standards/vast/). MediaTailor admite `adVerifications` como nodos de extensión VAST 3. Ruta: `/avails/ads/adVerifications` Mapeo VAST: `VAST/Ad/InLine/AdVerifications`  | Matriz |  []  | 
|   altText  |  El texto alternativo de una imagen de un anuncio complementario. Este texto permite a los jugadores con soporte de audio descriptivo para personas con discapacidad visual leer una descripción de la imagen. Ruta: `/avails/ads/companionAds/altText`  | Cadena |  video sequence advertising sneakers  | 
|   apiFramework  |  Se configura para indicar `VPAID` al jugador que este anuncio es un anuncio VPAID. Puede aparecer en varias ubicaciones del esquema.  | Cadena |  VPAID  | 
|   availID  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html) Ruta: `/avails/availID`  | Cadena |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html)  | 
|   avails  |  Matriz que contiene objetos publicitarios, o *paquetes,* que aparecen en la ventana del manifiesto activa. Los artículos disponibles se muestran en el orden en que aparecen en el manifiesto. Ruta: `/avails`  | Matriz |  []  | 
|   adType  |  El tipo de anuncio. Ruta: `/avails/adType` y `/avails/ads/adType`  | Cadena |  | 
|   dateTime  |  Programe la fecha y hora, en formato ISO 8601 segundos, para el inicio del anuncio o anuncio. Ruta: y `/avails/dateTime` `/avails/ads/dateTime`  | Cadena |  | 
|   duration  |  Longitud, en formato ISO 8601 segundos. La respuesta incluye la duración de todo el anuncio disponible y de cada anuncio y baliza, aunque la duración de las balizas siempre es cero. Ruta: y `/avails/duration` `/avails/ads/duration`  | Cadena | 15.015 | 
|   durationInSeconds  |  Longitud, en formato de segundos. Ruta: `/avails/durationInSeconds` y `/avails/ads/durationInSeconds`  | Número |  | 
|   extensions  |  Extensiones personalizadas de VAST que utilizan los servidores de anuncios. Para obtener más información sobre las extensiones, consulta la sección 3.18 de la [especificación VAST 4.2](https://iabtechlab.com/standards/vast/). Ruta: `/avails/ads/extensions` Mapeo VAST: `VAST/Ad/InLine/Extensions`  | Matriz | [] | 
|   icons  |  Elementos de icono para el anuncio. Ruta: `/avails/ads/icons` Mapeo VAST: `VAST/Ad/InLine/Creatives/Creative/Linear/Icons`  | Matriz |  | 
|   mediaFiles  |  El vídeo y otros recursos que el jugador necesita para el anuncio están disponibles. Ruta: `/avails/ads/mediaFiles`  | Objeto |  | 
|   nonLinearAvails  |  Conjunto de objetos no lineales y disponibles. Ruta: `/nonLinearAvails`  | Matriz |  | 
|   executableResource  |  Recursos ejecutables para la verificación. Ruta: `/avails/ads/adVerifications/executableResource` Mapeo VAST: `VAST/Ad/InLine/AdVerifications/Verification/ExecutableResource`  | Matriz |  | 
|   javaScriptResource  |  JavaScript recursos para la verificación. Ruta: `/avails/ads/adVerifications/javaScriptResource` Cartografía VAST: `VAST/Ad/InLine/AdVerifications/Verification/JavaScriptResource`  | Matriz |  | 
|   trackingEvents  |  Seguimiento de eventos para su verificación o anuncios complementarios. Ruta: `/avails/ads/adVerifications/trackingEvents` o `/avails/ads/companionAds/trackingEvents`  | Matriz |  | 
|   vendor  |  Proveedor de verificación. Ruta: `/avails/ads/adVerifications/vendor` Mapeo VAST: `VAST/Ad/InLine/AdVerifications/Verification/@vendor`  | Cadena |  | 
|   uri  |  URI que apunta a un activo ejecutable, a un activo de vídeo o a un punto final de seguimiento. Ruta: varias ubicaciones del esquema Mapeo VAST: varios elementos de CDATA en VAST  | Cadena | https://tracking.example.com/impression | 
|   verificationParameters  |  Parámetros de verificación. Ruta: `/avails/ads/adVerifications/verificationParameters` Mapeo VAST: `VAST/Ad/InLine/AdVerifications/Verification/VerificationParameters`  | Cadena |  | 
|   attributes  |  Atributos de anuncios complementarios, como las dimensiones y el modo de renderizado. Ruta: `/avails/ads/companionAds/attributes`  | Objeto |  | 
|   companionClickThrough  |  URL de la página del anunciante que el reproductor multimedia abre cuando el espectador hace clic en el anuncio complementario. Ruta: `/avails/ads/companionAds/companionClickThrough` Amplio mapeo: `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/CompanionClickThrough`  | Cadena | https://aws.amazon.com/ | 
|   companionClickTracking  |  La URL de seguimiento de la `companionClickThrough` propiedad. Ruta: `/avails/ads/companionAds/companionClickTracking` Mapeo VAST: `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/CompanionClickTracking`  | Cadena | https://myads.com/beaconing/event=clicktracking | 
|   htmlResource  |  El HTML codificado en CDATA que se inserta directamente en la página HTML del proveedor de streaming. Ruta: `/avails/ads/companionAds/htmlResource` Mapeo VAST: `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/HTMLResource`  | Cadena | <\$1[CDATA[<\$1doctype html><html><head><meta name=\$1"viewport\$1" content=\$1"width=1, initial-scale=1.0, minimum-scale=1.0,...]]> | 
|   iFrameResource  |  La URL de un archivo de recursos HTML que el proveedor de streaming carga en un iframe. Ruta: `/avails/ads/companionAds/iFrameResource` Mapeo VAST: `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/iFrameResource`  | Cadena |  | 
|   sequence  |  El valor de secuencia especificado para la creatividad en la respuesta VAST. Ruta: `/avails/ads/companionAds/sequence`  | Cadena | 1 | 
|   startTime  |  La posición temporal, en formato ISO 8601 segundos. En el caso del HLS, es relativa al inicio de la sesión de reproducción. En el caso de DASH, esto es relativo a la AST (hora de inicio de disponibilidad) del manifiesto. La respuesta incluye las horas de inicio de todo el espacio publicitario y de cada anuncio y baliza. Ruta: `/avails/startTime` y `/avails/ads/startTime`  | Cadena | PT18.581355S | 
|   startTimeInSeconds  |  La posición temporal, en formato de segundos. En el caso del HLS, es relativa al inicio de la sesión de reproducción. En el caso de DASH, esto es relativo a la AST (hora de inicio de disponibilidad) del manifiesto. La respuesta incluye las horas de inicio de todo el espacio publicitario y de cada anuncio y baliza. Ruta: `/avails/startTimeInSeconds` y `/avails/ads/startTimeInSeconds`  | Número | 18.581 | 
|   eventId  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html)  | Cadena |  | 
|   event  |  El nombre del evento de seguimiento. Ruta: `/avails/ads/adVerifications/trackingEvents/event` o `/avails/ads/companionAds/trackingEvents/event`  | Cadena | impression, start, firstQuartile, midpoint, thirdQuartile, complete | 
|   beaconUrls  |  La URL a la que se MediaTailor envía la baliza publicitaria. Ruta: `/avails/ads/mediaFiles/trackingEvents/beaconUrls`  | Matriz |  | 
|   bitrate  |  La velocidad de bits del recurso de vídeo. Esta propiedad no suele incluirse en los activos ejecutables.  | Cadena | 2048 | 
|   companionAds  |  Una o varias especificaciones complementarias de contenido publicitario, cada una de las cuales especifica el archivo de recursos que se va a utilizar. Los anuncios complementarios acompañan al anuncio y proporcionan contenido, como un marco alrededor del anuncio o un banner, para mostrarlo cerca del vídeo. Ruta: `/avails/ads/companionAds`  | Matriz | [] | 
|   creativeId  |  El valor del `Id` atributo de la `Creative` etiqueta del anuncio.  | Cadena | creative-1 | 
|   creativeSequence  |  La secuencia en la que debe reproducirse un anuncio, según el `Ad@id` valor de la respuesta de VAST.  | Cadena | 1 | 
|   dashAvailabilityStartTime  |  En el caso `MPD@availabilityStartTime` de live/dynamic DASH, el manifiesto de origen.  | Cadena | 2022-10-05T19:38:39.263Z | 
|   delivery  |  Indica si se está utilizando un `streaming` protocolo `progressive` o.  | Cadena | progressive | 
|   eventType  |  El tipo de baliza. Ruta: `/avails/ads/mediaFiles/trackingEvents/eventType`  | Cadena | impression | 
|   height  |  La altura, en píxeles, del recurso de vídeo.  | Cadena | 360 | 
|   hlsAnchorMediaSequenceNumber  |  El número de secuencia multimedia de la secuencia first/oldest multimedia que aparece en el manifiesto de origen del HLS.  | Cadena | 77 | 
|   maintainAspectRatio  |  Indica si se debe mantener la relación de aspecto del vídeo mientras se escala.  | Booleano | true | 
|   mediaFilesList  |  Especifica el vídeo y otros recursos que el reproductor necesita para que el anuncio esté disponible. Ruta: `/avails/ads/mediaFiles/mediaFilesList`  | Matriz | [] | 
|   mediaFileUri  |  URI que apunta a un recurso ejecutable o a un recurso de vídeo.  | Cadena | https://myad.com/ad/ad134/vpaid.js | 
|   mediaType  |  El tipo MIME de la creatividad o el activo complementario.  | Cadena | video/mp4 | 
|   meta  |  Metadatos adicionales para el anuncio.  | Objeto |  | 
|   mezzanine  |  La URL del MP4 recurso intermedio, que se especifica si el anuncio VPAID incluye uno. Ruta: `/avails/ads/mediaFiles/mezzanine`  | Cadena | https://gcdn.2mdn.net/videoplayback/id/itag/ck2/file/file.mp4 | 
|   nextToken  |  El valor del token que apunta a la siguiente página de resultados, cuando ese valor existe.  | Cadena | UFQzOS44NzNTXzIwMjMtMDctMzFUMTY6NTA6MDYuMzUwNjI2ODQ1Wl8x | 
|   nonLinearAds  |  Anuncios no lineales que aparecen junto al contenido del vídeo.  | Matriz | [] | 
|   nonLinearAdsList  |  Lista de anuncios no lineales.  | Matriz | [] | 
|   scalable  |  Indica si se debe escalar el vídeo a otras dimensiones.  | Booleano | true | 
|   skipOffset  |  El valor de tiempo que identifica el momento en que el reproductor pone los controles de salto a disposición del usuario.  | Cadena | 00:00:05 | 
|   staticResource  |  La URL de un archivo creativo estático que se utiliza para el componente publicitario. Ruta: `/avails/ads/companionAds/staticResource`  | Cadena | https://very-interactive-ads.com/campaign1/file.json?c=1019113602 | 
|   vastAdId  |  El valor del `Id` atributo de la `Ad` etiqueta.  | Cadena | ad1 | 
|   width  |  El ancho, en píxeles, del recurso de vídeo.  | Cadena | 640 | 
|   xPosition  |  La posición horizontal de un icono dentro del reproductor de vídeo. Puede ser un valor de píxel específico o una posición como «izquierda» o «derecha». Ruta: `/avails/ads/icons/attributes/xPosition`  | Cadena | left o 10 | 
|   yPosition  |  La posición vertical de un icono en el reproductor de vídeo. Puede ser un valor de píxel específico o una posición como «arriba» o «abajo». Ruta: `/avails/ads/icons/attributes/yPosition`  | Cadena | top o 10 | 
|   iconClicks  |  Contiene información sobre los clics y el seguimiento de un icono. Ruta: `/avails/ads/icons/iconClicks`  | Objeto |  | 
|   iconClickThrough  |  Una URL de la página del anunciante que el reproductor multimedia abre cuando el espectador hace clic en el icono. Ruta: `/avails/ads/icons/iconClicks/iconClickThrough`  | Cadena | https://advertiser.com/landing-page | 
|   iconClickTracking  |  La URL de seguimiento de la `iconClickThrough` propiedad. Ruta: `/avails/ads/icons/iconClicks/iconClickTracking`  | Objeto |  | 
|   iconClickFallbackImages  |  Conjunto de imágenes alternativas que se mostrarán si no se puede mostrar el icono. Ruta: `/avails/ads/icons/iconClicks/iconClickFallbackImages`  | Matriz |  | 
|   iconViewTracking  |  La URL para rastrear cuándo se ve un icono. Ruta: `/avails/ads/icons/iconViewTracking`  | Cadena | https://tracking.example.com/icon-view | 
|   offset  |  El intervalo de tiempo durante el que debe aparecer un icono durante la reproducción de un anuncio. Ruta: `/avails/ads/icons/attributes/offset`  | Cadena | 00:00:05 | 
|   program  |  El programa o la iniciativa asociados al icono, como "AdChoices». Ruta: `/avails/ads/icons/attributes/program`  | Cadena | AdChoices | 
|   pxratio  |  La proporción de píxeles del icono o del anuncio complementario, que se utiliza en pantallas con un DPI alto. Ruta: `/avails/ads/icons/attributes/pxratio` o `/avails/ads/companionAds/attributes/pxratio`  | Cadena | 1 o 2 | 
|   type  |  El tipo de recurso o extensión. Ruta: `/avails/ads/extensions/type` o `/avails/ads/adVerifications/executableResource/type`  | Cadena | text/javascript | 
|   content  |  El contenido de una extensión. Ruta: `/avails/ads/extensions/content`  | Cadena |  | 
|   language  |  El lenguaje de programación de un recurso ejecutable. Ruta: `/avails/ads/adVerifications/executableResource/language`  | Cadena | javascript | 
|   browserOptional  |  Indica si se requiere la compatibilidad con el navegador para el JavaScript recurso. Ruta: `/avails/ads/adVerifications/javaScriptResource/browserOptional`  | Cadena | true o false | 
|   id  |  Un identificador de varios elementos del esquema. Ruta: `/avails/ads/companionAds/attributes/id` o `/avails/ads/icons/iconClicks/iconClickTracking/id`  | Cadena | companion-1 | 
|   assetHeight  |  La altura del elemento publicitario complementario. Ruta: `/avails/ads/companionAds/attributes/assetHeight`  | Cadena | 250 | 
|   assetWidth  |  El ancho del activo publicitario complementario. Ruta: `/avails/ads/companionAds/attributes/assetWidth`  | Cadena | 300 | 
|   expandedHeight  |  La altura del anuncio complementario cuando se expande. Ruta: `/avails/ads/companionAds/attributes/expandedHeight`  | Cadena | 600 | 
|   expandedWidth  |  El ancho del anuncio complementario cuando está expandido. Ruta: `/avails/ads/companionAds/attributes/expandedWidth`  | Cadena | 600 | 
|   renderingMode  |  El modo de renderización del anuncio complementario. Ruta: `/avails/ads/companionAds/attributes/renderingMode`  | Cadena | default o transparent | 
|   adSlotId  |  El ID del espacio publicitario en el que debe mostrarse el anuncio complementario. Ruta: `/avails/ads/companionAds/attributes/adSlotId`  | Cadena | banner-1 | 
|   creativeType  |  El tipo MIME del recurso creativo. Ruta: `/avails/ads/icons/staticResource/creativeType`  | Cadena | image/png | 

# Cronología de la actividad de seguimiento de anuncios
<a name="ad-reporting-client-side-ad-tracking-schema-activity-timing"></a>

Con los informes del lado del cliente, el jugador debe emitir eventos de seguimiento (balizas) con un nivel de precisión. Al utilizar el esquema de seguimiento MediaTailor del lado del cliente, puedes asegurarte de que, en todos los casos, haya información sobre anuncios, eventos complementarios, superpuestos y de seguimiento, así como información sobre el tiempo y la duración, y en diferentes formatos.

Usa los siguientes pares MediaTailor clave/valor para que el reproductor pueda conciliar con precisión las actividades de los eventos publicitarios, como el seguimiento de los eventos, con la posición de reproducción:
+ [startTime](ad-reporting-client-side-ad-tracking-schema.md#property-starttime) 
+  [startTimeInSeconds](ad-reporting-client-side-ad-tracking-schema.md#property-starttimeinseconds) 
+  [adProgramDateTime](ad-reporting-client-side-ad-tracking-schema.md#property-adprogramdatetime) 
+  [adID](ad-reporting-client-side-ad-tracking-schema.md#property-adid)/[eventId](ad-reporting-client-side-ad-tracking-schema.md#property-eventid) 

HLS y DASH implementan el valor de y de manera diferente: `startTime` `startTimeInSeconds`
+ HLS: los `startTime` valores son relativos al inicio de la sesión de reproducción. El inicio de la sesión de reproducción se define como tiempo cero. El anuncio `startTime` es la suma de los valores acumulados de todas las duraciones de los `EXT-INF` segmentos anteriores a su publicación. El número de secuencia multimedia del segmento en el que se encuentra el anuncio o el evento de seguimiento también corresponde a la respuesta de seguimiento del cliente `adId` o de la respuesta `eventId` de seguimiento.
+ DASH:
  + Manifiestos activos o dinámicos: `startTime` los valores son relativos a los del manifiesto de DASH. `MPD@availabilityStartTime` `MPD@avaibilityStartTime`Es un indicador de temporización para todas las MediaTailor sesiones que consumen la transmisión.
  + Manifiestos VOD/estáticos: los `startTime` valores son relativos al inicio de la sesión de reproducción. El inicio de la sesión de reproducción se define como tiempo cero. Cada anuncio incluido en Avail está contenido dentro de su propio `Period` elemento. El `Period` elemento tiene un `@start` atributo con un valor que es igual a los `startTime` valores de la carga útil de seguimiento del lado del cliente. `PeriodId`También corresponde a la `adId` o `eventId` en la respuesta de seguimiento del lado del cliente.

**Example HLS:**  
En el siguiente ejemplo, se inició la MediaTailor sesión y el siguiente manifiesto es el primero que se envía al cliente:  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:4603263
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:23.295678Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_34.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:27.306345Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_35.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:31.317012Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_36.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:35.327679Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_37.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:39.338346Z
#EXTINF:2.538667,
https://123.cloudfront.net/out/v1/index_1_38.ts
#EXT-X-DISCONTINUITY
#EXT-X-KEY:METHOD=NONE
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:41.453Z
#EXTINF:2.0,
https://123.cloudfront.net/tm/asset_1080_4_8_00001.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:43.453Z
#EXTINF:2.0,
https://123.cloudfront.net/tm/asset_1080_4_8_00002.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:45.453Z
#EXTINF:2.0,
https://123.cloudfront.net/tm/asset_1080_4_8_00003.ts
```
En la carga útil JSON de seguimiento del lado del cliente, se aplican los siguientes valores:  
+  `startTime`: `"PT18.581355S"` 
+  `startTimeInSeconds`: `18.581` 
+  `availProgramDateTime`: `"2023-05-03T21:24:41.453Z"` 
+  `adId`: `4603269` 

**Example DASH:**  
En el siguiente ejemplo, la MediaTailor sesión ocupa un lugar central en el manifiesto. Ten en cuenta que el valor del `@start` atributo del segundo período, que es el período publicitario, tiene un valor relativo al `MPD@availabilityStartTime` valor. Este valor es el que se incluye en MediaTailor los `startTime` campos de respuesta al seguimiento del lado del cliente, para todas las sesiones.  

```
<?xml version="1.0" encoding="UTF-8"?>
<MPD availabilityStartTime="2022-10-05T19:38:39.263Z" minBufferTime="PT10S" minimumUpdatePeriod="PT2S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-05-03T22:06:48.411Z" suggestedPresentationDelay="PT10S" timeShiftBufferDepth="PT1M30S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
    <BaseURL>https://123.channel-assembly.mediatailor.us-west-2.amazonaws.com/v1/channel/my-channel/</BaseURL>
    <Location>https://123.cloudfront.net/v1/dash/94063eadf7d8c56e9e2edd84fdf897826a70d0df/MediaTailor-Live-HLS-DASH/channel/channel1/dash.mpd?aws.sessionId=794a15e0-2a7f-4941-a537-9d71627984e5</Location>
    <Period id="1683151479166_1" start="PT5042H25M59.903S" xmlns="urn:mpeg:dash:schema:mpd:2011">
        <BaseURL>https://123.cloudfront.net/out/v1/f1a946be8efa45b0931ea35c9055fb74/ddb73bf548a44551a0059c346226445a/eaa5485198bf497284559efb8172425e/</BaseURL>
        <AdaptationSet ...>
            ...
        </AdaptationSet>
    </Period>
    <Period id="1683151599194_1_1" start="PT5042H27M59.931S">
        <BaseURL>https://123.cloudfront.net/tm/94063eadf7d8c56e9e2edd84fdf897826a70d0df/fpc5omz5wzd2rdepgieibp23ybyqyrme/</BaseURL>
        <AdaptationSet ...>
            ...
        </AdaptationSet>
    </Period>
</MPD>
```
En la carga útil JSON de seguimiento del lado del cliente, se aplican los siguientes valores:  
+  `startTime`: `"PT5042H27M59.931S"` 
+  `startTimeInSeconds`: `18152879.931` 
+  `availProgramDateTime`: *null* 
+  `adId`: `1683151599194_1_1` 

# Controles del reproductor y funciones para el seguimiento de anuncios del lado del cliente
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls"></a>

MediaTailor Los metadatos de seguimiento del lado del cliente admiten varios controles y funciones del reproductor. En la siguiente lista se describen los controles de reproductor más populares.

**Topics**
+ [Fregando](#ad-reporting-client-side-ad-tracking-schema-player-controls-scrubbing)
+ [Agrega un temporizador de cuenta regresiva](#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-countdown-timer)
+ [Anuncios que se pueden omitir](#ad-reporting-client-side-ad-tracking-schema-player-controls-skippable-ads)
+ [Cómo hacer clic en el anuncio](#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-clickthrough)
+ [Anuncios complementarios](#ad-reporting-client-side-ad-tracking-schema-player-controls-companion-ads)
+ [Anuncios interactivos (SIMID)](#ad-reporting-client-side-ad-tracking-schema-player-controls-simid-ads)
+ [Anuncios interactivos (VPAID)](#ad-reporting-client-side-ad-tracking-schema-player-controls-vpaid-ads)
+ [Iconos de Google ¿Por qué este anuncio? (WTA)](#ad-reporting-client-side-ad-tracking-schema-player-controls-google-wta)

## Fregando
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-scrubbing"></a>

Para mejorar la experiencia de reproducción, el reproductor puede mostrar las posiciones de los anuncios en la línea de tiempo de reproducción. MediaTailor hace que estas posiciones de anuncios estén disponibles en forma de `startTimeInSeconds` valores en la respuesta de seguimiento del cliente.

**nota**  
Algunos proveedores de streaming impiden eliminar la posición de un anuncio.

![\[Captura de pantalla que muestra MediaTailor las posiciones marcadas en la cronología del vídeo en las que se reproducen los anuncios.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/scrubbing.png)


La siguiente respuesta JSON de la carga útil de seguimiento del lado del cliente muestra la hora de inicio disponible (pausa publicitaria) dentro del objeto JSON raíz de la matriz avails. El jugador utiliza estos datos para mostrar la ubicación de la pausa publicitaria en la cronología del jugador, a los 28 segundos.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [...],
      "availId": "7",
      "availProgramDateTime": null,
      "duration": "PT30S",
      "durationInSeconds": 30,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT28S",
      "startTimeInSeconds": 28
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMk0zNC44NjhTXzIwMjMtMDctMjFUMjA6MjM6MDcuNzc1NzE2MzAyWl8x",
  "nonLinearAvails": []
}
```

## Agrega un temporizador de cuenta regresiva
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-ad-countdown-timer"></a>

Con él MediaTailor , puedes usar un temporizador de cuenta regresiva para anuncios para ayudar a mantener a tu audiencia interesada durante las pausas publicitarias. El público puede usar el temporizador para saber cuándo termina la pausa publicitaria y cuándo se reanuda su programa.

![\[Captura de pantalla en la que se MediaTailor muestra un temporizador de cuenta regresiva para anuncios, que indica a la audiencia el tiempo que queda hasta que se reanude el programa.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/ad-countdown-timer.png)


Los elementos de los metadatos de seguimiento del lado del cliente que intervienen en el temporizador de cuenta regresiva de los anuncios son`startTime`,, y. `startTimeInSeconds` `duration` `durationInSeconds` El reproductor utiliza estos metadatos, junto con el tiempo transcurrido de la sesión, del que realiza un seguimiento por separado, para determinar cuándo mostrar el temporizador y el valor a partir del cual se debe realizar la cuenta regresiva.

La siguiente respuesta JSON de la carga útil de seguimiento del lado del cliente muestra la información necesaria para mostrar el temporizador de cuenta regresiva de un anuncio.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [...],
      "availId": "7",
      "availProgramDateTime": null,
      "duration": "PT30S",
      "durationInSeconds": 30,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT28S",
      "startTimeInSeconds": 28
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMk0zNC44NjhTXzIwMjMtMDctMjFUMjA6MjM6MDcuNzc1NzE2MzAyWl8x",
  "nonLinearAvails": []
}
```

Cuando el tiempo transcurrido por la sesión alcanza la hora de inicio de la sesión, el jugador muestra un temporizador de cuenta regresiva con un valor que coincide con la duración de la sesión. El valor del temporizador de cuenta regresiva disminuye a medida que el tiempo transcurrido supera la hora de inicio de la partida.

**Example fórmula: temporizador de cuenta regresiva para HLS (en vivo y VOD) y DASH (VOD)**  
+ `session_start_time`= la suma de todos los valores de `EXT-INF` duración: el valor de duración de las tres secuencias multimedia más recientes `EXT-INF`
+ valor del temporizador = `duration` - (`session_elapsed_time`-`startTime`)

![\[Diagrama que muestra el cálculo del temporizador de la cuenta regresiva de los anuncios, en función de la hora de inicio de la sesión y la hora de inicio de la sesión, para los manifiestos HLS (en directo y VOD) y DASH (VOD).\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/ad-countdown-timer-hls-dash-vod.png)


**Example fórmula: temporizador de cuenta regresiva para DASH (en vivo)**  
+ `session_start_time`= (el segmento más reciente `startTime` \$1`duration`)/- `timescale` `MPD@suggestedPresentationDelay`
+ valor del temporizador = `duration` - (`session_elapsed_time`-`startTime`)

![\[Diagrama que muestra el cálculo del temporizador de la cuenta regresiva de los anuncios, en función de la hora de inicio de la sesión y la hora de inicio de la sesión, para los manifiestos de DASH en vivo.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/ad-countdown-timer-dash-live.png)


## Anuncios que se pueden omitir
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-skippable-ads"></a>

Los *anuncios que se pueden omitir* son espacios publicitarios que permiten al espectador saltarse parte del anuncio para volver a ver el programa. En VAST, el `Linear@skipOffset` atributo identifica un anuncio que se puede omitir. 

La siguiente respuesta de VAST muestra cómo utilizar un anuncio que se puede omitir:

```
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad>
    <InLine>
      ...
      <Creatives>
        <Creative id="1" sequence="1">
          <Linear skipoffset="00:00:05">
            <Duration>00:00:15</Duration>
            <MediaFiles>
              <MediaFile id="EMT" delivery="progressive" width="640" height="360" type="video/mp4" bitrate="143" scalable="true" maintainAspectRatio="true"><![CDATA[https://ads.com/file.mp4]]></MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
      ...
    </InLine>
  </Ad>
</VAST>
```

La siguiente respuesta JSON de la carga útil de seguimiento del lado del cliente muestra los metadatos del anuncio dentro de la matriz. `ads` La matriz contiene el `skipOffset` valor MediaTailor obtenido de la respuesta VAST.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "1",
          "adParameters": "",
          "adProgramDateTime": "2023-07-31T16:11:40.693Z",
          "adSystem": "2.0",
          "adTitle": "AD-skiing-15",
          "adVerifications": [],
          "companionAds": [...],
          "creativeId": "1",
          "creativeSequence": "1",
          "duration": "PT15.015S",
          "durationInSeconds": 15.015,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": "00:00:05",
          "startTime": "PT9.943S",
          "startTimeInSeconds": 9.943,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://adserverbeaconing.com/v1/impression"
              ],
              "duration": "PT15.015S",
              "durationInSeconds": 15.015,
              "eventId": "2697726",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT9.943S",
              "startTimeInSeconds": 9.943
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "2697726",
      "availProgramDateTime": "2023-07-31T16:11:40.693Z",
      "duration": "PT15.015S",
      "durationInSeconds": 15.015,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT9.943S",
      "startTimeInSeconds": 9.943
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "",
  "nonLinearAvails": []
}
```

## Cómo hacer clic en el anuncio
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-ad-clickthrough"></a>

Los clics URIs permiten a los anunciantes medir el éxito de un anuncio a la hora de captar la atención de los espectadores. Cuando un espectador hace clic en el fotograma de vídeo activo de un anuncio en curso, un navegador web abre el URI de la página de inicio o de la página de destino de la campaña del anunciante. El desarrollador del reproductor determina el comportamiento de los clics, por ejemplo, superponiendo un botón o una etiqueta en el vídeo del anuncio con un mensaje para hacer clic y obtener más información. Los desarrolladores de reproductores suelen pausar el vídeo del anuncio después de que los espectadores hagan clic en el fotograma de vídeo activo.

![\[Captura de pantalla de un reproductor de vídeo en el que se hace clic en un anuncio. Los espectadores hacen clic en el fotograma del vídeo. El reproductor detiene el vídeo y, a continuación, abre un navegador web para dirigir al espectador a la página de inicio o a la página de destino de la campaña del anunciante.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/ad-clickthrough.png)


MediaTailor puede analizar y hacer que esté disponible cualquier evento lineal en el que se produzca un clic en un vídeo que aparezca en la respuesta de URLs VAST. La siguiente respuesta de VAST muestra un ejemplo de cómo se ha hecho clic en un anuncio.

```
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad>
    <InLine>
      ...
      <Creatives>
        <Creative id="1" sequence="1">
          <Linear>
            <Duration>00:00:15</Duration>
            <MediaFiles>
              <MediaFile id="EMT" delivery="progressive" width="1280" height="720" type="video/mp4" bitrate="143" scalable="true" maintainAspectRatio="true"><![CDATA[https://ads.com/file.mp4]]></MediaFile>
            </MediaFiles>
            <VideoClicks>
              <ClickThrough id="EMT"><![CDATA[https://aws.amazon.com]]></ClickThrough>
              <ClickTracking id="EMT"><![CDATA[https://myads.com/beaconing/event=clicktracking]]></ClickTracking>
            </VideoClicks>
          </Linear>
        </Creative>
      </Creatives>
      ...
    </InLine>
  </Ad>
</VAST>
```

La siguiente respuesta JSON de la carga útil de seguimiento del lado del cliente MediaTailor muestra cómo se muestran los clics y el seguimiento de los clics dentro de la matriz. URLs `trackingEvents` El tipo de `clickThrough` evento representa el anuncio que recibe los clics y el tipo de evento representa la URL de seguimiento de los clics. `clickTracking`

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "1",
          "adParameters": "",
          "adProgramDateTime": "2023-07-31T16:53:40.577Z",
          "adSystem": "2.0",
          "adTitle": "1",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "00006",
          "creativeSequence": "1",
          "duration": "PT14.982S",
          "durationInSeconds": 14.982,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT39.339S",
          "startTimeInSeconds": 39.339,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=impression"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://aws.amazon.com"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "clickThrough",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=clicktracking"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698795",
              "eventProgramDateTime": null,
              "eventType": "clickTracking",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "2698188",
      "availProgramDateTime": "2023-07-31T16:53:40.577Z",
      "duration": "PT14.982S",
      "durationInSeconds": 14.982,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT39.339S",
      "startTimeInSeconds": 39.339
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQzOS4zMzlTXzIwMjMtMDctMzFUMTY6NTQ6MDQuODA1Mzk2NTI5Wl8x",
  "nonLinearAvails": []
}
```

## Anuncios complementarios
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-companion-ads"></a>

*Aparece un anuncio complementario* junto a una creatividad lineal. Utiliza anuncios complementarios para aumentar la eficacia de un anuncio publicitario al mostrar información sobre el producto, el logotipo y la marca. El anuncio gráfico puede incluir códigos de respuesta rápida (QR) y áreas en las que se pueda hacer clic para fomentar la participación de la audiencia.

MediaTailor admite anuncios complementarios en la respuesta de VAST. Puede pasar por los metadatos de `StaticResource` los `HTMLResource` nodos y de los nodos, respectivamente. `iFrameResource`

La siguiente respuesta de VAST muestra un ejemplo de ubicación y formato del anuncio lineal y del anuncio complementario.

```
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad>
    <InLine>
      ...
      <Creatives>
        <Creative id="1" sequence="1">
          <Linear>
            <Duration>00:00:10</Duration>
            <MediaFiles>
              <MediaFile id="EMT" delivery="progressive" width="640" height="360" type="video/mp4" bitrate="143" scalable="true" maintainAspectRatio="true"><![CDATA[https://ads.com/file.mp4]]></MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
        <Creative id="2" sequence="1">
          <CompanionAds>
            <Companion id="2" width="300" height="250">
              <StaticResource creativeType="image/png"><![CDATA[https://emt.com/companion/9973499273]]></StaticResource>
              <TrackingEvents>
                <Tracking event="creativeView"><![CDATA[https://beacon.com/1]]></Tracking>
              </TrackingEvents>
              <CompanionClickThrough><![CDATA[https://beacon.com/2]]></CompanionClickThrough>
            </Companion>
            <Companion id="3" width="728" height="90">
              <StaticResource creativeType="image/png"><![CDATA[https://emt.com/companion/1238901823]]></StaticResource>
              <TrackingEvents>
                <Tracking event="creativeView"><![CDATA[https://beacon.com/3]]></Tracking>
              </TrackingEvents>
              <CompanionClickThrough><![CDATA[https://beacon.com/4]]></CompanionClickThrough>
            </Companion>
          </CompanionAds>
        </Creative>
      </Creatives>
      ...
    </InLine>
  </Ad>
</VAST>
```

Los datos aparecen en la respuesta de seguimiento del cliente de la `/avail/x/ads/y/companionAds` lista. Cada creatividad lineal puede contener hasta 6 anuncios complementarios. Como se muestra en el ejemplo siguiente, los anuncios complementarios aparecen en una lista

**nota**  
Como práctica recomendada, los desarrolladores de aplicaciones deberían implementar una lógica para eliminar o descargar de forma explícita el anuncio complementario al final de la creatividad.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "0",
          "adParameters": "",
          "adProgramDateTime": null,
          "adSystem": "EMT",
          "adTitle": "sample",
          "adVerifications": [],
          "companionAds": [
            {
              "adParameters": null,
              "altText": null,
              "attributes": {
                "adSlotId": null,
                "apiFramework": null,
                "assetHeight": null,
                "assetWidth": null,
                "expandedHeight": null,
                "expandedWidth": null,
                "height": "250",
                "id": "2",
                "pxratio": null,
                "renderingMode": null,
                "width": "300"
              },
              "companionClickThrough": "https://beacon.com/2",  
              "companionClickTracking": null,
              "htmlResource": null,
              "iFrameResource": null,
              "sequence": "1",
              "staticResource": "https://emt.com/companion/9973499273",
              "trackingEvents": [
                {
                  "beaconUrls": [
                    "https://beacon.com/1"
                  ],
                  "eventType": "creativeView"
                }
              ]
            },
            {
              "adParameters": null,
              "altText": null,
              "attributes": {
                "adSlotId": null,
                "apiFramework": null,
                "assetHeight": null,
                "assetWidth": null,
                "expandedHeight": null,
                "expandedWidth": null,
                "height": "90",
                "id": "3",
                "pxratio": null,
                "renderingMode": null,
                "width": "728"
              },
              "companionClickThrough": "https://beacon.com/4",
              "companionClickTracking": null,
              "htmlResource": null,
              "iFrameResource": null,
              "sequence": "1",
              "staticResource": "https://emt.com/companion/1238901823",
              "trackingEvents": [
                {
                  "beaconUrls": [
                    "https://beacon.com/3"
                  ],
                  "eventType": "creativeView"
                }
              ]
            }
          ],
          "creativeId": "1",
          "creativeSequence": "1",
          "duration": "PT10S",
          "durationInSeconds": 10,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT0S",
          "startTimeInSeconds": 0,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://beacon.com/impression/1"
              ],
              "duration": "PT10S",
              "durationInSeconds": 10,
              "eventId": "0",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT0S",
              "startTimeInSeconds": 0
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "0",
      "availProgramDateTime": null,
      "duration": "PT10S",
      "durationInSeconds": 10,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT0S",
      "startTimeInSeconds": 0
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMFNfMjAyMy0wNy0wNlQyMToxMDowOC42NzQ4NDA1NjJaXzE%3D",
  "nonLinearAvails": []
}
```

## Anuncios interactivos (SIMID)
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-simid-ads"></a>

*SecureInteractive La definición de interfaz multimedia* (SIMID) es un estándar para la publicidad interactiva que se introdujo en el estándar VAST 4.x de la Oficina de Publicidad Interactiva (IAB). SIMID desvincula la carga de elementos interactivos de la creatividad lineal principal en el reproductor, y hace referencia a ambas en la respuesta de VAST. MediaTailor incorpora la creatividad principal para mantener la experiencia de reproducción y coloca los metadatos de los componentes interactivos en la respuesta de seguimiento del lado del cliente.

En el siguiente ejemplo de respuesta VAST 4, la carga útil SIMID está dentro del nodo. `InteractiveCreativeFile`

```
<?xml version="1.0"?>
<VAST xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad id="1234567">
    <InLine>
      <AdSystem>SampleAdSystem</AdSystem>
      <AdTitle>Linear SIMID Example</AdTitle>
      <Description>SIMID example</Description>
      <Error>https://www.beacons.com/error</Error>
      <Impression>https://www.beacons.com/impression</Impression>
      <Creatives>
        <Creative sequence="1">
          <Linear>
            <Duration>00:00:15</Duration>
            <TrackingEvents>
                ...
            </TrackingEvents>
            <VideoClicks>
              <ClickThrough id="123">https://aws.amazon.com</ClickThrough>
              <ClickTracking id="123">https://www.beacons.com/click</ClickTracking>
            </VideoClicks>
            <MediaFiles>
              <MediaFile delivery="progressive" type="video/mp4">
                                https://interactive-ads.com/interactive-media-ad-sample/media/file.mp4
                            </MediaFile>
              <InteractiveCreativeFile type="text/html" apiFramework="SIMID" variableDuration="true">
                                https://interactive-ads.com/interactive-media-ad-sample/sample_simid.html
                            </InteractiveCreativeFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
    </InLine>
  </Ad>
</VAST>
```

En la siguiente respuesta del VAST 3, la carga útil SIMID está dentro del nodo. `Extensions`

```
<?xml version="1.0"?>
<VAST xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad id="1234567">
    <InLine>
      <AdSystem>SampleAdSystem</AdSystem>
      <AdTitle>Linear SIMID Example</AdTitle>
      <Description>SIMID example</Description>
      <Impression>https://www.beacons.com/impression</Impression>
      <Creatives>
        <Creative id="1" sequence="1">
          <Linear>
            <Duration>00:00:15</Duration>
            <TrackingEvents>
                ...
            </TrackingEvents>
            <VideoClicks>
              <ClickThrough id="123">https://aws.amazon.com</ClickThrough>
              <ClickTracking id="123">https://myads.com/beaconing/event=clicktracking</ClickTracking>
            </VideoClicks>
            <MediaFiles>
              <MediaFile delivery="progressive" type="video/mp4">
                                https://interactive-ads.com/interactive-media-ad-sample/media/file.mp4
                            </MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
      <Extensions>
        <Extension type="InteractiveCreativeFile">
          <InteractiveCreativeFile type="text/html" apiFramework="SIMID" variableDuration="true">
            https://interactive-ads.com/interactive-media-ad-sample/sample_simid.html
          </InteractiveCreativeFile>
        </Extension>
      </Extensions>
    </InLine>
  </Ad>
</VAST>
```

En la siguiente respuesta de seguimiento del lado del cliente, los datos del SIMID aparecen en la lista. `/avails/x/ads/y/extensions`

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "1",
          "adParameters": "",
          "adProgramDateTime": "2023-07-31T16:53:40.577Z",
          "adSystem": "2.0",
          "adTitle": "Linear SIMID Example",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "1",
          "creativeSequence": "1",
          "duration": "PT14.982S",
          "durationInSeconds": 14.982,
          "extensions": [
            {
              "content": "<InteractiveCreativeFile type=\"text/html\" apiFramework=\"SIMID\" variableDuration=\"true\">\nhttps://interactive-ads.com/interactive-media-ad-sample/sample_simid.html</InteractiveCreativeFile>",
              "type": "InteractiveCreativeFile"
            }
          ],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT39.339S",
          "startTimeInSeconds": 39.339,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=impression"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://aws.amazon.com"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "clickThrough",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=clicktracking"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698795",
              "eventProgramDateTime": null,
              "eventType": "clickTracking",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "2698188",
      "availProgramDateTime": "2023-07-31T16:53:40.577Z",
      "duration": "PT14.982S",
      "durationInSeconds": 14.982,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT39.339S",
      "startTimeInSeconds": 39.339
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQzOS4zMzlTXzIwMjMtMDctMzFUMTY6NTQ6MDQuODA1Mzk2NTI5Wl8x",
  "nonLinearAvails": []
}
```

## Anuncios interactivos (VPAID)
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-vpaid-ads"></a>

La *definición de interfaz de anuncios del reproductor de vídeo* (VPAID) especifica el protocolo entre el anuncio y el reproductor de vídeo que permite la interactividad del anuncio y otras funciones. En el caso de las retransmisiones en directo, MediaTailor es compatible con el formato VPAID, ya que agrupa los segmentos de la lista durante la emisión y coloca los metadatos de las creatividades VPAID en la respuesta de seguimiento del cliente que consume el reproductor de vídeo. El reproductor descarga los archivos VPAID, reproduce la creatividad lineal y ejecuta los guiones del cliente. El jugador *no* debería reproducir nunca los segmentos de la lista.

**nota**  
VPAID está en desuso a partir de VAST 4.1.

![\[Diagrama de reproducción de anuncios en VPAID. MediaTailor agrupa segmentos de pizarra durante el tiempo disponible en la cronología del contenido. El reproductor pasa al activo VPAID durante el tiempo que dure la disponibilidad.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/interactive-ads-vpaid.png)


En el siguiente ejemplo, se muestra el contenido de VPAID de la respuesta VAST.

```
<?xml version="1.0"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad id="1234567">
    <InLine>
      <AdSystem>GDFP</AdSystem>
      <AdTitle>VPAID</AdTitle>
      <Description>Vpaid Linear Video Ad</Description>
      <Error>http://www.example.com/error</Error>
      <Impression>http://www.example.com/impression</Impression>
      <Creatives>
        <Creative sequence="1">
          <Linear>
            <Duration>00:00:00</Duration>
            <TrackingEvents>
              <Tracking event="start">http://www.example.com/start</Tracking>
              <Tracking event="firstQuartile">http://www.example.com/firstQuartile</Tracking>
              <Tracking event="midpoint">http://www.example.com/midpoint</Tracking>
              <Tracking event="thirdQuartile">http://www.example.com/thirdQuartile</Tracking>
              <Tracking event="complete">http://www.example.com/complete</Tracking>
              <Tracking event="mute">http://www.example.com/mute</Tracking>
              <Tracking event="unmute">http://www.example.com/unmute</Tracking>
              <Tracking event="rewind">http://www.example.com/rewind</Tracking>
              <Tracking event="pause">http://www.example.com/pause</Tracking>
              <Tracking event="resume">http://www.example.com/resume</Tracking>
              <Tracking event="fullscreen">http://www.example.com/fullscreen</Tracking>
              <Tracking event="creativeView">http://www.example.com/creativeView</Tracking>
              <Tracking event="acceptInvitation">http://www.example.com/acceptInvitation</Tracking>
            </TrackingEvents>
            <AdParameters><![CDATA[ {"videos":[ {"url":"https://my-ads.com/interactive-media-ads/media/media_linear_VPAID.mp4","mimetype":"video/mp4"}]} ]]></AdParameters>
            <VideoClicks>
              <ClickThrough id="123">http://google.com</ClickThrough>
              <ClickTracking id="123">http://www.example.com/click</ClickTracking>
            </VideoClicks>
            <MediaFiles>
              <MediaFile delivery="progressive" apiFramework="VPAID" type="application/javascript" width="640" height="480"> https://googleads.github.io/googleads-ima-html5/vpaid/linear/VpaidVideoAd.js </MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
    </InLine>
  </Ad>
</VAST>
```

El siguiente ejemplo muestra la información de seguimiento.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "1",
          "adParameters": "",
          "adProgramDateTime": "2023-07-31T16:53:40.577Z",
          "adSystem": "2.0",
          "adTitle": "1",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "00006",
          "creativeSequence": "1",
          "duration": "PT14.982S",
          "durationInSeconds": 14.982,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT39.339S",
          "startTimeInSeconds": 39.339,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=impression"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://aws.amazon.com"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "clickThrough",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=clicktracking"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698795",
              "eventProgramDateTime": null,
              "eventType": "clickTracking",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "2698188",
      "availProgramDateTime": "2023-07-31T16:53:40.577Z",
      "duration": "PT14.982S",
      "durationInSeconds": 14.982,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT39.339S",
      "startTimeInSeconds": 39.339
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQzOS4zMzlTXzIwMjMtMDctMzFUMTY6NTQ6MDQuODA1Mzk2NTI5Wl8x",
  "nonLinearAvails": []
}{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "2922274",
          "adParameters": "",
          "adProgramDateTime": "2023-08-14T19:49:53.998Z",
          "adSystem": "Innovid Ads",
          "adTitle": "VPAID",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "",
          "creativeSequence": "",
          "duration": "PT16.016S",
          "durationInSeconds": 16.016,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [
              {
                "apiFramework": "VPAID",
                "bitrate": 0,
                "codec": null,
                "delivery": "progressive",
                "height": 9,
                "id": "",
                "maintainAspectRatio": false,
                "maxBitrate": 0,
                "mediaFileUri": "http://my-ads.com/mobileapps/js/vpaid/1h41kg?cb=178344c0-8e67-281a-58ca-962e4987cd60&deviceid=&ivc=",
                "mediaType": "application/javascript",
                "minBitrate": 0,
                "scalable": false,
                "width": 16
              }
            ],
            "mezzanine": "http://my-ads.com/mobileapps/js/vpaid/1h41kg?cb=178344c0-8e67-281a-58ca-962e4987cd60&deviceid=&ivc="
          },
          "skipOffset": null,
          "startTime": "PT8M42.289S",
          "startTimeInSeconds": 522.289,
          "trackingEvents": [
            {
              "beaconUrls": [
                "about:blank"
              ],
              "duration": "PT16.016S",
              "durationInSeconds": 16.016,
              "eventId": "2922274",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT8M42.289S",
              "startTimeInSeconds": 522.289
            }
          ],
          "vastAdId": "1h41kg"
        }
      ],
      "availId": "2922274",
      "availProgramDateTime": "2023-08-14T19:49:53.998Z",
      "duration": "PT16.016S",
      "durationInSeconds": 16.016,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT8M42.289S",
      "startTimeInSeconds": 522.289
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQ4TTQyLjI4OVNfMjAyMy0wOC0xNFQxOTo1MDo0MS4zOTc5MjAzODVaXzE%3D",
  "nonLinearAvails": []
}
```

## Iconos de Google ¿Por qué este anuncio? (WTA)
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-google-wta"></a>

*AdChoices*es un estándar del sector que proporciona a los espectadores información sobre los anuncios que ven, incluida la forma en que los segmentaron.

![\[Logotipo de Google Why This Ad (WTA). La WTA informa a los espectadores sobre los anuncios que ven, incluida la forma en que se orientaron a ellos.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/google-wta.png)


La API de seguimiento MediaTailor del lado del cliente admite los metadatos de los iconos incluidos en el nodo de extensiones VAST de la respuesta VAST. Para obtener más información sobre la WTA en la respuesta VAST, consulta [este ejemplo de respuesta XML de VAST](https://storage.googleapis.com/interactive-media-ads/ad-tags/ima_wta_sample_vast_3.xml).

**nota**  
MediaTailor actualmente solo es compatible con la versión 3 de VAST.

```
<VAST>
    <Ad>  
    <InLine>  
       ...
      <Extensions>
        <Extension type="IconClickFallbackImages">
          <IconClickFallbackImages program="GoogleWhyThisAd">
            <IconClickFallbackImage width="400" height="150">
              <AltText>Alt icon fallback</AltText>
              <StaticResource creativeType="image/png"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png]]></StaticResource>
            </IconClickFallbackImage>
          </IconClickFallbackImages>
          <IconClickFallbackImages program="AdChoices">
            <IconClickFallbackImage width="400" height="150">
              <AltText>Alt icon fallback</AltText>
              <StaticResource creativeType="image/png"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=1x]]></StaticResource>
            </IconClickFallbackImage>
            <IconClickFallbackImage width="800" height="300">
              <AltText>Alt icon fallback</AltText>
              <StaticResource creativeType="image/png"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=2x]]></StaticResource>
            </IconClickFallbackImage>
          </IconClickFallbackImages>
        </Extension>
      </Extensions>
    </InLine>
  </Ad>
</VAST>
```

El siguiente ejemplo muestra la respuesta de seguimiento del lado del cliente en la `/avails/x/ads/y/extensions` lista.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "0",
          "adParameters": "",
          "adProgramDateTime": null,
          "adSystem": "GDFP",
          "adTitle": "Google Why This Ad VAST 3 Sample",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "7891011",
          "creativeSequence": "1",
          "duration": "PT10S",
          "durationInSeconds": 10,
          "extensions": [
            {
              "content": "<IconClickFallbackImages program=\"GoogleWhyThisAd\">      
                          <IconClickFallbackImage height=\"150\" width=\"400\">      
                          <AltText>Alt icon fallback</AltText>      
                          <StaticResource creativeType=\"image/png\"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png]]>
                          </StaticResource>     
                          </IconClickFallbackImage>    
                          </IconClickFallbackImages>     
                          <IconClickFallbackImages program=\"AdChoices\">     
                          <IconClickFallbackImage height=\"150\" width=\"400\">     
                          <AltText>Alt icon fallback</AltText>       
                          <StaticResource creativeType=\"image/png\"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=1x]]>
                          </StaticResource>      
                          </IconClickFallbackImage>      
                          <IconClickFallbackImage height=\"300\" width=\"800\">       
                          <AltText>Alt icon fallback</AltText>       
                          <StaticResource creativeType=\"image/png\"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=2x]]>
                          </StaticResource>      
                          </IconClickFallbackImage>     
                          </IconClickFallbackImages>",
              "type": "IconClickFallbackImages"
            }
          ],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": "00:00:03",
          "startTime": "PT0S",
          "startTimeInSeconds": 0,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://example.com/view"
              ],
              "duration": "PT10S",
              "durationInSeconds": 10,
              "eventId": "0",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT0S",
              "startTimeInSeconds": 0
            }
          ],
          "vastAdId": "123456"
        }
      ],
      "availId": "0",
      "availProgramDateTime": null,
      "duration": "PT10S",
      "durationInSeconds": 10,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT0S",
      "startTimeInSeconds": 0
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMFNfMjAyMy0wNy0wNlQyMDo0MToxNy45NDE4MDM0NDhaXzE%3D",
  "nonLinearAvails": []
}
```

# Balizamiento del lado del cliente
<a name="ad-reporting-client-side-beaconing"></a>

El `startTimeInSeconds` elemento de seguimiento del lado del cliente se puede utilizar para facilitar la sincronización de las balizas. MediaTailor 

La siguiente respuesta de JSON muestra los principales tipos de balizas: impresiones, inicio, cuartiles y finalización.

**nota**  
Las directrices de medición de la impresión de vídeo de la Interactive Advertising Bureau (IAB) establecen que una impresión requiere que el contenido del anuncio se cargue en el lado del cliente y, como mínimo, comience a renderizarse en el reproductor. Para obtener más información, consulte la [plantilla de publicación de anuncios de vídeo digital (VAST)](https://www.iab.com/guidelines/vast/) en el sitio web de la IAB.

```
{
  "avails": [
    {
      "ads": [
        {
          "adId": "8104385",
          "duration": "PT15.100000078S",
          "durationInSeconds": 15.1,
          "startTime": "PT17.817798612S",
          "startTimeInSeconds": 17.817,
          "trackingEvents": [
          {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=impression"
              ],
              "duration": "PT15.100000078S",
              "durationInSeconds": 15.1,
              "eventId": "8104385",
              "eventType": "impression",
              "startTime": "PT17.817798612S",
              "startTimeInSeconds": 17.817
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=start"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104385",
              "eventType": "start",
              "startTime": "PT17.817798612S",
              "startTimeInSeconds": 17.817
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=firstQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104386",
              "eventType": "firstQuartile",
              "startTime": "PT21.592798631S",
              "startTimeInSeconds": 21.592
            },
             {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=midpoint"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104387",
              "eventType": "midpoint",
              "startTime": "PT25.367798651S",
              "startTimeInSeconds": 25.367
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=thirdQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104388",
              "eventType": "thirdQuartile",
              "startTime": "PT29.14279867S",
              "startTimeInSeconds": 29.142
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=complete"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104390",
              "eventType": "complete",
              "startTime": "PT32.91779869S",
              "startTimeInSeconds": 32.917
            }
          ]
        }
      ],
      "availId": "8104385",
      "duration": "PT15.100000078S",
      "durationInSeconds": 15.1,
      "startTime": "PT17.817798612S",
      "startTimeInSeconds": 17.817
    }
  ]
}
```

# Modo híbrido con balizas publicitarias del lado del servidor
<a name="ad-reporting-hybrid-mode"></a>

MediaTailor admite un modo híbrido para el seguimiento de las sesiones. En este modo, el servicio emite eventos de seguimiento de anuncios relacionados con la reproducción, pero pone a disposición de la sesión toda la carga útil de seguimiento del lado del cliente

Para habilitar el seguimiento híbrido mediante prefijos de reproducción, inicie desde el reproductor una nueva sesión de MediaTailor reproducción mediante una solicitud en uno de los siguientes formatos, según su protocolo:

**Example : formato HLS**  

```
POST master.m3u8
    {
        "adsParams": {
           "deviceType": "ipad"
       },
       "reportingMode":"server"
    }
```

**Example : Formato DASH**  

```
POST manifest.mpd
    {
        "adsParams": {
           "deviceType": "ipad"
       },
       "reportingMode":"server"
    }
```

MediaTailor mantiene los siguientes eventos de seguimiento en modo híbrido:
+ Impresión
+ Inicio
+ Primer cuartil
+ Midpoint
+ Tercer cuartil
+ Completado
+ `breakStart`(vmap)
+ `breakEnd`(vmap)

# Integraciones de seguimiento de anuncios del lado del cliente
<a name="ad-reporting-client-side-ad-tracking-integrations"></a>

En esta sección se describen las integraciones entre varios servidores de seguimiento de anuncios del lado del cliente MediaTailor y entre ellos.

**Topics**
+ [Abra el SDK de medición](#ad-reporting-client-side-ad-tracking-integrations-open-measurement-sdk)
+ [Reproductor gratuito Datazoom SDKs](#ad-reporting-client-side-ad-tracking-integrations-dz)
+ [Roku Advertising Framework (RAF)](#ad-reporting-client-side-ad-tracking-integrations-raf)
+ [TheoPlayer](#ad-reporting-client-side-ad-tracking-integrations-theoplayer)
+ [MediaTailor SDK](#ad-reporting-client-side-ad-tracking-integrations-mediatailor-sdk)

## Abra el SDK de medición
<a name="ad-reporting-client-side-ad-tracking-integrations-open-measurement-sdk"></a>

El SDK Open Measurement (OM SDK) de la Oficina de Publicidad Interactiva (IAB) facilita la medición de la visibilidad y la verificación por parte de terceros de los anuncios publicados en entornos de vídeo web y aplicaciones nativas.

En el caso de los documentos antiguos de la versión 3 de VAST, el código de verificación debe cargarse con el nodo de extensión, con el tipo de extensión. `AdVerifications` La raíz del nodo de extensión es un `AdVerifications` nodo con el mismo esquema que el elemento VAST 4.1.

Para facilitar la adopción del SDK OM, se MediaTailor ha asociado con Datazoom para ofrecer SDKs reproductores gratuitos configurados y verificados para Open Measurement. Para obtener más información, consulte [Reproductor gratuito Datazoom SDKs](#ad-reporting-client-side-ad-tracking-integrations-dz).

**nota**  
MediaTailor actualmente solo es compatible con la versión 3 de VAST.

**Example : nodo de verificación en VAST 3, anterior a la versión 4.1**  

```
...
<Extensions>
    <Extension type="AdVerifications">
        <AdVerifications>
            <Verification vendor="company.com-omid">
                <JavaScriptResource apiFramework="omid" browserOptional="true">
                    <![CDATA[https://verification.com/omid_verification.js]]>
                </JavaScriptResource>
                <TrackingEvents>
                    <Tracking event="verificationNotExecuted">
                        <![CDATA[https://verification.com/trackingurl]]>
                    </Tracking>
                </TrackingEvents>
                <VerificationParameters>
                    <![CDATA[verification params key/value pairs]]>
                </VerificationParameters>
            </Verification>
        </AdVerifications>
    </Extension>
</Extensions>
```

MediaTailor extrae los `AdVerifications` datos del `<Extensions>` nodo y los coloca en la `adVerifications` matriz en la respuesta de seguimiento del lado del cliente.

**Example : matriz de AdVerifications en la respuesta de seguimiento del lado del cliente**  

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "3062770",
          "adParameters": "",
          "adProgramDateTime": "2023-08-23T16:25:40.914Z",
          "adSystem": "2.0",
          "adTitle": "AD-polarbear-15",
          "adVerifications": [
            {
              "executableResource": [],
              "javaScriptResource": [
                {
                  "apiFramework": "omid",
                  "browserOptional": "true",
                  "uri": "https://verification.com/omid_verification.js"
                }
              ],
              "trackingEvents": [
                {
                  "event": "verificationNotExecuted",
                  "uri": "https://verification.com/trackingurl"
                }
              ],
              "vendor": "company.com-omid",
              "verificationParameters": "verification params key value pairs"
            }
          ],
          "companionAds": [],
          "creativeId": "00006",
          "creativeSequence": "1",
          "duration": "PT14.982S",
          "durationInSeconds": 14.982,
          "extensions": [
            {
              "content": "<AdVerifications>\n\t\t\t\t\t\t<Verification vendor=\"company.com-omid\">\n\t\t\t\t\t\t\t<JavaScriptResource apiFramework=\"omid\" browserOptional=\"true\"><![CDATA[https://verification.com/omid_verification.js;]]></JavaScriptResource>\n\t\t\t\t\t\t\t<TrackingEvents>\n\t\t\t\t\t\t\t\t<Tracking event=\"verificationNotExecuted\"><![CDATA[;https://verification.com/trackingurl;]]></Tracking>\n\t\t\t\t\t\t\t</TrackingEvents>\n\t\t\t\t\t\t\t<VerificationParameters><![CDATA[verification params key/value pairs;]]></VerificationParameters>\n\t\t\t\t\t\t</Verification>\n\t\t\t\t\t</AdVerifications>",
              "type": "AdVerifications"
            }
          ],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT10.11S",
          "startTimeInSeconds": 10.11,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://n8ljfs0h09.execute-api.us-west-2.amazonaws.com/v1/impression"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "3062770",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT10.11S",
              "startTimeInSeconds": 10.11
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "3062770",
      "availProgramDateTime": "2023-08-23T16:25:40.914Z",
      "duration": "PT14.982S",
      "durationInSeconds": 14.982,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT10.11S",
      "startTimeInSeconds": 10.11
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMC4xMVNfMjAyMy0wOC0yM1QxNjoyNjoyNC4yNDYxMDIxOTBaXzE%3D",
  "nonLinearAvails": []
}
```

**nota**  
Póngase en contacto con el laboratorio tecnológico de la IAB para garantizar que las solicitudes se certifiquen anualmente para garantizar su conformidad.

Para obtener más información sobre el OM SDK, consulte [Open Measurement SDK](https://iabtechlab.com/standards/open-measurement-sdk/) en el sitio web del IAB Tech Lab.

## Reproductor gratuito Datazoom SDKs
<a name="ad-reporting-client-side-ad-tracking-integrations-dz"></a>

Para facilitar la adopción del reproductor SDKs, se MediaTailor ha asociado con Datazoom para ofrecer un reproductor gratuito SDKs que se configura y prueba con la [AWS Elemental MediaTailor Integración del lado del cliente con Google Ad Manager](gam-integration-pal.md) tecnología de IAB. [Abra el SDK de medición](#ad-reporting-client-side-ad-tracking-integrations-open-measurement-sdk)

El SDK del reproductor Datazoom es compatible con las siguientes funciones:
+ Listas de reproducción en directo y VOD
+ Especificaciones de DASH y HLS
+ Los fabricantes de reproductores admiten Bitmovin, exoplayer, reproductor multimedia Android, Apple AVPlayer, Brightcove, Chromecast Receiver, Dash.js, hls.js, Shaka player, THEO player, JWPlayer Video.js, Roku y más
+ La certificación de medición abierta del IAB Tech Lab, si está disponible en dispositivos seleccionados
+ Gestión de eventos mediante clics
+ Distribuidores de eventos publicitarios, como temporizadores de cuenta regresiva de anuncios, eventos no lineales y superpuestos de anuncios, inicio y finalización de pausas publicitarias
+ Del lado del cliente y balizamiento
+ El SDK de la biblioteca de acceso programático (PAL) de Google, como ajuste de configuración opcional

Datazoom también ofrece un servicio de telemetría y análisis de pago compatible con el jugador. SDKs Los clientes pueden activar y controlar la telemetría del SDK del reproductor desde la consola de administración de Datazoom. [Para acceder al reproductor Datazoom SDKs y obtener más información sobre el servicio de telemetría y análisis de valor añadido, utilice la información de contacto del sitio de Datazoom.](https://www.datazoom.io/partner-aws) 

## Roku Advertising Framework (RAF)
<a name="ad-reporting-client-side-ad-tracking-integrations-raf"></a>

El Roku Ad Framework (RAF) mantiene una experiencia publicitaria uniforme en toda la plataforma Roku. Todos los canales, incluidos los anuncios de vídeo, deben cumplir los requisitos de certificación de Roku para la RAF. En particular, la aplicación siempre debe utilizar la transmisión de eventos del lado del cliente a través de la RAF. MediaTailor, como proveedor de inserción de anuncios en el servidor (SSAI), admite la activación de eventos en el lado del cliente. Los adaptadores SSAI de RAFX proporcionan interfaces tanto para los servidores de manifiestos de SSAI, o Stitchers, como para RAF. Estas interfaces incluyen:
+ Analizar la `masterURL` respuesta y extraer `playURL` y `AdURL` añadir metadatos.
+ Transformar los metadatos de los anuncios del MediaTailor SSAI en metadatos de anuncios utilizables en RAF y configurar el RAF para su reproducción.
+ Observar los eventos de la transmisión y los metadatos cronometrados.
+ Hacer coincidir los eventos de la transmisión, los metadatos de los anuncios y los píxeles del evento de disparo a tiempo.
+ Haga ping o sondee`AdURL`, según lo requiera el servidor de manifiestos del MediaTailor SSAI, y, a continuación, analice y reconfigure la RAF.

Para obtener más información sobre los adaptadores SSAI para RAF, consulte [Implementación de la inserción de anuncios en el lado del servidor mediante adaptadores Roku](https://developer.roku.com/docs/developer-program/advertising/ssai-adapters.md) en el sitio web de Roku.

## TheoPlayer
<a name="ad-reporting-client-side-ad-tracking-integrations-theoplayer"></a>

TheoPlayer la integración con MediaTailor hace lo siguiente:
+ Proporciona una funcionalidad que permite el seguimiento de eventos por MediaTailor parte del cliente para HLS y DASH, tanto para flujos de trabajo a la carta como en directo.
+ Admite el envío de balizas de seguimiento solo para anuncios lineales.
+ Desactiva la búsqueda durante un anuncio. Sin embargo, no existe ninguna lógica para reproducir un anuncio cuando el usuario busca más allá de la pausa publicitaria.

Para obtener más información sobre SSAI y revisar la web, Android, iOS y tvOS SDKs MediaTailor, consulte el [MediaTailor](https://docs.theoplayer.com/how-to-guides/01-ads/12-mediatailor.md) TheoPlayer sitio web. TheoPlayer

## MediaTailor SDK
<a name="ad-reporting-client-side-ad-tracking-integrations-mediatailor-sdk"></a>

AWS Elemental mantiene un kit de desarrollo de software (SDK) JavaScript basado en él. AWS Elemental proporciona el SDK tal cual, sin garantía implícita. Usa el SDK como demostración de referencia para simplificar tu proceso de iniciación y uso. MediaTailor El SDK muestra cómo interactuar con la API de seguimiento del MediaTailor lado del cliente. El SDK implementa el seguimiento de anuncios y la elaboración de informes desde el lado del cliente para los jugadores basados en Internet. HTML5 El SDK inicia una sesión de informes por MediaTailor parte del cliente y, a continuación, solicita periódicamente información sobre el seguimiento de los anuncios. Durante la reproducción, el SDK emite eventos de seguimiento de anuncios cuando se detectan nuevos eventos publicitarios.

El MediaTailor SDK admite estas funciones:
+ Listas de reproducción en directo y VOD
+ Especificaciones de DASH y HLS
+ Gestión de eventos mediante un clic
+ Despachadores de eventos publicitarios
+ Ganchos para eventos personalizados
+ Balizamiento y balizamiento del lado del cliente. Para obtener más información sobre el envío de balizas publicitarias, consulte. [Balizamiento del lado del cliente](ad-reporting-client-side-beaconing.md)

**nota**  
Envía un ticket de AWS Support para recibir un JavaScript SDK de muestra MediaTailor. Recibirás un enlace de descarga para el paquete y sus archivos.

## Navegando a través de balizas publicitarias con GetTracking
<a name="gettracking"></a>

Usa el `GetTracking` punto final para reducir el número de anuncios que se devuelven a un reproductor. Por ejemplo, si la ventana de un manifiesto es amplia y dura mucho tiempo, la cantidad de balizas publicitarias devueltas puede afectar al rendimiento de los jugadores. 

`GetTracking`devuelve un `NextToken` valor que puedes usar para reducir el número de balizas devueltas consultando la lista de balizas devueltas. Puedes revisar los `NextToken` valores para encontrar el valor deseado del campo de una baliza publicitaria. `StartTimeInSeconds` 
+ En la primera llamada a`GetTracking`, se muestran todos los anuncios posibles que aparecen en la ventana del manifiesto, incluidos los valores a `NextToken` y de cada uno. 
+ Si una `GetTracking` solicitud *no* incluye un`NextToken`, se devuelven todos los anuncios de la ventana del manifiesto.
+ Si una `GetTracking` solicitud contiene un `NextToken` indicador pero no hay balizas nuevas que devolver, MediaTailor devuelve el mismo valor que el `NextToken` que enviaste en la solicitud original.
+ Cuando no haya más balizas correspondientes a un anuncio, `GetTracking` elimina el anuncio de su respuesta.
+ Los tokens `GetTracking` caducan después de 24 horas. Si un `NextToken` valor tiene más de 24 horas, la siguiente llamada a `GetTracking` devuelve un valor `NextToken` nulo.

### Secuencia de llamadas generalizada del jugador GetTracking
<a name="gettracking.generalsequence"></a>

Desde el reproductor cliente, una `GetTracking` solicitud es un POST con un cuerpo de solicitud que contiene los anuncios `NextToken` y balizas relacionados con el token.

```
https://YouMediaTailorUrl/v1/tracking
{

     "NextToken": "value"
     .
     .
     .
}
```

La secuencia general para usar `GetTracking` with `NextToken` es la siguiente:

1. Realice la primera llamada a`GetTracking`.

   Se devolverán todos los anuncios y balizas y el primero `NextToken` de las llamadas posteriores. 

1. Si el valor de `NextToken` es nulo, MediaTailor devuelve todos los balizas publicitarias.

1. Si `NextToken` está caducado, MediaTailor devuelve un mensaje de error HTTP con el código 400 de retorno.

   Realice una nueva llamada a `GetTracking` para recuperar un `NextToken` s. válido.

1. Escanea toda la respuesta para encontrar una baliza publicitaria que se encuentre en el rango deseado. `StartTimeInSeconds`

1. Realiza una nueva llamada a `GetTracking` con el valor de `NextToken` asociado al deseado`StartTimeInSeconds`. 

1. Si es necesario, vuelve a revisar los anuncios devueltos hasta que encuentres exactamente los que quieres reproducir.

#### Ejemplo extendido
<a name="gettracking.extendedexample"></a>

En este ejemplo, se muestra cómo `GetTracking` utilizarlos `NextToken` para limitar el número de balizas publicitarias que se devuelven a un jugador.

MediaTailor recibe una `GetTracking` solicitud. La respuesta contiene un anuncio con el identificador 9935407 y dos balizas con `StartTimeInSeconds` valores de 52,286 y 48,332 segundos. 

MediaTailor envía la respuesta JSON con lo siguiente: `NextToken`

```
  {
  "NextToken": JF57ITe48t1441mv7TmLKuZLroxDzfIslp6BiSNL1IJmzPVMDN0lqrBYycgMbKEb
  "avails": [
    {
      "ads": [
        {
          "adId": "9935407",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "",
          "creativeSequence": "",
          "duration": "PT15S",
          "durationInSeconds": 15,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "startTime": "PT30S",
          "StartTimeInSeconds": 45,
          "trackingEvents": [
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=Impression "
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "9935414",
              "eventType": "secondQuartile",
              "startTime": "PT52.286S",
              "StartTimeInSeconds": 52.286
            },
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=firstQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "9935412",
              "eventType": "firstQuartile",
              "startTime": "PT48.332S",
              "StartTimeInSeconds": 48.332
            }
          ],
          "vastAdId": ""
        }
      ],
      "startTime": "PT46.47S",
      "StartTimeInSeconds": 46.47
    }
  ]
}
```

En la siguiente `GetTracking` solicitud, MediaTailor responde con el `NextToken` valor: JF57 ITe48t1441mv7 Tm LKu ZLrox DzfIslp 6Bi SNL1 IJmz PVMDN0lqr BYycg MbKEb.

MediaTailor responde con anuncios y balizas que coinciden con los `StartTimeInSeconds` configurados en `NextToken` la llamada anterior.

Supongamos que ahora la respuesta incluye otro anuncio con el ID 9235407 además del anuncio anterior con el ID 9935407. Las balizas del ID de anuncio 9235407 tienen s 132.41 y 70.339. `StartTimeInSeconds`

MediaTailor recorre todas las balizas de la sesión para seleccionar las que tengan `StartTimeInSeconds` más de 52,286 segundos, que son la baliza 3 y la baliza 4 del anuncio con el ID 9235407:

```
{
  "NextToken": ZkfknvbfsdgfbsDFRdffg12EdffecFRvhjyjfhdfhnjtsg5SDGN
  "avails": [
    {
      "ads": [
        {
          "adId": "9235407",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "",
          "creativeSequence": "",
          "duration": "PT15.816S",
          "durationInSeconds": 19.716,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "startTime": "PT2M0S",
          "StartTimeInSeconds": 120.0,
          "trackingEvents": [
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=complete"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "8935414",
              "eventType": "firstQuartile",
              "startTime": "PT1M10.330S",
              "StartTimeInSeconds": 70.339
            },
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=thirdQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "8935412",
              "eventType": "secondQuartile",
              "startTime": "PT2M12.41S",
              "StartTimeInSeconds": 132.41
            }
          ],
          "vastAdId": ""
        },   
      ],
      "startTime": "PT36.47S",
      "StartTimeInSeconds": 36.47
    }
  ]
}
```

# Anuncios superpuestos
<a name="overlay-ads"></a>

En el caso de los flujos de trabajo de retransmisión en directo en los que quieres aumentar la monetización sin interrumpir la experiencia de visualización de los anuncios de media tirada, puedes aprovechar tu AWS Elemental MediaTailor integración actual para orientar un formato de publicidad orientado al cliente. *Este tipo de publicidad se conoce como anuncios superpuestos.* Los anuncios superpuestos son anuncios de vídeo no lineales que aparecen en forma de «anuncios en banda L», «anuncios de vídeo no lineales», «anuncios», «superposiciones de movimiento», «publicidad integrada en el contenido» o «picture-in-picture anuncios con marcos».

MediaTailor detecta un marcador SCTE-35 con un tipo de segmentación como señal dentro de la banda para detectar una oportunidad de inserción de anuncios superpuestos. `id=0x38` El marcador SCTE-35 hace MediaTailor que se envíe una solicitud al Ad Decision Server (ADS), que luego responde con una carga de anuncios no lineal en la respuesta VAST. MediaTailor analiza la respuesta de VAST para permitir la inserción de anuncios superpuestos. MediaTailor no combina anuncios lineales, sino que indica al jugador que hay un anuncio superpuesto no lineal disponible para reproducir. Esta señalización permite al jugador buscar y correlacionar los anuncios no lineales que desea reproducir desde el punto de seguimiento del lado del cliente. A continuación, el reproductor se encarga de la visualización, los informes y otras tareas relacionadas con esos anuncios. Por ejemplo, el desarrollador del reproductor puede usar un SDK de dispositivo de un proveedor que admita formatos de anuncios superpuestos. Para obtener más información sobre las integraciones de seguimiento del lado del cliente, consulte. [Integraciones de seguimiento de anuncios del lado del cliente](ad-reporting-client-side-ad-tracking-integrations.md)

![\[La imagen muestra una cronología de varios tipos de anuncios que se muestran junto a un vídeo de contenido. Los anuncios lineales se reproducen antes y después del contenido del vídeo. El anuncio que aparece antes del vídeo de contenido se denomina anuncio previo a la reproducción. El anuncio que sigue al vídeo de contenido se denomina anuncio postroll. Un anuncio no lineal se superpone a una parte del contenido del vídeo en sí. El anuncio no lineal se denomina anuncio superpuesto.\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/images/client-side-overlays.png)


**Topics**
+ [Requisitos previos para usar anuncios superpuestos con MediaTailor](overlay-ads-prerequisites.md)
+ [Cómo empezar a usar anuncios superpuestos con MediaTailor](overlay-ads-getting-started.md)
+ [Registro y métricas para anuncios superpuestos en MediaTailor](overlay-ads-logging-and-metrics.md)
+ [Facturación de anuncios superpuestos en MediaTailor](overlay-ads-billing.md)

# Requisitos previos para usar anuncios superpuestos con MediaTailor
<a name="overlay-ads-prerequisites"></a>

Cuando se utilizan anuncios superpuestos con: MediaTailor
+ El flujo de trabajo debe ser en directo, no de vídeo bajo demanda (VOD).
+ La respuesta del Ad Decision Server (ADS) debe configurarse para que muestre solo anuncios no lineales en la respuesta VAST. MediaTailor ignora los anuncios lineales a los efectos de crear una combinación de anuncios.
+ El manifiesto debe usar un mensaje de señal horaria SCTE-35 con un tipo de segmentación para `id=0x38` invocar la función de anuncios superpuestos.
+ El proveedor de streaming debe tener el control de la aplicación del dispositivo cliente y estar integrado con la API de seguimiento del lado del cliente. MediaTailor 

# Cómo empezar a usar anuncios superpuestos con MediaTailor
<a name="overlay-ads-getting-started"></a>

En esta sección se explica cómo empezar a utilizar la función de anuncios superpuestos de. MediaTailor Configurará la señalización del SCTE-35, configurará las respuestas del Ad Decision Server (ADS) y configurará el control a nivel de sesión.

**Topics**
+ [Habilitar anuncios superpuestos](overlay-ads-getting-started-enabling.md)
+ [Seguimiento de anuncios superpuestos con metadatos del lado del cliente](overlay-ads-client-side-tracking-metadata.md)

# Habilitar anuncios superpuestos
<a name="overlay-ads-getting-started-enabling"></a>

MediaTailor La compatibilidad con anuncios superpuestos está habilitada de forma predeterminada. Un tipo de marcador publicitario SCTE-35 específico del manifiesto activa la inserción de un anuncio superpuesto. Como es posible que algunos reproductores no admitan la representación de anuncios superpuestos en el lado del cliente, puedes deshabilitar esta función a nivel de sesión.

**Para inhabilitar la compatibilidad con anuncios superpuestos mediante prefijos de reproducción HLS o DASH:**
+ Desde el reproductor, inicia una nueva sesión de MediaTailor reproducción mediante una solicitud en uno de los siguientes formatos, según tu protocolo:
  + Ejemplo: formato HLS

    ```
    GET mediatailorURL/v1/master/hashed-account-id/origin-id/asset-id?aws.overlayAvails=off
    ```
  + Ejemplo: formato DASH

    ```
    GET mediatailorURL/v1/master/hashed-account-id/origin-id/asset-id?aws.overlayAvails=off
    ```

**Para inhabilitar la compatibilidad con los anuncios superpuestos mediante el prefijo de inicialización de la sesión:**
+ En el reproductor, crea un cuerpo de mensaje JSON para la solicitud de inicialización de la sesión con el fin de: MediaTailor
  + Para inhabilitar la superposición de anuncios, añade un `overlays` objeto como clave de nivel superior con un valor de. `off` El valor por defecto `overlays` es. `on`
  + (Opcional) Proporcione los parámetros que MediaTailor luego se transfieran al ADS dentro de un `adsParams` objeto. Estos parámetros corresponden a la configuración `[player_params.param]` en la URL de la plantilla ADS de la configuración de MediaTailor.

**Example HLS:**  

```
POST master.m3u8
    {
       "adsParams": {
           "deviceType": "ipad"
       },
       "overlayAvails": "off"
    }
```

**Example DASH:**  

```
POST manifest.mpd
    {
        "adsParams": {
           "deviceType": "androidmobile"
       },
       "overlayAvails": "off"
    }
```

# Señalización manifiesta
<a name="overlay-ads-manifest-signaling"></a>

MediaTailor activa la compatibilidad con anuncios superpuestos cuando ve un marcador SCTE-35 específico en el manifiesto. La señal requerida es un comando de empalme tipo 6, o señal horaria, es decir, una señal de inicio de publicidad superpuesta por un proveedor. Esta señal tiene un identificador de tipo de segmentación de `0x38`

El siguiente ejemplo muestra el marcador `0x38` SCTE-35 en un objeto JSON.

```
{
  "tableId": 252,
  "selectionSyntaxIndicator": false,
  "privateIndicator": false,
  "sectionLength": 53,
  "protocolVersion": 0,
  "encryptedPacket": false,
  "encryptedAlgorithm": 0,
  "ptsAdjustment": 0,
  "cwIndex": 0,
  "tier": 4095,
  "spliceCommandLength": 5,
  "spliceCommandType": 6,
  "spliceCommand": {
    "specified": true,
    "pts": 1800392
  },
  "descriptorLoopLength": 31,
  "descriptors": [
    {
      "spliceDescriptorTag": 2,
      "descriptorLength": 29,
      "indentifier": "CUEI",
      "segmentationEventId": 158389361,
      "segmentationEventCancelIndicator": false,
      "programSegmentationFlag": true,
      "segmentationDurationFlag": true,
      "deliveryNotRestrictedFlag": false,
      "webDeliveryAllowedFlag": true,
      "noRegionalBlackoutFlag": true,
      "archiveAllowedFlag": true,
      "deviceResctrictions": 3,
      "segmentationDuration": 1350000,
      "segmentationUpidType": 9,
      "segmentationUpidLength": 7,
      "segmentationUpid": {
        "0": 111,
        "1": 118,
        "2": 101,
        "3": 114,
        "4": 108,
        "5": 97,
        "6": 121
      },
      "segmentationTypeId": 56,
      "segmentNum": 1,
      "segmentsExpected": 0
    }
  ],
  "crc": 2510422713
}
```

El siguiente ejemplo muestra la señal SCTE-35 representada como un valor binario (base 32/hexadecimal):

```
0xfc303500000000000000fff00506fe001b78c8001f021d435545490970d4717fdf00000dbba009076f7665726c6179380100000084226c4f
```

Los siguientes ejemplos muestran el marcador SCTE-35 en los manifiestos HLS y DASH.

**Example : Manifiesto HLS**  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:419
#EXT-X-DISCONTINUITY-SEQUENCE:3
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:09.231Z
#EXTINF:6.02,
https://aws.cloudfront.net/media/asset1/index1_00007.ts
#EXT-X-DISCONTINUITY
#EXT-X-KEY:METHOD=NONE
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:15.251Z
#EXTINF:6.0,
https://aws.cloudfront.net/media/asset1/index1_00001.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:21.251Z
#EXTINF:4.0,
https://aws.cloudfront.net/media/asset1/index1_00002.ts
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="1692073825251-30-1",START-DATE="2023-08-15T04:30:25.251Z",DURATION=10.0,PLANNED-DURATION=10.0,SCTE35-OUT=0xfc303500000000000000fff00506fe001b78c8001f021d435545490970d4717fdf00000dbba009076f7665726c6179380100000084226c4f
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:25.251Z
#EXTINF:2.0,
https://aws.cloudfront.net/media/asset1/index1_00003.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:27.251Z
#EXTINF:6.0,
https://aws.cloudfront.net/media/asset1/index1_00004.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:33.251Z
#EXTINF:2.0,
https://aws.cloudfront.net/media/asset1/index1_00005.ts
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:35.251Z
#EXTINF:4.0,
https://aws.cloudfront.net/media/asset1/index1_00006.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:39.251Z
#EXTINF:6.02,
https://aws.cloudfront.net/media/asset1/index1_00007.ts
```

**Example : Manifiesto DASH**  

```
<?xml version="1.0"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" availabilityStartTime="2023-08-15T16:34:05.911Z" minBufferTime="PT30S" minimumUpdatePeriod="PT2S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-08-15T16:34:17.950Z" suggestedPresentationDelay="PT20S" timeShiftBufferDepth="PT1M30S" type="dynamic" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
  <Period xmlns="urn:mpeg:dash:schema:mpd:2011" id="1692117245944_1" start="PT0.033S">
    <BaseURL>https://aws.cloudfront.net/out/v1/abc/123/def/</BaseURL>
    <EventStream schemeIdUri="urn:scte:scte35:2013:xml" timescale="90000">
      <Event duration="900000">
        <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="0" tier="4095">
          <scte35:TimeSignal>
            <scte35:SpliceTime ptsTime="0"/>
          </scte35:TimeSignal>
          <scte35:SegmentationDescriptor segmentNum="0" segmentationDuration="900000" segmentationEventCancelIndicator="false" segmentationEventId="1" segmentationTypeId="56" segmentsExpected="0" subSegmentNum="0" subSegmentsExpected="0">
            <scte35:SegmentationUpid segmentationUpidFormat="hexBinary" segmentationUpidType="14">63736f7665726c6179</scte35:SegmentationUpid>
          </scte35:SegmentationDescriptor>
        </scte35:SpliceInfoSection>
      </Event>
    </EventStream>
    <AdaptationSet bitstreamSwitching="true" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
      <Representation bandwidth="3000000" codecs="avc1.4D4028" frameRate="30/1" height="1080" id="1" width="1920">
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_1_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_1_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="30000">
          <SegmentTimeline>
            <S d="60000" r="6" t="1000"/>
            <S d="30000" t="421000"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
      <Representation bandwidth="2499968" codecs="avc1.4D4028" frameRate="30/1" height="1080" id="2" width="1920">
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_2_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_2_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="30000">
          <SegmentTimeline>
            <S d="60000" r="6" t="1000"/>
            <S d="30000" t="421000"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
      <Representation bandwidth="2200000" codecs="avc1.4D401F" frameRate="30/1" height="720" id="3" width="1280">
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_3_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_3_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="30000">
          <SegmentTimeline>
            <S d="60000" r="6" t="1000"/>
            <S d="30000" t="421000"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
    </AdaptationSet>
    <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
      <Label>Alternate Audio</Label>
      <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="9">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_audio_9_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_audio_9_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="48000">
          <SegmentTimeline>
            <S d="98304" t="0"/>
            <S d="96256" t="98304"/>
            <S d="95232" t="194560"/>
            <S d="96256" r="2" t="289792"/>
            <S d="95232" t="578560"/>
            <S d="46080" t="673792"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>
```

# Respuesta del Ad Decision Server (ADS)
<a name="overlay-ads-ads-response"></a>

La respuesta de ADS debe contener un evento de seguimiento válido. Como mínimo, el evento de seguimiento puede ser un evento `Impression` de seguimiento. El evento de seguimiento debe contener al menos un `NonLinear` anuncio. Este anuncio es un anuncio superpuesto y adopta la forma de un recurso estático, HTML o iFrame.

```
<vmap AdBreak breaktype="linear" breakId="csoverlay"
```

Si la respuesta VAST es un VMAP con o`nonlinear`, `breakType` los metadatos disponibles se encuentran dentro del objeto raíz. `nonLinearAvails` Si la respuesta VAST es un VMAP con un `breakType` de `linear` o es una respuesta VAST simple sin VMAP, los metadatos de disponibilidad se encuentran dentro del objeto raíz. `avails`

La siguiente respuesta VAST es una respuesta de VMAP empaquetada con un valor de. `breakType` `linear`

Además de la respuesta de VMAP empaquetada, MediaTailor también admite una respuesta de VMAP empaquetada con un `breakType` valor de `nonlinear` y una respuesta VAST simple.

```
<?xml version="1.0" encoding="utf-8"?>
<vmap:VMAP xmlns:vmap="http://www.iab.net/vmap-1.0" version="1.0">
  <vmap:AdBreak breakType="linear" breakId="csoverlay">
    <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="1">
      <vmap:VASTAdData>
        <VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0" xsi:noNamespaceSchemaLocation="vast.xsd">
          <Ad sequence="1">
            <InLine>
              <AdSystem>2.0</AdSystem>
              <AdTitle>2</AdTitle>
              <Impression><![CDATA[https://adserver.com/beacon=impression]]></Impression>
              <Creatives>
                <Creative>
                  <NonLinearAds>
                    <NonLinear width="640" height="360" id="18">
                      <StaticResource creativeType="text/js_ref"><![CDATA[https://client-side-ads.com/tags/static/ctv-generic/overlay001.json?iv_geo_country%3DUS%26]]></StaticResource>
                    </NonLinear>
                  </NonLinearAds>
                </Creative>
              </Creatives>
            </InLine>
          </Ad>
        </VAST>
      </vmap:VASTAdData>
    </vmap:AdSource>
    <vmap:TrackingEvents>
      <vmap:Tracking event="breakStart"><![CDATA[https://adserver.com/beacon=breakstartimpression]]></vmap:Tracking>
      <vmap:Tracking event="breakEnd"><![CDATA[https://adserver.com/beacon=breakendimpression]]></vmap:Tracking>
    </vmap:TrackingEvents>
  </vmap:AdBreak>
</vmap:VMAP>
```

**Example 1: fuente del manifiesto de DASH para MediaTailor**  

```
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="dynamic" publishTime="2022-11-07T19:59:05+00:00" minimumUpdatePeriod="PT2S" availabilityStartTime="2022-11-07T06:57:11.250000+00:00" minBufferTime="PT10S" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT58.999S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT46827.601S" id="0" duration="PT88.321S">
  ...
  </Period>
  <Period start="PT46915.922S" id="45" duration="PT6.006S">
    <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2014:xml+bin">
    <Event duration="540000" id="144">
        <scte35:Signal>
            <scte35:Binary>SCTE35-binary</scte35:Binary>
        </scte35:Signal>
    </Event>
    </EventStream>
    ... 
  </Period>
  <Period start="PT46921.928S" id="49"> 
  ...
  </Period>
</MPD>
```

**Example 2: manifiesto DASH MediaTailor personalizado que contiene una decoración con un identificador de anuncio**  

```
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="dynamic" publishTime="2022-11-07T19:59:05+00:00" minimumUpdatePeriod="PT2S" availabilityStartTime="2022-11-07T06:57:11.250000+00:00" minBufferTime="PT10S" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT58.999S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT46827.601S" id="0" duration="PT88.321S">
  ...
  </Period>
  <Period start="PT46915.922S" id="45" duration="PT6.006S">
  <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
    <Event presentationTime="13500000" duration="1351350">
    <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "adId","ad_position": "adId", "ad_type":"overlay","creative_id": "creativeId","tracking_uri": "trackingUri"}]}]]></Event>
  </EventStream>
  ...
  </Period>
  <Period start="PT46921.928S" id="49"> 
  ...
  </Period>
</MPD>
```

# Seguimiento de anuncios superpuestos con metadatos del lado del cliente
<a name="overlay-ads-client-side-tracking-metadata"></a>

MediaTailor coloca los anuncios superpuestos en el estado `nonLinearAdsList` de disponibilidad. La API de seguimiento MediaTailor del lado del cliente tiene dos objetos raíz, denominados y. `avails` `nonLinearAvails` Si la respuesta VAST es un VMAP con o`nonlinear`, `breakType` los metadatos disponibles se encuentran dentro del objeto raíz. `nonLinearAvails` Si la respuesta VAST es un VMAP con un `breakType` de `linear` o es una respuesta VAST simple sin VMAP, los metadatos de disponibilidad se encuentran dentro del objeto raíz. `avails`

Para obtener más información sobre el seguimiento del lado del cliente, consulte. [Seguimiento de anuncios del lado del cliente](ad-reporting-client-side.md)

El siguiente ejemplo muestra una respuesta VAST simple o una respuesta VMAP con un `breakType` valor de. `linear`

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakstartimpression"
          ],
          "eventType": "breakStart"
        },
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakendimpression"
          ],
          "eventType": "breakEnd"
        }
      ],
      "adMarkerDuration": null,
      "ads": [],
      "availId": "828",
      "availProgramDateTime": null,
      "duration": "PT0S",
      "durationInSeconds": 0,
      "meta": null,
      "nonLinearAdsList": [
        {
          "extensions": null,
          "nonLinearAdList": [
            {
              "adId": "",
              "adParameters": null,
              "adSystem": "2.0",
              "adTitle": "2",
              "apiFramework": null,
              "clickThrough": null,
              "clickTracking": null,
              "clickTrackingId": null,
              "creativeAdId": "",
              "creativeId": "18",
              "creativeSequence": "",
              "duration": null,
              "durationInSeconds": 0,
              "expandedHeight": null,
              "expandedWidth": null,
              "height": "360",
              "htmlResource": null,
              "iFrameResource": null,
              "maintainAspectRatio": false,
              "minSuggestedDuration": null,
              "scalable": false,
              "staticResource": "https://client-side-ads.com/tags/static/ctv-generic/overlay001.json?iv_geo_country%3DUS%26",
              "staticResourceCreativeType": "text/js_ref",
              "width": "640"
            }
          ],
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://adserver.com/beacon=impression"
              ],
              "duration": null,
              "durationInSeconds": 0,
              "eventId": null,
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": null,
              "startTimeInSeconds": 0
            }
          ]
        }
      ],
      "startTime": "PT1M46.08S",
      "startTimeInSeconds": 106.08
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": null,
  "nonLinearAvails": []
}
```

El siguiente ejemplo muestra una respuesta de VMAP simple con un `breakType` valor de. `nonlinear`

```
{
  "avails": [],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": null,
  "nonLinearAvails": [
    {
      "adBreakTrackingEvents": [
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakstartimpression"
          ],
          "eventType": "breakStart"
        },
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakendimpression"
          ],
          "eventType": "breakEnd"
        }
      ],
      "adMarkerDuration": null,
      "ads": [],
      "availId": "828",
      "availProgramDateTime": null,
      "duration": "PT0S",
      "durationInSeconds": 0,
      "meta": null,
      "nonLinearAdsList": [
        {
          "extensions": null,
          "nonLinearAdList": [
            {
              "adId": "",
              "adParameters": null,
              "adSystem": "2.0",
              "adTitle": "2",
              "apiFramework": null,
              "clickThrough": null,
              "clickTracking": null,
              "clickTrackingId": null,
              "creativeAdId": "",
              "creativeId": "18",
              "creativeSequence": "",
              "duration": null,
              "durationInSeconds": 0,
              "expandedHeight": null,
              "expandedWidth": null,
              "height": "360",
              "htmlResource": null,
              "iFrameResource": null,
              "maintainAspectRatio": false,
              "minSuggestedDuration": null,
              "scalable": false,
              "staticResource": "https://client-side-ads.com/tags/static/ctv-generic/overlay001.json?iv_geo_country%3DUS%26",
              "staticResourceCreativeType": "text/js_ref",
              "width": "640"
            }
          ],
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://adserver.com/beacon=impression"
              ],
              "duration": null,
              "durationInSeconds": 0,
              "eventId": null,
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": null,
              "startTimeInSeconds": 0
            }
          ]
        }
      ],
      "startTime": "PT1M46.08S",
      "startTimeInSeconds": 106.08
    }
  ]
}
```

# Registro y métricas para anuncios superpuestos en MediaTailor
<a name="overlay-ads-logging-and-metrics"></a>

En esta sección, se explican el registro y las métricas de los anuncios superpuestos. MediaTailor Para obtener más información sobre cómo configurar el registro, consulte[Supervisar y etiquetar los recursos AWS Elemental MediaTailor](monitoring.md).

**Topics**
+ [CloudWatch registros](#overlay-ads-logging-and-metrics-cloudwatch)
+ [CloudWatch métricas](#overlay-ads-logging-and-metrics-cloudwatch-metrics)

## CloudWatch registros
<a name="overlay-ads-logging-and-metrics-cloudwatch"></a>

CloudWatch recopila la siguiente información de registro sobre los anuncios superpuestos:
+ `VAST_RESPONSE`- Muestra información sobre la lista de anuncios no lineales.
+ `FILLED_PROVIDER_OVERLAY`- Muestra información sobre los anuncios no lineales.

**nota**  
`RAW_ADS_RESPONSE`Es un evento opcional que muestra la respuesta original del ADS. El uso de este evento es especialmente útil en un entorno de preparación y pruebas. Para habilitar este evento en una configuración o cuenta, envía un ticket a AWS Support.

## CloudWatch métricas
<a name="overlay-ads-logging-and-metrics-cloudwatch-metrics"></a>

MediaTailor recopila las métricas de anuncios superpuestos por separado de otras métricas de ADS. MediaTailorrecopila estas métricas después de obtener correctamente los anuncios del ADS. No tienes que sondear la `GetTracking` API para recopilar las métricas.

En la siguiente tabla se describen CloudWatch las métricas de los anuncios superpuestos:


| Métrica | Description (Descripción) | 
| --- | --- | 
| AdDecisionServer.OverlayAds |  El número de anuncios superpuestos incluidos en las respuestas de ADS en el período de CloudWatch tiempo que especificaste.  | 
| AdDecisionServer.OverlayErrors |  El número de respuestas con código de `200` estado no HTTP, respuestas vacías y respuestas agotadas que se MediaTailor recibieron del ADS en el período de CloudWatch tiempo que especificó.  | 
| AdDecisionServer.OverlayFilled |  El número de solicitudes disponibles que se rellenaron correctamente con al menos un anuncio superpuesto: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/mediatailor/latest/ug/overlay-ads-logging-and-metrics.html) `SampleCount`registra el número de vacíos rellenados. `Sum`registra el número de superposiciones disponibles que se han rellenado correctamente.  | 
| AdDecisionServer.OverlayMinSuggestedDuration |  La suma de `minSuggestedDuration` las duraciones, en milisegundos, de todos los anuncios que se MediaTailor recibieron del ADS en el período de CloudWatch tiempo que especificó. Si `minSuggestedDuration` no se especifica, la duración que se muestra es la duración planificada.  | 
| AdDecisionServer.OverlayLatency |  El tiempo de respuesta, en milisegundos, de las solicitudes que MediaTailor se realizan al ADS.  | 
| AdDecisionServer.OverlayTimeouts |  El número de solicitudes enviadas al ADS que se agotó el tiempo de espera en el período de CloudWatch tiempo que especificó.  | 
| AdsBilled |  Para obtener más información sobre los anuncios facturados, consulte. [Facturación de anuncios superpuestos en MediaTailor](overlay-ads-billing.md)  | 
| Avail.\$1 |  Como MediaTailor no planifica los anuncios superpuestos, CloudWatch no muestra ninguna `Avail.X` métrica.  | 
| SkippedReason.\$1 |  Como MediaTailor no planifica los anuncios superpuestos, CloudWatch no muestra ninguna `SkippedReason.X` métrica.  | 

# Facturación de anuncios superpuestos en MediaTailor
<a name="overlay-ads-billing"></a>

MediaTailor factura a los clientes en función del número de anuncios no lineales que aparecen en la respuesta de ADS. Este número incluye los anuncios no lineales que se extienden más allá de la duración de la pausa. Después de MediaTailor llenar el espacio disponible, factura los anuncios que rellenó.

En el caso de los flujos de trabajo de captura previa, MediaTailor no factura los anuncios cuando los recupera, sino cuando ve que hay un anuncio compatible disponible en la ventana de consumo de esa sesión.

Para obtener información de facturación adicional, consulte. [https://aws.amazon.com/mediatailor/pricing/](https://aws.amazon.com/mediatailor/pricing/)

# Decoración de ID de anuncio
<a name="ad-id-decoration"></a>

AWS Elemental MediaTailor combina anuncios en el servidor cuando se pasa del contenido a las pausas publicitarias. MediaTailor puede condicionar el manifiesto con metadatos asociados a los anuncios que se han agrupado. Hacerlo puede proporcionar las siguientes ventajas:

**importante**  
La decoración de anuncios no es compatible con los métodos de inserción de anuncios guiada por el servidor (SGAI) porque los campos que rellenan los `X-AD-CREATIVE-SIGNALING ` encabezados solo se conocen cuando se obtiene la lista de activos durante la reproducción del anuncio, no cuando se escribe inicialmente el manifiesto que se puede almacenar en caché.
+ *Mejora* la hora de inicio del vídeo (VST)
+ MediaTailor puede admitir un modelo híbrido de inserción de anuncios en el servidor e inserción de anuncios guiada por el servidor
+ Las sesiones del lado del servidor pueden crear cronogramas de reproducción con marcadores de posición de anuncios
+ En el caso de las sesiones del lado del cliente que ya crean cronogramas de reproducción con la MediaTailor API, el VST de la sesión mejora, ya que la sesión no depende de llamar a la API de seguimiento para crear la cronología
+ Se puede utilizar tanto para la inserción de anuncios en el lado del servidor como MediaTailor para los anuncios renderizados en el lado del cliente que se muestran en escena. De esta forma, el kit de desarrollo de software (SDK) de un jugador no necesita tener una integración independiente para llamar directamente a las entidades que publican anuncios en el lado del cliente. MediaTailor puede vender los anuncios a través del manifiesto y la API de seguimiento del lado del cliente.

Existen normas para asociar cada activo publicitario creativo a un identificador único. Esta asociación permite a los anunciantes, agencias, vendedores y editores relacionar un activo publicitario creativo en sus flujos de trabajo independientes. A medida que las métricas y el monitoreo de las transmisiones siguen mejorando y cada vez más distribuidores utilizan arquitecturas de inserción basadas en servidores, surge la necesidad de comunicar con precisión los identificadores asignados a los activos creativos individuales en una interleaved/stitched presentación, por ejemplo, en el manifiesto personalizado.

**Topics**
+ [Habilitar la señalización de ID de anuncios para las sesiones](ad-id-session-state.md)
+ [Inserción de manifiestos y metadatos de anuncios](ad-id-manifest.md)
+ [Interacciones con el servidor de decisiones publicitarias (ADS)](ad-id-ads-interactions.md)
+ [API de seguimiento del lado del cliente](ad-id-client-side-tracking-api.md)

# Habilitar la señalización de ID de anuncios para las sesiones
<a name="ad-id-session-state"></a>

La función de señalización del ID de anuncio debe estar habilitada durante la inicialización de la sesión. El proceso para habilitar la función es diferente al de crear sesiones con el prefijo de HLS/DASH reproducción (inicialización de sesión implícita) o con el prefijo de inicialización de sesión (inicialización de sesión explícita).

**Para habilitar el ID de anuncio para la sesión mediante prefijos de reproducción HLS/DASH**
+ Desde el reproductor, inicia una nueva sesión de MediaTailor reproducción mediante una solicitud en uno de los siguientes formatos, según tu protocolo:
  + Ejemplo: formato HLS

    ```
    GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.adSignalingEnabled=true
    ```
  + Ejemplo: formato DASH

    ```
    GET <mediatailorURL>/v1/dash/<hashed-account-id>/<origin-id>/<asset-id>?aws.adSignalingEnabled=true
    ```

**Para habilitar el ID de anuncio para la sesión mediante el prefijo de inicialización de la sesión**
+ En el reproductor, crea un cuerpo de mensaje JSON para la solicitud de inicialización de la sesión con el fin de: MediaTailor 
  + Dentro de un `adsParams` objeto, proporciona todos los parámetros que MediaTailor deban transferirse al ADS. Estos parámetros corresponden a los `[player_params.param]` ajustes de la URL de la plantilla de ADS de la MediaTailor configuración. 
  + Para habilitar la señalización del ID de anuncio, añada un `adSignaling` objeto como objeto de nivel superior y, en su interior, añada un parámetro llamado `enabled` and value of`true`. El `adSignaling` valor predeterminado es`disabled`.
  + Ejemplo: formato HLS

    ```
    POST master.m3u8
        {
           "adsParams": {
               "deviceType": "ipad"
           },
           "adSignaling": {
               "enabled": "true"
           },
           "reportingMode": "client"
        }
    ```
  + Ejemplo: formato DASH

    ```
    POST manifest.mpd
        {
            "adsParams": {
               "deviceType": "ipad"
           },
           "adSignaling": {
                "enabled": "true"
            },
            "reportingMode": "client"
        }
    ```

# Inserción de manifiestos y metadatos de anuncios
<a name="ad-id-manifest"></a>

Durante el proceso de unión de anuncios, MediaTailor añade al manifiesto el identificador único asociado a cada creatividad que se esté uniendo. MediaTailor obtiene el identificador único de la creatividad a partir del valor de `id` atributo de esa creatividad en la respuesta de VAST. Si la creatividad carece de un valor de atributo de identificación, MediaTailor publicará un valor vacío (`id=""`).

MediaTailor utiliza una señal de metadatos en el manifiesto para desvincular las dependencias entre la API de seguimiento de clientes para los metadatos de las creatividades publicitarias y timing/positioning dentro del cronograma general. Esta disociación reduce la latencia de reproducción (especialmente en situaciones de vídeo a la carta), ya que la interfaz de usuario (UI) del reproductor representa las posiciones de los cortes de anuncios en la línea temporal antes de inicializar la reproducción.

Los metadatos añadidos adoptan las siguientes formas:
+ En el caso de los manifiestos HLS, los metadatos añadidos adoptan la forma de `DATERANGE` etiquetas para cada anuncio durante el período de validez.
+ En el caso de los manifiestos de DASH, los metadatos añadidos adoptan la forma de un `Event` elemento dentro de cada período publicitario.

El siguiente cuerpo del mensaje en JSON muestra un ejemplo de la respuesta VAST:

```
{
  "version": 1,
  "identifiers": [
    {
      "scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000",
      "value": "creativeId",
      "ad_position": "adId",
      "ad_type": "adType",
      "tracking_uri": "trackingUri",
      "custom_vast_data":"customVastData"
    }
  ]
}
```

En el ejemplo anterior:
+ *creativeId*es el valor del `Id` atributo del `Creative` elemento del anuncio
+ *adId*es el número de secuencia HLS asociado al principio del anuncio o el identificador del período DASH del anuncio
+ *adType*es `avail` o `overlay` se basa en la respuesta de VAST
+ *trackingUri*es el punto final de seguimiento relativo de la MediaTailor sesión, en el formato `../../../../tracking/hashed-account-id/origin-id/session-id`
+ *customVastData*es un valor que se MediaTailor extrae de la extensión `creative_signaling` VAST. MediaTailor utiliza el contenido del nodo CDATA, si está presente. Consulte la [Interacciones con el servidor de decisiones publicitarias (ADS)](ad-id-ads-interactions.md) sección para obtener más detalles y un ejemplo de la respuesta VAST.

# Personalización de los manifiestos HLS con metadatos de anuncios
<a name="ad-id-manifest-hls"></a>

En el caso de una transmisión HLS en directo, MediaTailor solo se añaden metadatos cuando la transmisión contiene `PROGRAM-DATA-TIME` etiquetas, al menos una vez por duración del manifiesto. En el caso de una transmisión de vídeo bajo demanda (VOD), MediaTailor añade `PROGRAM-DATE-TIME` al menos un segmento del manifiesto personalizado, en el que la hora de inicio de cada recurso de VOD sea cero (). `1970-01-01T00:00:00Z` Si el manifiesto de origen tiene `PROGRAM-DATE-TIME` contenido existente, MediaTailor conserva ese contenido.

MediaTailor personaliza el manifiesto con las creatividades devueltas por el Ad Decision Server (ADS). Para cada anuncio, MediaTailor también incluye una `DATERANGE` etiqueta que abarca toda la duración del anuncio. El formato de las `DATERANGE` etiquetas es similar al descrito en la sección [Señalización creativa de anuncios en DASH y HLS](https://www.svta.org/document/draft-ad-creative-signaling-in-dash-and-hls/) de la versión 2023 de la publicación técnica de la *SVA*.

El `DATERANGE` que se MediaTailor genera tiene valores de identificación únicos. Para garantizar la exclusividad (según las directrices especificadas en la [asignación del SCTE-35 a EXT-X-DATERANGE](https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.7.1)) MediaTailor , combina el `MEDIA-SEQUENCE` número del *primer* segmento de anuncio de la oferta con el número de secuencia del anuncio incluido en ella.

En el caso de las pausas publicitarias poco pobladas en las configuraciones que tienen habilitada la opción tablilla, MediaTailor añade los segmentos de la lista al final de la tirada, separados por una etiqueta, pero sin metadatos. `DISCONTINUITY` `DATERANGE`

Para cada anuncio incluido en el manifiesto personalizado, MediaTailor añade los metadatos creativos, representados como datos codificados en base64 en una etiqueta personalizada. `DATERANGE`

**Example Origen HLS lineal (): `#EXT-X-CUE-OUT`**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:398
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:20:01.397Z
#EXTINF:6.006,
index_1_398.ts?m=1676054627
#EXTINF:5.873,
index_1_399.ts?m=1676054627
#EXT-OATCLS-SCTE35:/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXT-X-CUE-OUT:59.993
#EXTINF:6.139,
index_1_400.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=6.139,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_401.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=12.145,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_402.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=18.151,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_403.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=24.157,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_404.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=30.163,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_405.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=36.169,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_406.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=42.175,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_407.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=48.181,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_408.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=54.187,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:5.806,
index_1_409.ts?m=1676054627
#EXT-X-CUE-IN
#EXTINF:6.206,
index_1_410.ts?m=1676054627
#EXTINF:6.006,
index_1_411.ts?m=1676054627
#EXTINF:6.006,
index_1_412.ts?m=1676054627
```

**Example Origen HLS lineal ()`#EXT-X-DATERANGE`:**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:25
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:53.389Z
#EXTINF:6.006,
index_1_25.ts?m=1676056675
#EXTINF:6.006,
index_1_26.ts?m=1676056675
#EXTINF:6.006,
index_1_27.ts?m=1676056675
#EXTINF:1.869,
index_1_28.ts?m=1676056675
#EXT-X-DATERANGE:ID="2",START-DATE="2023-02-10T19:20:13.276Z",PLANNED-DURATION=59.993,SCTE35-OUT=0xFC302500000003289800FFF01405000000027FEFFF8CF97DECFE00526362000101010000B1EE3F80
#EXTINF:6.139,
index_1_29.ts?m=1676056675
#EXTINF:6.006,
index_1_30.ts?m=1676056675
#EXTINF:6.006,
index_1_31.ts?m=1676056675
#EXTINF:6.006,
index_1_32.ts?m=1676056675
#EXTINF:6.006,
index_1_33.ts?m=1676056675
#EXTINF:6.006,
index_1_34.ts?m=1676056675
#EXTINF:6.006,
index_1_35.ts?m=1676056675
#EXTINF:6.006,
index_1_36.ts?m=1676056675
#EXTINF:6.006,
index_1_37.ts?m=1676056675
#EXTINF:5.806,
index_1_38.ts?m=1676056675
#EXT-X-DATERANGE:ID="2",START-DATE="2023-02-10T19:20:13.276Z",END-DATE="2023-02-10T19:21:13.269Z",DURATION=59.993
#EXTINF:6.206,
index_1_39.ts?m=1676056675
#EXTINF:6.006,
index_1_40.ts?m=1676056675
```

**Example Manifiesto HLS lineal personalizado (con señalización publicitaria creativa):**  
El `DATERANGE` que se MediaTailor genera tiene valores de identificación únicos. Para garantizar la exclusividad (según las directrices especificadas en la [asignación del SCTE-35 a EXT-X-DATERANGE](https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.7.1)) MediaTailor , combina el `MEDIA-SEQUENCE` número del *primer* segmento de anuncio de la oferta con el número de secuencia del anuncio incluido en ella.  
En el siguiente ejemplo, MediaTailor concatena `MEDIA-SEQUENCE` 421 con el número de posición del anuncio.  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:418
#EXT-X-DISCONTINUITY-SEQUENCE:5
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXTINF:6.006,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_397.ts?m=1676054627
#EXTINF:6.006,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_398.ts?m=1676054627
#EXTINF:5.873,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_399.ts?m=1676054627
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-1",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056813
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056814
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056815
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056816
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056817
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056818
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056819
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056820
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-1",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=15.015
#EXT-X-DATERANGE:ID="421-2",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056821
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056822
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056823
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056824
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056825
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056826
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056827
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056828
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-2",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=15.015
#EXT-X-DATERANGE:ID="421-3",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056829
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056830
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056831
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056832
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056833
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056834
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056835
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056836
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-3",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=29.997
#EXT-X-DATERANGE:ID="421-4",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056837
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056838
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056839
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056840
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056841
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056842
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056843
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056844
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="421-4",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=15.015
#EXTINF:6.206,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_410.ts?m=1676054627
#EXTINF:6.006,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_411.ts?m=1676054627
```

**Example Origen HLS de VOD (con señales SCTE):**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:6,
index_720p1500k_00001.ts
#EXTINF:6,
index_720p1500k_00002.ts
#EXTINF:6,
index_720p1500k_00003.ts
#EXTINF:6,
index_720p1500k_00004.ts
#EXTINF:6,
index_720p1500k_00005.ts
#EXT-X-CUE-OUT:0
#EXT-X-CUE-IN
#EXTINF:6,
index_720p1500k_00006.ts
#EXTINF:6,
index_720p1500k_00007.ts
#EXTINF:6,
index_720p1500k_00008.ts
#EXTINF:6,
index_720p1500k_00009.ts
#EXTINF:6,
index_720p1500k_00010.ts
#EXTINF:6,
index_720p1500k_00011.ts
#EXTINF:6,
index_720p1500k_00012.ts
```

**Example Origen del VOD HLS:**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:6,
index_720p1500k_00001.ts
#EXTINF:6,
index_720p1500k_00002.ts
#EXTINF:6,
index_720p1500k_00003.ts
#EXTINF:6,
index_720p1500k_00004.ts
#EXTINF:4,
index_720p1500k_00005.ts
#EXTINF:2,
index_720p1500k_00006.ts
#EXTINF:6,
index_720p1500k_00007.ts
#EXTINF:6,
index_720p1500k_00008.ts
#EXTINF:6,
index_720p1500k_00009.ts
#EXTINF:6,
index_720p1500k_00010.ts
#EXTINF:6,
index_720p1500k_00011.ts
#EXTINF:6,
index_720p1500k_00012.ts
```

**Example Manifiesto personalizado VOD HLS:**  
MediaTailor se añade `PROGRAM-DATE-TIME` a los manifiestos de VOD para utilizarlos como anclajes para los `DATERANGE` elementos HLS que indican las posiciones de los anuncios.  
El `DATERANGE` que se MediaTailor genera tiene valores de ID únicos. Para garantizar la exclusividad (según las directrices especificadas en la [asignación del SCTE-35 a EXT-X-DATERANGE](https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.7.1)) MediaTailor , combina el `MEDIA-SEQUENCE` número del *primer* segmento de anuncio de la oferta con el número de secuencia del anuncio incluido en ella.  
En el siguiente ejemplo, MediaTailor concatena `MEDIA-SEQUENCE` 421 con el número de posición del anuncio.  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXT-X-PROGRAM-DATE-TIME:1970-01-01T00:00:00Z
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00001.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00002.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00003.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00004.ts
#EXTINF:4.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00005.ts
#EXT-X-DISCONTINUITY
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/28
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/29
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/30
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/31
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/32
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/33
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/34
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/35
#EXT-X-DISCONTINUITY
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/36
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/37
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/38
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/39
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/40
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/41
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/42
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/43
#EXT-X-DISCONTINUITY
#EXTINF:2.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00006.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00007.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00008.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00009.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00010.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00011.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00012.ts
#EXT-X-ENDLIST
#EXT-X-DATERANGE:ID="5-1",START-DATE="1970-01-01T00:00:28.000Z",END-DATE="1970-01-01T00:00:43.015Z",DURATION=15.015
#EXT-X-DATERANGE:ID="5-2",START-DATE="1970-01-01T00:00:43.015Z",END-DATE="1970-01-01T00:00:58.030Z",DURATION=15.01
```

# Personalización de los manifiestos de DASH con metadatos de anuncios
<a name="ad-id-manifest-dash"></a>

MediaTailor personaliza el manifiesto con las creatividades devueltas por el Ad Decision Server (ADS). Para cada anuncio, MediaTailor también incluye un `EventStream` elemento que abarca toda la duración del anuncio. El formato de los `Event` elementos es similar al descrito en la sección [Señalización creativa de anuncios en DASH y HLS](https://www.svta.org/document/draft-ad-creative-signaling-in-dash-and-hls/) en la versión 2023 de la publicación técnica de la *SVA*.

En el caso de pausas publicitarias insuficientemente pobladas en configuraciones en las que se haya activado la lista, MediaTailor añade el período de espera al final del período de disponibilidad, pero sin metadatos `EventStream`

Para cada anuncio incluido en el manifiesto personalizado, MediaTailor añade los metadatos de la creatividad, representados como un `CDATA` elemento dentro de otro elemento. `Event`

**Example Origen DASH lineal (atributos SCTE integrados):**  

```
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="dynamic" publishTime="2023-02-10T21:08:40+00:00" minimumUpdatePeriod="PT6S" availabilityStartTime="2023-02-09T22:47:05.865000+00:00" minBufferTime="PT10S" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT88.999S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT80141.456S" id="104" duration="PT304.103S">
    <AdaptationSet id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
      <SegmentTemplate timescale="60000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="151" presentationTimeOffset="4808487386">
        <SegmentTimeline>
          <S t="4824975858" d="360360" r="3"/>
          <S t="4826417298" d="316316"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1800000" codecs="avc1.4D401F"/>
      <Representation id="3" width="640" height="360" frameRate="30000/1001" bandwidth="1200000" codecs="avc1.4D401E"/>
      <Representation id="5" width="480" height="270" frameRate="30000/1001" bandwidth="800000" codecs="avc1.4D4015"/>
    </AdaptationSet>
    <AdaptationSet id="1377232898" mimeType="audio/mp4" segmentAlignment="0" lang="eng">
      <Label>eng</Label>
      <SegmentTemplate timescale="48000" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="151" presentationTimeOffset="3846790126">
        <SegmentTimeline>
          <S t="3859981294" d="287744"/>
          <S t="3860269038" d="288768"/>
          <S t="3860557806" d="287744"/>
          <S t="3860845550" d="288768"/>
          <S t="3861134318" d="252928"/>
        </SegmentTimeline>
        </SegmentTemplate>
        <Representation id="2" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="4" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="6" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:02:31.007Z"/>
  </Period>
  <Period start="PT80445.560S" id="155" duration="PT44.978S">
    <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
      <Event duration="4048044">
        <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="207000" tier="4095">
          <scte35:SpliceInsert spliceEventId="111" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
            <scte35:Program>
              <scte35:SpliceTime ptsTime="7239893422"/>
            </scte35:Program>
            <scte35:BreakDuration autoReturn="true" duration="4048044"/>
          </scte35:SpliceInsert>
        </scte35:SpliceInfoSection>
      </Event>
    </EventStream>
    <AdaptationSet id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
      <SegmentTemplate timescale="60000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="156" presentationTimeOffset="4826733614">
        <SegmentTimeline>
          <S t="4826733614" d="284284"/>
          <S t="4827017898" d="360360" r="5"/>
          <S t="4829180058" d="252252"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1800000" codecs="avc1.4D401F"/>
      <Representation id="3" width="640" height="360" frameRate="30000/1001" bandwidth="1200000" codecs="avc1.4D401E"/>
      <Representation id="5" width="480" height="270" frameRate="30000/1001" bandwidth="800000" codecs="avc1.4D4015"/>
    </AdaptationSet>
    <AdaptationSet id="1377232898" mimeType="audio/mp4" segmentAlignment="0" lang="eng">
      <Label>eng</Label>
      <SegmentTemplate timescale="48000" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="156" presentationTimeOffset="3861387246">
        <SegmentTimeline>
          <S t="3861387246" d="227328"/>
          <S t="3861614574" d="288768"/>
          <S t="3861903342" d="287744"/>
          <S t="3862191086" d="288768"/>
          <S t="3862479854" d="287744"/>
          <S t="3862767598" d="288768"/>
          <S t="3863056366" d="287744"/>
          <S t="3863344110" d="202752"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="2" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="4" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="6" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:07:35.111Z"/>
  </Period>
  <Period start="PT80490.538S" id="163">
    <AdaptationSet id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
      <SegmentTemplate timescale="60000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="164" presentationTimeOffset="4829432310">
        <SegmentTimeline>
          <S t="4829432310" d="348348"/>
          <S t="4829780658" d="360360" r="1"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1800000" codecs="avc1.4D401F"/>
      <Representation id="3" width="640" height="360" frameRate="30000/1001" bandwidth="1200000" codecs="avc1.4D401E"/>
      <Representation id="5" width="480" height="270" frameRate="30000/1001" bandwidth="800000" codecs="avc1.4D4015"/>
    </AdaptationSet>
    <AdaptationSet id="1377232898" mimeType="audio/mp4" segmentAlignment="0" lang="eng">
      <Label>eng</Label>
      <SegmentTemplate timescale="48000" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="164" presentationTimeOffset="3863546862">
        <SegmentTimeline>
          <S t="3863546862" d="278528"/>
          <S t="3863825390" d="287744"/>
          <S t="3864113134" d="288768"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="2" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="4" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="6" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:08:20.090Z"/>
  </Period>
</MPD>
```

**Example Manifiesto DASH lineal personalizado (con señalización publicitaria creativa):**  

```
<MPD availabilityStartTime="2023-02-09T22:47:05.865000+00:00" id="201" minBufferTime="PT10S" minimumUpdatePeriod="PT6S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-02-10T21:08:43+00:00" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT88.999S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
    <BaseURL>https://d3fch9e2fcarly.cloudfront.net/out/v1/f9f38deca3f14fc4b5ab3cdbd76cfb9e/</BaseURL>
    <Location>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dash/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/out/v1/f9f38deca3f14fc4b5ab3cdbd76cfb9e/index.mpd?aws.sessionId=672ed481-4ffd-4270-936f-7c8403947f2e</Location>
    <Period duration="PT304.103S" id="104" start="PT80141.456S">
        <AdaptationSet bitstreamSwitching="true" id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="4808487386" startNumber="151" timescale="60000">
                <SegmentTimeline>
                    <S d="360360" r="3" t="4824975858"/>
                    <S d="316316" t="4826417298"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation bandwidth="1800000" codecs="avc1.4D401F" frameRate="30000/1001" height="540" id="1" width="960"/>
            <Representation bandwidth="1200000" codecs="avc1.4D401E" frameRate="30000/1001" height="360" id="3" width="640"/>
            <Representation bandwidth="800000" codecs="avc1.4D4015" frameRate="30000/1001" height="270" id="5" width="480"/>
        </AdaptationSet>
        <AdaptationSet id="1377232898" lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <Label>eng</Label>
            <SegmentTemplate initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="3846790126" startNumber="151" timescale="48000">
                <SegmentTimeline>
                    <S d="287744" t="3859981294"/>
                    <S d="288768" t="3860269038"/>
                    <S d="287744" t="3860557806"/>
                    <S d="288768" t="3860845550"/>
                    <S d="252928" t="3861134318"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="2">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="4">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="6">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
        <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:02:31.007Z"/>
    </Period>
    <Period id="155_1" start="PT22H20M45.56S">
        <BaseURL>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dashsegment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/672ed481-4ffd-4270-936f-7c8403947f2e/155/155_1/</BaseURL>
        <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
            <Event presentationTime="xxxxx" duration="1351350">
                <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "155_1","ad_position": "155_1", "ad_type":"avail","creative_id": "123","tracking_uri": "../../../../v1/tracking/hashed-account-id/origin-id/session-id","custom_vast_data":"123abc"}]}]]>
            </Event>
        </EventStream>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="1800000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_1_2init.mp4" media="asset_540_1_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="1200000" codecs="avc1.64001e" height="360" id="3" width="640">
                <SegmentTemplate initialization="asset_360_1_1init.mp4" media="asset_360_1_1_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="800000" codecs="avc1.640015" height="270" id="5" width="480">
                <SegmentTemplate initialization="asset_270_0_0init.mp4" media="asset_270_0_0_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
        <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000"/>
            <Label>eng</Label>
            <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="6">
                <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000">
                    <SegmentTimeline>
                        <S d="98304" t="0"/>
                        <S d="96256" r="1" t="98304"/>
                        <S d="95232" t="290816"/>
                        <S d="96256" r="2" t="386048"/>
                        <S d="48128" t="674816"/>
                    </SegmentTimeline>
                </SegmentTemplate>
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="155_2" start="PT22H21M0.575S">
        <BaseURL>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dashsegment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/672ed481-4ffd-4270-936f-7c8403947f2e/155/155_2/</BaseURL>
        <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
            <Event presentationTime="0" duration="1351350">
                <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "155_2","ad_position": "155_2", "ad_type":"avail","creative_id": "234","tracking_uri": "../../../../v1/tracking/hashed-account-id/origin-id/session-id","custom_vast_data":"123abc"}]}]]>
            </Event>
        </EventStream>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="1800000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_1_2init.mp4" media="asset_540_1_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="1200000" codecs="avc1.64001e" height="360" id="3" width="640">
                <SegmentTemplate initialization="asset_360_1_1init.mp4" media="asset_360_1_1_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="800000" codecs="avc1.640015" height="270" id="5" width="480">
                <SegmentTemplate initialization="asset_270_0_0init.mp4" media="asset_270_0_0_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
        <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000"/>
            <Label>eng</Label>
            <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="6">
                <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000">
                    <SegmentTimeline>
                        <S d="98304" t="0"/>
                        <S d="96256" r="1" t="98304"/>
                        <S d="95232" t="290816"/>
                        <S d="96256" r="2" t="386048"/>
                        <S d="48128" t="674816"/>
                    </SegmentTimeline>
                </SegmentTemplate>
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="155_3" start="PT22H21M15.59S">
        <BaseURL>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dashsegment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/672ed481-4ffd-4270-936f-7c8403947f2e/155/155_3/</BaseURL>
        <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
            <Event presentationTime="0" duration="1351350">
                <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "155_3","ad_position": "155_3", "ad_type":"avail","creative_id": "345","tracking_uri": "../../../../v1/tracking/hashed-account-id/origin-id/session-id","custom_vast_data":"123abc"}]}]]>
            </Event>
        </EventStream>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="1800000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_1_2init.mp4" media="asset_540_1_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="1200000" codecs="avc1.64001e" height="360" id="3" width="640">
                <SegmentTemplate initialization="asset_360_1_1init.mp4" media="asset_360_1_1_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="800000" codecs="avc1.640015" height="270" id="5" width="480">
                <SegmentTemplate initialization="asset_270_0_0init.mp4" media="asset_270_0_0_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
        <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000"/>
            <Label>eng</Label>
            <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="6">
                <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000">
                    <SegmentTimeline>
                        <S d="98304" t="0"/>
                        <S d="96256" r="1" t="98304"/>
                        <S d="95232" t="290816"/>
                        <S d="96256" r="2" t="386048"/>
                        <S d="48128" t="674816"/>
                    </SegmentTimeline>
                </SegmentTemplate>
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="163" start="PT80490.538S">
        <AdaptationSet bitstreamSwitching="true" id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="4829432310" startNumber="164" timescale="60000">
                <SegmentTimeline>
                    <S d="348348" t="4829432310"/>
                    <S d="360360" r="1" t="4829780658"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation bandwidth="1800000" codecs="avc1.4D401F" frameRate="30000/1001" height="540" id="1" width="960"/>
            <Representation bandwidth="1200000" codecs="avc1.4D401E" frameRate="30000/1001" height="360" id="3" width="640"/>
            <Representation bandwidth="800000" codecs="avc1.4D4015" frameRate="30000/1001" height="270" id="5" width="480"/>
        </AdaptationSet>
        <AdaptationSet id="1377232898" lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <Label>eng</Label>
            <SegmentTemplate initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="3863546862" startNumber="164" timescale="48000">
                <SegmentTimeline>
                    <S d="278528" t="3863546862"/>
                    <S d="287744" t="3863825390"/>
                    <S d="288768" t="3864113134"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="2">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="4">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="6">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
        <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:08:20.090Z"/>
    </Period>
</MPD>
```

# Interacciones con el servidor de decisiones publicitarias (ADS)
<a name="ad-id-ads-interactions"></a>

MediaTailor utiliza el valor del `id` atributo creativo de la respuesta VAST como valor en la señalización del ID del anuncio. Si el valor del `id` atributo está vacío o no aparece en la respuesta VAST, MediaTailor coloca un valor vacío en la señalización del ID del anuncio.

**Example Respuesta de VAST:**  
El siguiente ejemplo de respuesta VAST incluye un valor de `id` atributo para el lineal `Creative` en línea. MediaTailor extrae el valor del `Extension` elemento VAST personalizado y lo coloca en los metadatos creativos del manifiesto.  

```
<?xml version="1.0" encoding="utf-8"?>
<VAST version="3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Ad sequence="3">
        <InLine>
            <AdSystem>2.0</AdSystem>
            <AdTitle>AD-caribbean2-15</AdTitle>
            <Impression><![CDATA[https://n8ljfs0xxx.execute-api.us-west-2.amazonaws.com/v1/impression]]></Impression>
            <Creatives>
                <Creative sequence="3" apiFramework="inLine" id="1234">
                    <Linear>
                        <Duration>00:00:15</Duration>
                        <MediaFiles>
                            <MediaFile id="00002" delivery="progressive" type="video/mp4" width="1280" height="720"><![CDATA[https://d3re4i3vgppxxx.cloudfront.net/Media/Bumpers/AD-caribbean2-15-HD.mp4]]></MediaFile>
                        </MediaFiles>
                    </Linear>
                </Creative>
            </Creatives>
          <Extensions>
            <Extension type="creative_signaling"><![CDATA[999999|TVNlDDNpFTchtpRj,E5TfTtcYd5IEzvEt,ChA05OHcvWRGFY6Zp5VSSlxUEJ2B9p8GGhQIDzIQkFeQC-Ho67FR3P9qNa6khSAGKgAyAA]]></Extension>
          </Extensions>
        </InLine>
    </Ad>
</VAST>
```

# API de seguimiento del lado del cliente
<a name="ad-id-client-side-tracking-api"></a>

En el siguiente ejemplo, se muestra cómo el SDK de un reproductor vincula los metadatos del anuncio del manifiesto con los datos completos de los eventos de seguimiento de la carga útil de respuesta de seguimiento del lado del cliente mediante y. `creativeId` `adId`

**Example Mensaje JSON:**  

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "ads": [
        {
          "adId": "5",
          "adParameters": "",
          "adProgramDateTime": null,
          "adSystem": "2.0",
          "adTitle": "AD-caribbean2-15",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "1234",
          "creativeSequence": "2",
          "duration": "PT15S",
          "durationInSeconds": 15,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT30S",
          "startTimeInSeconds": 30,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://myServer/impression"
              ],
              "duration": "PT15S",
              "durationInSeconds": 15,
              "eventId": "5",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT30S",
              "startTimeInSeconds": 30
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "5",
      "availProgramDateTime": null,
      "duration": "PT15S",
      "durationInSeconds": 15,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT30S",
      "startTimeInSeconds": 30
    }
  ],
  "nextToken": "UFQ1TTM0Ljk2N1NfMjAyMi0xMS0xOFQwNDozMzo1Mi4yNDUxOTdaXzE%3D",
  "nonLinearAvails": []
}
```