View a markdown version of this page

Inserción de anuncios en el lado del servidor (SSAI) - Amazon IVS

Inserción de anuncios en el lado del servidor (SSAI)

La inserción de anuncios en el lado del servidor (SSAI) de Amazon IVS permite monetizar las transmisiones con anuncios de video. IVS SSAI se integra con AWS Elemental MediaTailor, lo que brinda acceso a funciones como la toma de decisiones sobre anuncios, la segmentación del público y la personalización. IVS proporciona una operación de API para insertar pausas publicitarias en la transmisión en directo, lo que le permite a los creadores u operadores controlar cuándo se publican los anuncios. IVS integra los anuncios directamente en la transmisión de video. Esto proporciona una experiencia de visualización perfecta y evita la compleja lógica del lado del cliente. Para obtener información sobre los costos asociados con la SSAI, consulte los costos de IVS.

Primeros pasos con SSAI

Este tutorial le permite comenzar a utilizar la inserción de anuncios del lado del servidor (SSAI) Amazon IVS. Al final de este tutorial, tendrá un canal IVS configurado para la inserción de anuncios en el servidor y sabrá cómo insertar pausas publicitarias en la transmisión en directo. IVS SSAI se integra con AWS Elemental MediaTailor para gestionar la toma de decisiones sobre anuncios.

Paso 1: crear un canal IVS.

Cree un canal IVS. Se necesitará la URL de reproducción del canal para configurar MediaTailor en el siguiente paso. Tras crear el canal, guarde los siguientes valores:

  • ARN del canal: lo necesitará para actualizar el canal más adelante.

  • Prefijo de URL de reproducción: extrae el prefijo de URL de la URL de reproducción (todo lo anterior a /api/). Por ejemplo, si la URL de reproducción es:

    • https://c17b3fb37fc9.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.ABcdef12ghIJ.m3u8

    el prefijo es:

    • https://c17b3fb37fc9.us-west-2.playback.live-video.net/

  • Formato de contenedor: debe configurarse en flujo de transporte (TS) MPEG.

Paso 2: crear una configuración de reproducción de MediaTailor

Cree una configuración de reproducción de AWS Elemental MediaTailor. Esta configuración conecta el servidor de decisiones publicitarias a IVS y permite la inserción de anuncios en las transmisiones.

La configuración de reproducción utiliza el prefijo URL de reproducción, que es común en todos los canales de IVS de su cuenta y región. Esto significa que puede utilizar una única configuración de reproducción de MediaTailor con varios canales IVS.

Consulte Crear una configuración de reproducción de MediaTailor en la Guía del usuario de AWS Elemental MediaTailor para obtener instrucciones. Al crear la configuración, se requieren los siguientes ajustes para IVS SSAI:

Opción Ubicación Valor
URL del servidor de decisión de anuncios Configuración necesaria URL del servidor de decisiones publicitarias
Orígenes de contenido Configuración necesaria Prefijo de URL de la URL de reproducción de IVS; por ejemplo, https://c17b3fb37fc9.us-west-2.playback.live-video.net/
Modo de inserción Detalles de personalización PLAYER_SELECT
importante

Especifica la fuente de contenido únicamente con el prefijo de la URL de reproducción de su canal (que termina en live-video.net/), no la URL completa. Si el formato es incorrecto, no se podrá crear una configuración de anuncios en el siguiente paso y se producirá un error de validación.

Paso 3: crear una configuración de anuncios de IVS

Una configuración de anuncios vincula sus recursos de IVS a su configuración de reproducción de MediaTailor. Puede utilizar una configuración de reproducción de MediaTailor creada en cualquier región de origen de IVS con una configuración de anuncios en cualquier otra región de origen de IVS. Las regiones de origen de IVS incluyen us-west-2, us-east-1, eu-west-1, eu-central-1, ap-northeast-1, ap-northeast-2 y ap-south-1.

Puede reutilizar una única configuración de anuncios en varios canales.

Para crear una configuración de anuncios (CLI de AWS):

aws ivs create-ad-configuration --name "my-ad-config" --media-tailor-playback-configurations playbackConfigurationArn="arn:aws:mediatailor:us-west-2:123456789012:playbackConfiguration/my-mediatailor-config"

Guarde el valor del ARN de la respuesta. Lo necesitará en el siguiente paso.

Paso 4: actualizar el canal con la configuración de anuncios

Actualice su canal IVS para asociarlo a la configuración de anuncios que ha creado. Para actualizar el canal (CLI de AWS):

aws ivs update-channel --arn "arn:aws:ivs:us-west-2:123456789012:channel/ABcdef12ghIJ" --ad-configuration-arn "arn:aws:ivs:us-west-2:123456789012:ad-configuration/ABcdef12ghIJ"

Paso 5: crear una entrada

Use el punto de conexión de ingesta y la clave de transmisión desde su canal para iniciar la transmisión.

Paso 6: insertar una pausa publicitaria

Mientras la transmisión esté en directo, llame a la operación InsertAdbreak para insertar una pausa publicitaria. Especifique el ARN del canal y la duración, en segundos, para la pausa publicitaria.

Para insertar una pausa publicitaria (CLI de AWS):

aws ivs insert-ad-break --channel-arn "arn:aws:ivs:us-west-2:123456789012:channel/ABcdef12ghIJ" --duration-seconds 30

Cuando InsertAdBreak regrese correctamente, recibirá un evento de EventBridge (cambio de estado de la pausa publicitaria de IVS) que contiene una marca de tiempo que indica la hora prevista en la que se insertará la pausa publicitaria en las listas de reproducción de los espectadores. Este es el momento en el que la emisora puede esperar razonablemente que los anuncios comiencen a sustituir al contenido. Si no se puede rellenar un anuncio (por ejemplo, si su servidor de decisiones publicitarias no devuelve un anuncio o si MediaTailor necesita transcodificar los anuncios), se muestra en su lugar el contenido de origen.

importante

No puede insertar pausas publicitarias adicionales mientras haya una pausa publicitaria existente en curso. Las llamadas posteriores a InsertAdBreak devolverán una ConflictException 409 hasta que finalice la pausa publicitaria actual.

Integración con EventBridge

Con la SSAI, se añade un evento de cambio de estado de pausa publicitaria de IVS (denominado Pausa publicitaria insertada) con los siguientes campos:

Campo Descripción
event_name El nombre del evento que se está emitiendo.
channel_name El nombre del canal que se activa mediante la solicitud de la API InsertAdBreak.
stream_id El ID de la transmisión en directo al canal activado por la solicitud de la API InsertAdBreak.
ad_break_id El ID único asociado a la pausa publicitaria, que corresponde al ID de la pausa publicitaria que aparece en la respuesta de la solicitud inicial de InsertAdBreak.
duration_seconds El valor en segundos que se incluyó en la solicitud de InsertAdBreak y que especificó el cliente.
target_start_time La fecha estimada de la emisión en directo en la que se inserta la pausa publicitaria en la lista de reproducción.

Paso 7: eventos del SDK del reproductor

En todas las plataformas, el SDK del reproductor muestra los eventos cuando se reproduce una pausa publicitaria y notifica cuando un anuncio comienza, progresa y se detiene. A continuación, se proporciona un resumen de alto nivel de los eventos y cronograma disponibles:

Evento Carga Desencadenador
Pausa publicitaria comenzada AdBreak Primer segmento de la pausa publicitaria
Creatividad de anuncios comenzada AdCreative Primer segmento de cada creatividad
Actualización de la hora del anuncio AdTimeUpdate Cada segundo durante la reproducción del anuncio
Creatividad de anuncios finalizada AdCreative Último segmento de cada creatividad
Pausa publicitaria finalizada AdBreak Primer segmento de contenido después de la pausa

Para ver los nombres específicos de los eventos y las cargas útiles de cada plataforma, consulte la documentación del SDK del reproductor:

A continuación, se muestra un ejemplo del uso de eventos publicitarios en el SDK web para crear un componente de interfaz de usuario sencillo con una cuenta regresiva de anuncios durante una pausa publicitaria:

// State let podLength = 0; let podIndex = 0; let remainingSeconds = 0; // Fired every second during the ad break player.addEventListener(PlayerEventType.AD_TIME_UPDATE, (payload) => { podLength = payload.podLength; podIndex = payload.podIndex; remainingSeconds = Math.round(payload.creativeDuration - payload.creativeElapsed); const text = `Ad ${podIndex} of ${podLength} · ${remainingSeconds}s remaining` // Ad 1 of 2 · 20s remaining console.log('Ad countdown text', text); UpdateAdOverlay(text); }); // Fired when the ad break ends player.addEventListener(PlayerEventType.AD_BREAK_ENDED, (payload) => { hideAdOverlay(); });

Marcadores de anuncios en el contenido grabado

Cuando se graba una transmisión en directo mediante la grabación automática en Amazon S3, IVS genera y graba una lista de reproducción de VOD en S3 que incluye marcadores de anuncios SCTE-35 en las posiciones en las que se activaron los anuncios durante la transmisión en directo. Para obtener más información, consulte Ejemplo de lista de reproducción de SSAI.

Experiencia del espectador

De forma predeterminada, MediaTailor rellena y muestra anuncios a todos los espectadores cuando inserta una pausa publicitaria. Si se utilizan identificadores de autorización de reproducción para las retransmisiones, se puede impedir que los espectadores reciban anuncios al añadir el nombre "aws:ads-opt-out": true a su token JWT de autorización de reproducción.

Cuando los espectadores comienzan a retransmitir a mitad de una pausa publicitaria, IVS redondea la duración de la pausa publicitaria al cuartil más cercano. Por ejemplo, si un espectador entra cuando quedan 35 segundos de una pausa publicitaria de 60 segundos, verá una pausa publicitaria de 45 segundos.

Al actualizar la configuración de reproducción de MediaTailor o añadir nuevos anuncios, es posible que los espectadores no vean los anuncios la primera vez que se solicite una pausa publicitaria, ya que MediaTailor primero debe transcodificar los anuncios. Transcurridos unos minutos, las siguientes llamadas a InsertAdbreak harán que los espectadores vean anuncios. Los registros de transcodificación de MediaTailor graban estas transcodificaciones.

Parámetros de seguimiento de espectadores

Al configurar un servidor de toma de decisiones publicitarias (ADS) en su configuración de reproducción de Elemental MediaTailor, se pueden pasar parámetros a ADS mediante plantillas (consulte Paso de parámetros de MediaTailor a ADS). Con IVD SSAI, se pueden transferir parámetros a cada espectador mediante el token de autorización de reproducción de ese usuario al agregar una notificación con el siguiente formato:

"aws:ads-player-params": { "key1": "value1", "key2": "value2" }

Estos parámetros se pasan a Elemental MediaTailor para que se rellenen como variables de plantilla [player_params.key1] y [player_params.key2]. Las claves que coloque en esta lista siempre tienen un espacio de nombres como parámetros de plantilla player_params.

El tamaño total de la carga útil de todas las claves y valores combinados está limitado a 1000 bytes.

Modo de presentación de informes

Mientras un espectador ve un anuncio, el cliente o el servidor pueden enviar balizas que indican el progreso de la reproducción de cada creatividad publicitaria. De forma predeterminada, MediaTailor gestiona las balizas en el servidor. Puede controlar el modo de presentación de informes al agregar la siguiente notificación al token de autorización de reproducción:

"aws:ads-reporting-mode": "CLIENT" | "SERVER"

El valor predeterminado es SERVER. Cuando se configura en SERVER, MediaTailor envía balizas al servidor. Cuando se configura en CLIENT, la baliza del lado del servidor está deshabilitada y los datos de seguimiento se proporcionan en el campo metadata.trackingData del evento AdBreakStarted del SDK del reproductor de IVS. El SDK del reproductor de IVS no llama a las URL de las balizas.

Problemas conocidos

  • Los anuncios de IVS no funcionan si el canal containerFormat de IVS está configurado en FRAGMENTED_MP4. Las llamadas a UpdateChannel y CreateChannel devolverán un error de validación si se utiliza el formato de contenedor FMP4 con una configuración de anuncios.

  • Durante la reproducción del anuncio, al cambiar entre el modo de velocidad de bits adaptativa y la selección manual de la calidad, el reproductor puede sufrir problemas de bloqueo y almacenamiento en búfer.

  • En el caso de las transmisiones de más de 12 horas de duración que se hayan interrumpido, es posible que la fecha y hora del programa varíen y, por lo tanto, no se muestren anuncios a los espectadores. La solución alternativa consiste en que el emisor reinicie la transmisión.

Ejemplo de lista de reproducción de SSAI

Lista de reproducción de variantes en vivo con SSAI

Cuando un anuncio se incluye en la transmisión, IVS inserta las etiquetas que se indican a continuación, antes de los segmentos del anuncio.

1. Declaración publicitaria combinada

#EXT-X-DATERANGE:ID="stitched-ad-1765566299-20000000000",CLASS="live-video-net-stitched-ad",START-DATE="2025-12-12T19:04:59.079Z",DURATION=20.000,X-NET-LIVE-VIDEO-AD-AD-BREAK-ID="test"
Atributo Descripción
ID

Formato: stitched-ad-{timestamp}-{duration}

{timestamp}: marca de tiempo en Unix del inicio del anuncio

{duration}:: duración del anuncio como número entero en nanosegundos

Tipo: matriz de cadenas

CLASS Siempre live-video-net-stitched-ad para anuncios de SSAI.
START-DATE La norma ISO 8601 programa la fecha/hora en que comienza el anuncio.
DURATION Duración del anuncio en segundos.
X-NET-LIVE-VIDEO-AD-AD-BREAK-ID El identificador de la pausa publicitaria devuelto por IVS cuando se llamó a la operación InsertAdBreak.

2. Cambio de fuente de la transmisión

#EXT-X-DATERANGE:ID="source-1765566299",CLASS="live-video-net-stream-source",START-DATE="2025-12-12T19:04:59.079Z",END-ON-NEXT=YES,X-NET-LIVE-VIDEO-STREAM-SOURCE="0f262e65-a709-4ef1-8741-e82d936c"
Atributo Descripción
CLASS Siempre live-video-net-stream-source.
START-DATE / END-ON-NEXT Metadatos de tiempo para este rango de fuentes.
X-NET-LIVE-VIDEO-STREAM-SOURCE Indica al reproductor que la fuente de video está cambiando. El valor está activo para el contenido principal o un identificador único para el contenido publicitario.

3. Marcador de discontinuidad

#EXT-X-DISCONTINUITY

Una etiqueta HLS estándar indica que los parámetros de codificación pueden cambiar entre la transmisión en directo y el contenido del anuncio.

Segmentos publicitarios

#EXT-X-PROGRAM-DATE-TIME:2025-12-12T19:04:59.079Z #EXTINF:2.000,0f262e65-a709-4ef1-8741-e82d936c https://4ce388b1cf28.j.cloudfront.hls.live-video.net/v1/segment/CvsCse8Qbs5DU_aRmrVLd72_nK9lo9xS1KjD115LsIXcsD27JfLfkSuamLUivqOTrfHUeGf6Zmx_c9rhq0btTOu7E4F1DaU8knNoebLq6FlKp6q8ysaQdEA10gKCNP92oAQ_0DGLInY462O9HUxgtk5KHj23ZjPhVCxIh3DjWqwaevDci1_q7dYL55rgSKd11SfpsGSS9Yup4g5dfzyGhfz6Y2Skaj34JtoVyd8Nxlppc4jDlZl-6j7YM1i2qdUcM3VNWrZrxCisBXgOPtI3vFdeNcNjPzVdOGjMz5cXcQIp8YOCwnkdkomhn_3xxmB1Zngl3QPao6-oPsjH3qVcMOCuKfKZSmRJGFLvkrO1PefV5ya3eUvihXCMvDE-81EmGp5q9ErEgFpz06rMDbYFWb3z9H8X0t8KzvGDOaqKTYHZ0lgEV-fULeDQ76pDy_OVPwhO2vJMxBpfdQ_IeB1QUK2wJmXJ96Mvv0C2dcb0F7zE3lr_iBGemUjwmb7JmBoM3HdJbpV0TGp8C6vhIAEqCXVzLXdlc3QtMjD3DQ.ts?dna=CmanuVzG9F6kGS2X7ThbGZyZPHWgX2TiBlBMYsvGWLcWaLWyntTaWRp5D9qjZsrGKkzdwoLNY4pri6ZgpxnzqLqWvhcP6zoGu8vifP5NxPgiNKMmYdUmQrqTAf7jbauvE3c6B9ebptAaDEkrbrnG1qF8Cv3kbiABKgl1cy13ZXN0LTIw9w0
Atributo Descripción
EXT-X-PROGRAM-DATE-TIME Marca de tiempo de este segmento.
EXTINF

Formato: {duration},{tag}

{duration}: longitud del segmento en segundos.

{tag}: identificador de fuente. En el caso del contenido en directo, esto es siempre live. En el caso del contenido publicitario, se trata de un UUID proporcionado por MediaTailor que identifica de forma exclusiva la transcodificación del recurso publicitario.

URL de segmento Punto de conexión alojado en IVS que contiene información cifrada sobre el segmento y su ubicación en las cachés de IVS.

Lista de reproducción de variantes de VOD con SSAI

Cuando se graba una transmisión en directo, IVS genera y graba una lista de reproducción de VOD en S3 que incluye marcadores de anuncios SCTE-35 en las posiciones en las que se activaron los anuncios durante la transmisión en directo. Para publicar anuncios durante la reproducción de VOD, se publica esta lista de reproducción de IVS a través de MediaTailor, que se encarga de combinar los segmentos de anuncios a la lista de reproducción. MediaTailor reemplaza los segmentos de VOD originales durante la pausa publicitaria por segmentos de anuncios.

1. Marcador de inicio de pausa publicitaria (SCTE35-OUT)

#EXT-X-DATERANGE:ID="12345678",START-DATE="2025-12-06T00:45:45.723Z",PLANNED-DURATION=20.0,SCTE35-OUT=0xFC302000000000000000FFF00F05F8E7AEFC7FFFFE001B7740000000000000340CFD88
Atributo Descripción
ID Un identificador único para esta pausa publicitaria. Se utiliza para correlacionar los marcadores de inicio y fin.
START-DATE La norma ISO 8601 programa la fecha/hora en que comienza el anuncio publicitario.
PLANNED-DURATION Duración esperada de la pausa publicitaria en segundos.
SCTE35-OUT Marcador SCTE-35 que indica el inicio de la pausa publicitaria.

2. Segmentos de anuncios (MediaTailor combinado)

#EXTINF:2.0, ../../../../segment/b2857627df9428679e888ee8daa979d0b7559801/gk-test-ivs-vod/bd0c7d90-a47c-4a91-b5ec-7d0f9897049b/0/3
Atributo Descripción
EXTINF Duración del segmento publicitario en segundos.
Segment URL Ruta relativa al segmento de anuncios alojado en MediaTailor.

3. Marcador de finalización de pauta publicitaria (SCTE35-IN)

#EXT-X-DATERANGE:ID="12345678",START-DATE="2025-12-06T00:45:45.723Z",END-DATE="2025-12-06T00:46:07.889Z",DURATION=20.0,SCTE35-IN=0xFC302000000000000000FFF00F05F8E7AEFC7F7FFE001B7740000000000000C23E5851
Atributo Descripción
ID El mismo identificador que el marcador de inicio. Une las dos.
START-DATE Hora original de inicio de la pausa publicitaria (igual que la del marcador de inicio).
END-DATE La norma ISO 8601 indica con marca horaria cuando la pausa publicitaria terminó.
DURATION Duración real de la pausa publicitaria en segundos.
SCTE35-IN Marcador SCTE-35 que indica el final de la pausa publicitaria.