View a markdown version of this page

Funciones: ciclos de vida - AWS Elemental MediaTailor

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.

Funciones: ciclos de vida

Un enlace de ciclo de vida define cuándo se MediaTailor ejecuta la función durante la reproducción. Esta página es una referencia completa para los campos de entrada, los espacios de nombres de salida y las reglas que rigen el flujo de datos en cada enlace.

Descripción general de

MediaTailor admite cuatro ganchos de ciclo de vida:

  • PRE_SESSION_INITIALIZATIONse activa una vez cuando un espectador inicia una nueva sesión. Utilízalo para tareas de configuración únicas, como buscar segmentos de audiencia. En este momento, no se ha producido ninguna pausa publicitaria, por lo que el contexto de la pausa publicitaria no está disponible.

  • PRE_ADS_REQUESTse activa antes de cada solicitud del servidor de decisiones publicitarias (ADS), una vez por cada pausa publicitaria de la transmisión. Utilízala para personalizar la solicitud de ADS con datos de segmentación, modificar la URL de ADS o añadir encabezados.

  • POST_ADS_RESPONSEse activa después de MediaTailor recibir y analizar la respuesta del ADS, incluida la resolución de los redireccionamientos del contenedor de la plantilla de publicación de anuncios de vídeo (VAST). Utilízala para filtrar, reordenar, modificar o complementar los anuncios devueltos por la ADS antes MediaTailor de seleccionar los anuncios que quieres insertar.

  • PRE_MANIFEST_INSERTIONse activa al final de la política de personalización de las pausas publicitarias, tras la selección del anuncio, las comprobaciones de transcodificación y la política de llenado, inmediatamente antes de incluir los anuncios MediaTailor en el manifiesto. Utilízala para inspeccionar o modificar el conjunto final de anuncios, por ejemplo, para añadir anuncios adicionales en pausas publicitarias que no estén bien rellenadas.

Los ganchos difieren en cuanto a tiempo y alcance. PRE_SESSION_INITIALIZATIONse ejecuta una vez y configura los datos que persisten durante toda la sesión. PRE_ADS_REQUESTy POST_ADS_RESPONSE evita cada interacción de ADS. PRE_ADS_REQUESTda forma a la solicitud saliente y POST_ADS_RESPONSE actúa en función de la respuesta analizada antes de seleccionar el anuncio. PRE_MANIFEST_INSERTIONse ejecuta una vez finalizada la selección y muestra el anuncio definitivo para todas las pausas publicitarias recién personalizadas en una sola invocación.

importante

Los enlaces PRE_ADS_REQUESTPOST_ADS_RESPONSE, y PRE_MANIFEST_INSERTION comparten un presupuesto de ejecución combinado de 2000 ms para una sola solicitud. Este presupuesto se suma al tiempo de espera de 2000 ms propio de cada enlace. El tiempo de espera efectivo de un gancho es el menor entre su propio tiempo de espera y el presupuesto restante. El tiempo empleado por un enlace anterior reduce el tiempo disponible para los ganchos posteriores en la misma solicitud. Si el presupuesto restante se agota antes de que comience un enlace, MediaTailor lo omite y continúa procesando la solicitud sin él. PRE_SESSION_INITIALIZATIONse ejecuta durante la inicialización de la sesión y no forma parte del presupuesto combinado. Para obtener más información, consulte Límites.

nota

En esta documentación, una pausa publicitaria también se denomina avail. Los nombres de los campos de entrada (como avail.availId yavails.avails) y CloudWatch las métricas utilizan el avail formulario.

Referencia del campo de entrada

En la siguiente tabla se enumeran los campos de entrada disponibles en cada enlace del ciclo de vida. En la columna Campo, la parent[].child notación indica un campo de cada elemento de la parent matriz.

nota

PRE_MANIFEST_INSERTIONLos ganchos POST_ADS_RESPONSE y muestran los campos de sesión en CamelCase (por ejemplo,session.clientIp), mientras que los dos primeros ganchos usan snake_case (por ejemplo,). session.client_ip Los parámetros del jugador están disponibles en el espacio de player_params nombres de los dos primeros ganchos y como objeto en los session.playerParams otros dos.

Campo Tipo PRE_SESSION_INITIALIZATION PRE_ADS_REQUEST POST_ADS_RESPONSE INSERCIÓN PREVIA A LA MANIFESTACIÓN
session.idLargo✓✓✓✓
session.uuidCadena✓✓✓✓
session.client_ipCadena✓✓✗✗
session.clientIpCadena✗✗✓✓
session.user_agentCadena✓✓✗✗
session.userAgentCadena✗✗✓✓
session.referer*Cadena✓✓✗✗
session.avail_duration_secsLargo✗✓✗✗
session.avail_duration_msLargo✗✓✗✗
session.streamingProtocolCadena✗✗✓✓
session.playerParamsObjeto✗✗✓✓
player_params.*Cadena✓✓✗✗
event.idCadena✓✓✓✓
event.hookCadena✓✓✓✓
event.timestampCadena✓✓✓✓
avail.indexInt✗✓✗✗
avail.randomLargo✗✓✗✗
avail.source_content_time_epoch_msLargo✗✓✗✗
avail.availId†Cadena✗✗✓✗
avail.durationSeconds†Número✗✗✓✗
avail.startTime†Cadena✗✗✓✗
scte.event_idInt✗✓✗✗
scte.avail_numInt✗✓✗✗
scte.segmentation_event_idInt✗✓✗✗
scte.segmentation_type_idInt✗✓✗✗
scte.segmentation_upidCadena✗✓✗✗
scte.segmentation_upid.assetIdCadena✗✓✗✗
scte.segmentation_upid.cueData.keyCadena✗✓✗✗
scte.segmentation_upid.cueData.valueCadena✗✓✗✗
scte.unique_program_idInt✗✓✗✗
scte.archive_allowed_flagBooleano✗✓✗✗
scte.delivery_not_restricted_flagBooleano✗✓✗✗
scte.device_restrictionsInt✗✓✗✗
scte.no_regional_blackout_flagBooleano✗✓✗✗
scte.segment_numInt✗✓✗✗
scte.segments_expectedInt✗✓✗✗
scte.sub_segment_numInt✗✓✗✗
scte.sub_segments_expectedInt✗✓✗✗
scte.avails_expectedLargo✗✓✗✗
asset.*Cadena✗✓✗✗
inference.enrichedBooleano✗✓✗✗
inference.feedIdCadena✗✓✗✗
inference.dataEndpointCadena✗✓✗✗
inference.ptsLargo✗✓✗✗
inference.timescaleLargo✗✓✗✗
inference.regionCadena✗✓✗✗
inference.previousBreakEndPtsLargo✗✓✗✗
inference.parseErrorBooleano✗✓✗✗
adsRequest.urlCadena✗✓✓✗
adsRequest.methodCadena✗✓✓✗
adsRequest.headers.<key>Cadena✗✓✓✗
adsRequest.bodyCadena✗✓✗✗
adsResponse.responseTypeCadena✗✗✓✗
adsResponse.adsMatriz✗✗✓✗
adsResponse.ads[].adId‡Cadena✗✗✓✗
adsResponse.ads[].durationSecondsNúmero✗✗✓✗
adsResponse.ads[].adSystemCadena✗✗✓✗
adsResponse.ads[].adTitleCadena✗✗✓✗
adsResponse.ads[].creativeIdCadena✗✗✓✗
adsResponse.ads[].sequenceInt✗✗✓✗
adsResponse.ads[].mediaFilesMatriz✗✗✓✗
adsResponse.ads[].mediaFiles[].urlCadena✗✗✓✗
adsResponse.ads[].mediaFiles[].mimeTypeCadena✗✗✓✗
adsResponse.ads[].mediaFiles[].widthInt✗✗✓✗
adsResponse.ads[].mediaFiles[].heightInt✗✗✓✗
adsResponse.ads[].mediaFiles[].bitrateInt✗✗✓✗
adsResponse.ads[].trackingEvents.<eventType>Matriz de cadena✗✗✓✗
avails.availsMatriz✗✗✗✓
avails.avails[].availIdCadena✗✗✗✓
avails.avails[].durationSecondsNúmero✗✗✗✓
avails.avails[].startTimeNúmero✗✗✗✓
avails.avails[].mediaProtocolCadena (|) HLS DASH✗✗✗✓
avails.avails[].streamingModeCadena (LIVE|VOD)✗✗✗✓
avails.avails[].fillDurationSecondsNúmero✗✗✗✓
avails.avails[].fillRateNúmero (0—1)✗✗✗✓
avails.avails[].mutableBooleano✗✗✗✓
avails.avails[].adsMatriz✗✗✗✓
avails.avails[].ads[].adId§Cadena✗✗✗✓
avails.avails[].ads[].vastAdIdCadena✗✗✗✓
avails.avails[].ads[].creativeIdCadena✗✗✗✓
avails.avails[].ads[].insertionUuidCadena✗✗✗✓
avails.avails[].ads[].sequenceInAvailInt✗✗✗✓
avails.avails[].ads[].durationSecondsNúmero✗✗✗✓
avails.avails[].ads[].adSystemCadena✗✗✗✓
avails.avails[].ads[].adTitleCadena✗✗✗✓
avails.avails[].ads[].mediaUrlCadena✗✗✗✓
avails.avails[].ads[].trackingEvents.<eventType>Matriz de cadena✗✗✗✓
avails.avails[].ads[].mediaFilesMatriz✗✗✗✓
avails.avails[].skippedAdsMatriz✗✗✗✓
avails.avails[].skippedAds[].adIdCadena✗✗✗✓
avails.avails[].skippedAds[].vastAdIdCadena✗✗✗✓
avails.avails[].skippedAds[].durationSecondsNúmero✗✗✗✓
avails.avails[].skippedAds[].creativeUrlCadena✗✗✗✓
avails.avails[].skippedAds[].reasonCadena✗✗✗✓

* solo session.referer está presente cuando se incluye un encabezado de referencia en la solicitud de inicialización de la sesión. $exists(session.referer)Utilícelo para comprobar antes de acceder.

† El espacio de avail nombres solo está presente cuando la respuesta del ADS se aplica a una única pausa publicitaria. No está presente en las respuestas con interrupciones múltiples (VMAP) ni en las respuestas capturadas previamente. Úselo para comprobar antes $exists(avail) de acceder.

‡ AtPOST_ADS_RESPONSE, adId es el id atributo del <Ad> elemento VAST.

§ AtPRE_MANIFEST_INSERTION, adId es un identificador de ubicación interno. Es estable para un anuncio durante su pausa publicitaria, pero no es el ID de anuncio VAST y no es comparable entre pausas publicitarias o ganchos. Para comprobar la identidad que abarque pausas o enganches publicitarios, utiliza vastAdId (el id atributo del <Ad> elemento VAST) ocreativeId.

En las transmisiones de VOD de DASH, adTitle y adSystem estamos null en este enlace. Usa vastAdId o creativeId en los predicados allí.