Cette documentation aborde le suivi dans la version 2.x du SDK.
Si vous mettez en œuvre une version 1.x du kit SDK, vous pouvez télécharger le Guide du développeur 1.x pour Android dans la rubrique Téléchargement des SDK.
Configuration initiale du suivi
Déterminez le moment où l’utilisateur déclenche l’intention de lecture (l’utilisateur clique sur le bouton de lecture et/ou la lecture automatique est activée) et créez une instance MediaObject
.
Nom de variable | Description | Obligatoire |
---|---|---|
name |
Nom du média | Oui |
mediaId |
Identifiant unique du média | Oui |
length |
Longueur du média | Oui |
streamType |
Type de diffusion (voir les constantes StreamType ci-dessous) | Oui |
mediaType |
Type de média (voir les constantes MediaType ci-dessous) | Oui |
StreamType
Constantes :
Nom de constante | Description |
---|---|
VOD |
Type de diffusion pour la vidéo à la demande. |
LIVE |
Type de diffusion pour le contenu en direct. |
LINEAR |
Type de diffusion pour le contenu linéaire. |
AOD |
Type de diffusion pour l’audio à la demande. |
AUDIOBOOK |
Type de diffusion pour les livres audio. |
PODCAST |
Type de diffusion pour les podcasts. |
MediaType
Constantes :
Nom de constante | Description |
---|---|
Audio |
Type de média pour les diffusions audio. |
Video |
Type de média pour les diffusions vidéo. |
MediaHeartbeat.createMediaObject(<MEDIA_NAME>,
<MEDIA_ID>, <MEDIA_LENGTH>, <STREAM_TYPE>, <MEDIA_TYPE>);
Ajout de métadonnées
Vous pouvez joindre des métadonnées standard et/ou de publicité à la session de suivi par le biais de variables de données contextuelles.
Métadonnées standard
Mise en œuvre de métadonnées standard sur Android
Il est facultatif de joindre un objet de métadonnées standard à l’objet multimédia.
Métadonnées personnalisées
Créez un dictionnaire pour les variables personnalisées et renseignez les données de ce média. Par exemple :
HashMap<String, String> mediaMetadata =
new HashMap<String, String>();
mediaMetadata.put("isUserLoggedIn", "false");
mediaMetadata.put("tvStation", "Sample TV Station");
mediaMetadata.put("programmer", "Sample programmer");
Suivi de l’intention de démarrer la lecture
Pour commencer le suivi d’une session multimédia, appelez trackSessionStart
sur l’instance Media Heartbeat. Par exemple :
public void onVideoLoad(Observable observable, Object data) {
_heartbeat.trackSessionStart(mediaInfo, mediaMetadata);
}
La deuxième valeur est le nom d’objet de métadonnées multimédia personnalisé que vous avez créé à l’étape 2.
trackSessionStart
effectue le suivi de l’intention de lecture de l’utilisateur, et non du début de la lecture. Cette API est utilisée pour charger les données/métadonnées du média et estimer le temps jusqu’au démarrage de la mesure QoS (durée entre trackSessionStart
et trackPlay
).
Si vous n’utilisez pas de métadonnées multimédia personnalisées, envoyez simplement un objet vide pour le second argument dans trackSessionStart
.
Suivi du début réel de la lecture
Identifiez l’événement du lecteur multimédia correspondant au début de la lecture du média, où la première image du média s’affiche à l’écran, et appelez trackPlay
:
// Video is rendered on the screen) and call trackPlay.
public void onVideoPlay(Observable observable, Object data) {
_heartbeat.trackPlay();
}
Suivi de la fin de la lecture
Identifiez l’événement du lecteur multimédia correspondant à la fin de la lecture du média, où l’utilisateur a visionné le contenu jusqu’à la fin, et appelez trackComplete
:
public void onVideoComplete(Observable observable, Object data) {
_heartbeat.trackComplete();
}
Suivi de la fin de la session
Identifiez l’événement du lecteur multimédia correspondant au déchargement/à la fermeture de la lecture du média, où l’utilisateur ferme la vidéo et/ou le contenu média est terminé et déchargé, et appelez trackSessionEnd
:
// Closes the media and/or the media completed and unloaded,
// and call trackSessionEnd().
public void onMainVideoUnload(Observable observable, Object data) {
_heartbeat.trackSessionEnd();
}
trackSessionEnd
marque la fin d’une session de suivi multimédia. Si la session a été visionnée jusqu’à la fin, où l’utilisateur a visionné le contenu jusqu’à la fin, assurez-vous que trackComplete
est appelé avant trackSessionEnd
. Tout autre appel à l’API track*
est ignoré après trackSessionEnd
, sauf trackSessionStart
dans le cadre d’une nouvelle session de suivi multimédia.
Suivi de tous les scénarios de mise en pause possibles
Identifiez l’événement du lecteur multimédia pour la mise en pause et l’appel multimédia trackPause
:
public void onVideoPause(Observable observable, Object data) {
_heartbeat.trackPause();
}
Scénarios de mise en pause
Identifiez tous les scénarios dans lesquels le lecteur vidéo sera interrompu et assurez-vous que trackPause
est correctement appelé. Les scénarios suivants exigent tous que votre application appelle trackPause()
:
Identifiez l’événement du lecteur correspondant à la lecture multimédia et/ou à la reprise multimédia après une interruption et appelez trackPlay
.
// trackPlay()
public void onVideoPlay(Observable observable, Object data) {
_heartbeat.trackPlay();
}
Il peut s’agir de la même source d’événement utilisée à l’étape 4. Assurez-vous que chaque appel de l’API trackPause()
est suivi d’un appel de l’API trackPlay()
à la reprise de la lecture du média.
Consultez les ressources suivantes pour en savoir plus sur le suivi de la lecture principale :