L’objectif de notre outil Data Flow est de vous fournir des informations de la plus haute qualité le plus rapidement possible sur chaque événement collecté. Certaines informations (comme le temps passé entre deux évènements par exemple) ne peuvent être calculées qu’une fois le second événement reçu. De ce fait, pour des raisons techniques, les informations concernant la différence entre deux événements ne peuvent être calculées et attribuées qu'au second événement.
Ceci est problématique pour la raison suivante, prenons deux événements :
av.start à 12:00:00
av.pause à 12:01:00
Alors av_duration sera égal à 00:01:00 et, en temps réel, se situera sur le 2nd événement : av.pause. Hors l’événement ayant réellement duré 1 minute est av.start.
Cette subtilité technique dans la restitution des données peut engendrer une erreur de compréhension et par conséquent, de calcul. Comme nous nous efforçons toujours de vous fournir des informations de la plus haute qualité, nous faisons le choix de retirer les propriétés suivantes de Data Flow tout en vous fournissant les règles de calcul précises afin de les recalculer de votre côté une fois les données reçues.
- av_duration
- av_cursor_difference
- av_playback_duration
- av_buffer_duration
- av_rebuffer_duration
Voici les règles précises pour calculer ces propriétés entre les événements si vous souhaitez les recréer de votre côté :
- av_duration : différence entre event_time ET event_time
- av_cursor_difference : différence entre av_position ET av_position
- av_playback_duration : différence entre event_time ET event_time QUAND :
- event_name = ('av.heartbeat','av.start','av.resume') OU
- (event_name = ('av.forward','av.backward') ET (event_name = ('av.heartbeat','av.pause','av.buffer.start','av.rebuffer.start'))) OU
- (event_name = ('rm.refresh','rm.play','rm.info'))
- av_buffer_duration : différence entre event_time ET event_time QUAND event_name = ('av.buffer.heartbeat','av.buffer.start')
- av_rebuffer_duration : différence entre current event_time ET event_time QUAND event_name = ('av.rebuffer.heartbeat','av.rebuffer.start')
Attention: ces calculs doivent être effectués en partitionnant par visit_id, av_session_id, av_content_id.