Control del orden de los eventos controlling-the-order-of-events
El seguimiento de secuencias de vídeo es una operación que depende en gran medida del tiempo y, en ocasiones, las llamadas de seguimiento de la Media Collection API llegan al servidor fuera de orden. En esta situación, el servidor intenta poner en cola y reordenar los eventos basándose en la marca de tiempo proporcionada en el objeto playerTime
. Esto ocurre con algunos límites. Actualmente, la reordenación puede fallar si los retrasos entre las llamadas a un pedido son de más de un segundo. En futuras actualizaciones, el “tiempo de demora aceptable” puede optimizarse y configurarse.
Ejemplo de evento desordenado
Los eventos desordenados se producen cuando los eventos pasan por la red, lo que a veces provoca un retraso.
Por ejemplo, puede enviar un adBreakStart
seguido de un adStart
evento. Este es un caso de uso común, ya que es necesario para que un anuncio comience dentro de una pausa publicitaria.
Si el anuncio está listo y no se necesita búfer, ambos eventos se producen casi instantáneamente y la variable playerTime.ts
para ambos eventos son muy cercanos entre sí, pero nunca deben ser iguales.
"playerTime.ts" de eventos nunca debe ser igual para ningún evento, ya que el algoritmo de clasificación no sabría qué evento ocurrió primero. Debe haber al menos 1 milisegundo de diferencia de marca de tiempo para cada 2 eventos consecutivos.
Puesto que ambos eventos se producen muy cerca entre sí en el momento en que se activan las llamadas de red, es posible que lleguen desordenados. En este ejemplo, el evento adStart
llega antes del evento adBreakStart
.
Hay una ventana temporizada de eventos: 5 segundos o un máximo de 10 eventos. Los eventos se almacenan en búfer antes de enviarlos a la canalización de procesamiento. Cuando se cumplen las condiciones: han transcurrido 5 segundos o se han recibido más de 10 eventos, los eventos se reordenan en función de la variable playerTime.ts
y luego se envían en el nuevo pedido a la canalización de procesamiento.
sessionStart
.