SSAI significa Server Side Ad Insertion y es una técnica que inserta anuncios directamente en la transmisión de vídeo en el servidor antes de que llegue al dispositivo del espectador. Con SSAI el reproductor recibe una única emisión continua que combina contenido principal y anuncios, logrando transiciones fluidas y una experiencia de reproducción sin cortes.
Beneficios clave: reproducción sin interrupciones y sin pauses molestas; mejor resistencia a los bloqueadores de anuncios al formar parte del flujo principal; rendimiento consistente en distintos dispositivos sin lógica compleja en el cliente; mejor medición mediante beacons y analíticas combinadas servidor-cliente; escalabilidad al gestionar campañas desde el servidor.
En este artículo explicamos cómo integrar AWS MediaTailor SSAI con un reproductor web; usaremos como ejemplo video.js y describimos los aspectos frontend que debes conocer. Si necesitas una implementación a medida podemos ayudar desde Q2BSTUDIO como empresa especializada en desarrollo de software a medida, aplicaciones a medida, inteligencia artificial, ciberseguridad y servicios cloud aws y azure. Conoce nuestras soluciones de aplicaciones a medida y software a medida y cómo desplegamos infraestructuras en la nube en servicios cloud aws y azure.
Paso 1 Formar la session URL: la session URL es la petición POST que inicia el flujo de stitching en MediaTailor y llega al ad decision server (por ejemplo FreeWheel). Normalmente se genera a partir de la URL del manifiesto sustituyendo segmentos como dash o master por session, según el formato del asset (DASH o HLS). Dependiendo del CDN y de la arquitectura backend tu equipo puede construirla en el cliente o producirla desde el servidor usando un identificador de vídeo y devolviendo al reproductor el manifiesto ya preparado.
Paso 2 Petición POST para obtener manifiesto y tracking URL: envía la session URL en un POST con los parámetros que el ad decision server requiera. Asegúrate de que el user agent se preserve (en navegadores modernos lo gestiona el propio cliente). La respuesta contendrá al menos un manifestUrl con el manifiesto ya stitchado y un trackingUrl para obtener los metadatos de anuncios y los beacons.
Paso 3 Parsear la respuesta: al recibir el JSON construye las URLs completas usando el mismo dominio del POST. El manifestUrl se carga en video.js como origen para reproducir el stream ya combinado con anuncios. El trackingUrl es la fuente de la verdad para obtener información de los ad pods y sus eventos.
Paso 4 Trabajar con tracking URL: antes de llamar al trackingUrl carga el manifiesto actualizado en el reproductor para evitar respuestas vacías del servicio de stitching. Una vez cargado, realiza una petición GET al trackingUrl para obtener un JSON que contiene una clave avails con un arreglo de ad pods. Cada ad pod incluye tiempos de inicio en segundos startTimeInSeconds que permiten marcar los segmentos publicitarios en la barra de progreso del reproductor y mostrar contadores o marcadores visuales en video.js.
Paso 5 Beaconing cliente: además del tracking servidor, MediaTailor permite que el reproductor envíe beacons para medir eventos de impresión y participación. Cada anuncio incluye una colección trackingEvents con startTimeInSeconds y beaconUrls; el reproductor debe emitir peticiones GET a esas URLs en el momento indicado. En reproductores web se puede usar el evento timeupdate para comprobar la posición y disparar los beacons, pero hay que gestionar la lógica con cuidado ya que timeupdate se dispara varias veces por segundo y es fácil duplicar envíos. Considera agrupar estados y limpiar eventos ya disparados para evitar repeticiones.
Marcadores y UX: usa los tiempos proporcionados por avails para pintar marcadores en la seekbar y mostrar un contador de anuncios restante y un temporizador. Existen complementos para video.js que facilitan la gestión de marcadores, contador y la lógica de beaconing, acelerando la integración frontend.
Precauciones y buenas prácticas: cargar siempre el manifiesto con sessionId antes de solicitar el trackingUrl; validar respuestas vacías en ad pods; implementar reintentos suaves para peticiones de beacons; y monitorear métricas de reproducción para detectar problemas de stitching o latencia. Para una integración robusta conviene combinar el tracking servidor que ofrece MediaTailor con el beaconing cliente para obtener métricas más granulares.
Ejemplo de flujo resumido: formar session URL, POST para recibir manifestUrl y trackingUrl, cargar manifestUrl en el reproductor, solicitar trackingUrl para marcar ad pods, y gestionar beaconing cliente según los trackingEvents de cada anuncio.
En Q2BSTUDIO desarrollamos integraciones personalizadas y soluciones de streaming con SSAI, optimizando tanto la capa frontend como la backend, e incorporando prácticas de seguridad y medición. Nuestros servicios abarcan desarrollo de software a medida, inteligencia artificial e ia para empresas, ciberseguridad, agentes IA, servicios de inteligencia de negocio y análisis con power bi para mejorar la toma de decisiones. Si buscas soporte profesional para implementar SSAI, medir campañas y asegurar la infraestructura en la nube podemos ayudarte con una solución integral que combina experiencia técnica y adaptación a tus requisitos de negocio.
Contáctanos para diseñar una integración a medida que incluya marcadores de anuncios, beaconing fiable y despliegue en la nube, optimizada para rendimiento y escalabilidad. También ofrecemos consultoría en inteligencia de negocio y visualización con power bi para aprovechar los datos de reproducción y publicidad en tiempo real.