Fonctionnement

 

Notions importantes

Afin de suivre correctement la mesure de vos contenus AV, certaines notions sont importantes à connaître.

 

play vs playbackStart

Les événements av.play (play) représentent le premier clic sur le bouton de lecture, qui lance le chargement de la vidéo.

Les événements av.start (playbackStart) représentent la lecture de la première frame du contenu.

L’enchaînement classique des événements est donc av.play suivi de av.start. Entre les deux, le temps de chargement de la vidéo peut être mesuré avec des événements av.buffer.start suivi de av.buffer.heartbeat.

Si vous n’êtes pas en mesure de différencier ces deux temps, il est nécessaire d’envoyer av.start (playbackStart).

 

start vs resume

Si la lecture est reprise (après une pause ou un temps de chargement (rebuffer) par exemple), il sera nécessaire d’envoyer un événement av.resume (playbackResumed) plutôt que av.play.

 

Gestion des positions

Lors de l’utilisation des méthodes liées à le lecture du contenu, la position du curseur est nécessaire.

Cette position permet de connaître l’avancement réel de la lecture.

 

Gestion de la vitesse de lecture

Afin de mesurer la position de la tête de lecture, les librairies calculent le temps effectivement passée en lecture. Par défaut, une seconde réelle correspondra à une seconde de lecture.

Cependant, vous avez la possibilité de modifier cette vitesse de lecture via la méthode setPlaybackSpeed, en indiquant le facteur de vitesse.

 

Exemples de suivis

 

Lecture totale

 

Mesure d’un seek

 

Traitements automatiques

Certains traitements automatiques sont gérés par les librairies de marquage.

Il est cependant nécessaire de les connaître et de les prendre en compte lors d’un marquage n’utilisant pas les librairies.

 

seek (seek start, forward/backward)

Lors de l’appel à une méthode de seek (seek), plusieurs événements sont levés :

Voir l’enregistrement automatique

  • av.seek.start, indiquant le début de seek, et portant la position du curseur avant le déplacement
  • av.forward ou av.backward, selon les positions de début et de fin de déplacement du curseur
 

session id

Chaque session de lecture porte un identifiant unique (propriété av_session_id ).

Une session de lecture est définie par la lecture d’un contenu. Elle s’arrête donc si le contenu change, ou si la vidéo est arrêtée (av.stop).

 

buffer vs rebuffer

Deux types de temps de chargement sont identifiables :

  • buffer (av.buffer.start (bufferStart) et av.buffer.heartbeat), pour le chargement avant le début de lecture (entre av.play et av.start)
  • rebuffer (av.rebuffer.start (bufferStart) et av.rebuffer.heartbeat), pour le chargement pendant la lecture (après av.start)

La méthode bufferStart vérifie si un playbackStart a été appelé sur la session en cours, afin d’envoyer le type de chargement correspondant.

 

heartbeat

Au cours de la lecture, afin de mesurer de manière plus fine les durées, les événements de heartbeat permettent de renseigner sur l’état du lecteur.
Plusieurs types de heartbeat sont disponibles :

  • av.heartbeat, se déclenche après un playbackStart ou playbackResumed, permet de mesurer la lecture du contenu
  • av.(re)buffer.heartbeat, se déclenche après un bufferStart, permet de mesurer la durée des temps de chargement

Le temps entre deux heartbeats est défini au moment de l’instanciation du media. Il peut être fixe pour l’ensemble de la lecture, ou bien évolutif via un objet JSON.

Nous recommandons de renseigner 5 secondes entre chaque heartbeats, afin d’avoir une mesure assez fine sans surcharger le réseau de l’utilisateur et les serveurs de collecte.

 

duration

Le temps réellement passé devant le contenu est renseigné dans la propriété av_duration, via un timer.

Il s’agit du temps écoulé en millisecondes entre l’événement précédent et l’actuel.

 

previous event/position

Sur chacun des événements, il est nécessaire de renseigner la position (av_previous_position) et le nom (av_previous_event) de l’événement précédemment envoyé.

Cet article a-t-il été utile ?

Dernière mise à jour : 16/04/2020