Les diagrammes suivants illustrent la chronologie du curseur de lecture et la chronologie correspondante des actions d’un utilisateur. Les détails de chaque action et des demandes qui l’accompagnent sont présentés ci-dessous.
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
Bouton Lecture automatique ou bouton Lecture enfoncé, début du chargement de la vidéo. | 0 | 0 | /api/v1/sessions |
Cet appel signale l’intention de l’utilisateur de lire une vidéo. Il renvoie un ID de session ({sid}
) au client, utilisé pour identifier tous les appels de suivi suivants dans la session. L’état du lecteur n’est pas encore « en cours de lecture », mais à la place, « en cours de démarrage ». Les paramètres de session obligatoires doivent être inclus dans la carte params
du corps de la requête. Sur le serveur principal, cet appel génère un appel de lancement d’Adobe Analytics. Pour plus d’informations sur les sessions, consultez la documentation de l’API Media Collection.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "sessionStart",
"params": {
"media.playerName": "sample-html5-api-player",
"analytics.trackingServer": "[ _YOUR-TS_ ]",
"analytics.reportSuite": "[ _YOUR_RSID_ ]",
"analytics.visitorId": "[ _YOUR_VISITOR_ID_ ]",
"media.contentType": "VOD",
"media.length": 60.3333333333333,
"media.id": "VA API Sample Player",
"visitor.marketingCloudOrgId": "[YOUR_MCID]",
"media.name": "ClickMe",
"media.channel": "sample-channel",
"media.sdkVersion": "va-api-0.0.0",
"analytics.enableSSL": false
}
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
L’application démarre le minuteur d’événement de ping | 0 | 0 |
Démarrez votre minuteur de ping. Le premier événement ping doit alors se déclencher après 1 seconde en cas de publicités preroll ou après 10 secondes dans le cas contraire.
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
Suivi du début de la coupure publicitaire preroll | 0 | 0 | /api/v1/sessions/{sid}/events |
Les annonces publicitaires ne peuvent être suivies que dans une coupure publicitaire.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adBreakStart",
"params": {
"media.ad.podFriendlyName": "ad_pod1",
"media.ad.podIndex": 0, "media.ad.podSecond": 0
}
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
Le suivi de la publicité preroll N°1 commence | 0 | 0 | /api/v1/sessions/{sid}/events |
Démarrez le suivi de la première publicité preroll, qui dure 15 secondes. Incluez des métadonnées personnalisées avec ce adStart
.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adStart",
"params": {
"media.ad.podFriendlyName": "ad_pod1",
"media.ad.name": "Ad 1",
"media.ad.id": "001",
"media.ad.length": 15,
"media.ad.podPosition": 1,
"media.ad.playerName": "Sample Player",
"media.ad.advertiser": "Ad Guys",
"media.ad.campaignId": "1",
"media.ad.creativeId": "42",
"media.ad.siteId": "XYZ",
"media.ad.creativeURL": "https://example.com",
"media.ad.placementId": "sample_placement"
},
"customMetadata": {
"myCustomData1": "CustomData1",
"myCustomData2": "CustomData2"
}
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
L’application envoie un événement ping | 10 | 0 | /api/v1/sessions/{sid}/events |
Envoyez un ping au serveur principal toutes les secondes. (Les pings de publicité suivants ne sont pas montrés par souci de concision.)
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
Le suivi de la publicité preroll N°1 est terminé | 15 | 0 | /api/v1/sessions/{sid}/events |
Effectuez le suivi de la fin de la première publicité preroll.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
Le suivi de la publicité preroll N°2 commence | 15 | 0 | /api/v1/sessions/{sid}/events |
Effectuez le suivi du début de la seconde publicité preroll, qui dure 7 secondes.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adStart",
"params": {
"media.ad.podFriendlyName": "ad_pod1",
"media.ad.name": "Ad 2",
"media.ad.id": "002",
"media.ad.length": 7,
"media.ad.podPosition": 1,
"media.ad.playerName": "Sample Player",
"media.ad.advertiser": "Ad Guys",
"media.ad.campaignId": "2",
"media.ad.creativeId": "44",
"media.ad.siteId": "XYZ",
"media.ad.creativeURL": "https://example.com",
"media.ad.placementId": "sample_placement2"
},
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
L’application envoie un événement ping | 16 | 0 | /api/v1/sessions/{sid}/events |
Envoyez un ping au serveur principal toutes les secondes. (Les pings de publicité suivants ne sont pas montrés par souci de concision.)
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
Le suivi de la publicité preroll N°2 est terminé | 22 | 0 | /api/v1/sessions/{sid}/events |
Effectuez le suivi de la fin de la seconde publicité preroll.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
Le suivi de la coupure publicitaire preroll est terminé | 22 | 0 | /api/v1/sessions/{sid}/events |
La coupure publicitaire est terminée. Tout au long de la coupure publicitaire, l’état de lecture est resté sur « lecture ».
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adBreakComplete"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
Suivi de l’événement de lecture | 22 | 0 | /api/v1/sessions/{sid}/events |
Après l’événement adBreakComplete
, placez le lecteur à l’état « lecture » à l’aide de l’événement play
.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "play"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
Suivi de l’événement de début de chapitre | 23 | 1 | /api/v1/sessions/{sid}/events |
Après l’événement de lecture, effectuez le suivi du début du premier chapitre.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "chapterStart",
"params": {
"media.chapter.index": 1,
"media.chapter.offset": 0, "media.chapter.length": 20, "media.chapter.friendlyName": "Chapter Uno"
},
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
L’application envoie un événement ping | 30 | 8 | /api/v1/sessions/{sid}/events |
Envoyez un ping au serveur principal toutes les 10 secondes.
{
"playerTime": {
"playhead": 8,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
L’événement de début de la mémoire tampon a eu lieu | 33 | 11 | /api/v1/sessions/{sid}/events |
Effectuez le suivi du passage à l’état « mise en mémoire tampon ».
{
"playerTime": {
"playhead": 11,
"ts": "<timestamp>"
},
"eventType": "bufferStart"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
La mémoire tampon a pris fin, l’application suit la reprise du contenu | 36 | 11 | /api/v1/sessions/{sid}/events |
La mise en mémoire tampon se terminant au bout de 3 secondes, replacez le lecteur à l’état « lecture ». Vous devez envoyer un autre événement de suivi de lecture provenant de la mise en mémoire tampon. L’appelplay
après un bufferStart
impliquant un appel « bufferEnd » au serveur principal, un événement bufferEnd
n’est pas nécessaire.
{
"playerTime": {
"playhead": 11,
"ts": "<timestamp>"
},
"eventType": "play"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
L’application envoie un événement ping | 40 | 15 | /api/v1/sessions/{sid}/events |
Envoyez un ping au serveur principal toutes les 10 secondes.
{
"playerTime": {
"playhead": 15,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
L’application suit la fin du chapitre | 45 | 20 | /api/v1/sessions/{sid}/events |
Le premier chapitre se termine, juste avant la seconde coupure publicitaire.
{
"playerTime": {
"playhead": 20,
"ts": "<timestamp>"
},
"eventType": "chapterComplete"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
Le suivi de la coupure publicitaire mid-roll commence | 46 | 21 | /api/v1/sessions/{sid}/events |
Publicité mid-roll d’une durée de 8 secondes : envoyez adBreakStart
.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adBreakStart",
"params": {
"media.ad.podFriendlyName": "ad_pod2",
"media.ad.podIndex": 1, "media.ad.podSecond": 21
}
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
Le suivi de la publicité mid-roll N°3 commence | 46 | 21 | /api/v1/sessions/{sid}/events |
Suivez l’annonce publicitaire mid-roll.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adStart",
"params": {
"media.ad.podFriendlyName": "ad_pod2",
"media.ad.name": "Ad 3",
"media.ad.id": "003",
"media.ad.length": 8,
"media.ad.podPosition": 2,
"media.ad.playerName": "Sample Player",
"media.ad.advertiser": "Ad Guys",
"media.ad.campaignId": "7",
"media.ad.creativeId": "40",
"media.ad.siteId": "XYZ",
"media.ad.creativeURL": "https://example.com",
"media.ad.placementId": "sample_placement2"
},
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
L’application envoie un événement ping | 47 | 21 | /api/v1/sessions/{sid}/events |
Envoyez un ping au serveur principal toutes les secondes. (Les pings de publicité suivants ne sont pas montrés par souci de concision.)
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
Le suivi de la publicité mid-roll N°1 est terminé | 54 | 21 | /api/v1/sessions/{sid}/events |
La publicité mid-roll est terminée.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
Le suivi de la publicité mid-roll est terminé | 54 | 21 | /api/v1/sessions/{sid}/events |
La coupure publicitaire est terminée.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adBreakComplete"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
Suivi du début du chapitre 2 | 55 | 22 | /api/v1/sessions/{sid}/events |
{
"playerTime": {
"playhead": 22,
"ts": "<timestamp>"
},
"eventType": "chapterStart",
"params": {
"media.chapter.index": 2,
"media.chapter.offset": 22, "media.chapter.length": 22, "media.chapter.friendlyName": "Chapter Dos"
},
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
L’application envoie un événement ping | 60 | 27 | /api/v1/sessions/{sid}/events |
Envoyez un ping au serveur principal toutes les 10 secondes.
{
"playerTime": {
"playhead": 27,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
L’utilisateur a appuyé sur Pause | 64 | 31 | /api/v1/sessions/{sid}/events |
L’action de l’utilisateur ou de l’utilisatrice déplace l’état de lecture sur « pause ».
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
},
"eventType": "pauseStart"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
L’application envoie un événement ping | 70 | 31 | /api/v1/sessions/{sid}/events |
Envoyez un ping au serveur principal toutes les 10 secondes. Le lecteur est toujours à l’état « mémoire tampon » ; l’utilisateur est bloqué à 20 secondes de contenu. Suractivité…
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
L’utilisateur a appuyé sur Lecture pour reprendre le contenu principal | 74 | 31 | /api/v1/sessions/{sid}/events |
Déplacez l’état de lecture sur « lecture ». L’appel play
après un événement pauseStart
impliquant un appel « resume » au serveur principal, un événement resume
n’est pas nécessaire.
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
},
"eventType": "play"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
L’application envoie un événement ping | 80 | 37 | /api/v1/sessions/{sid}/events |
Envoyez un ping au serveur principal toutes les 10 secondes.
{
"playerTime": {
"playhead": 37,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
Fin du chapitre 2 | 87 | 44 | /api/v1/sessions/{sid}/events |
Effectuez le suivi de la fin du second et dernier chapitre.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "chapterComplete"
}
Action | Chronologie des actions (secondes) | Position du curseur de lecture (secondes) | Demande client |
---|---|---|---|
L’utilisateur termine de regarder le contenu jusqu’à la fin. | 88 | 45 | /api/v1/sessions/{sid}/events |
Envoyez sessionComplete
au serveur principal pour indiquer que l’utilisateur ou l’utilisatrice a fini de regarder le contenu entier.
{
"playerTime": {
"playhead": 45,
"ts": "<timestamp>"
},
"eventType": "sessionComplete"
}
Aucun événement de recherche ? - Il n’y a pas de prise en charge explicite des événements seekStart
ou seekComplete
dans l’API Media Collection. C’est parce que certains lecteurs génèrent un très grand nombre de ces événements lorsque l’utilisateur final est en train de balayer, et que plusieurs centaines d’utilisateurs pourraient facilement étrangler la bande passante réseau d’un service principal. Adobe évite un support explicite aux événements de recherche en calculant la durée des pulsations en fonction de l’horodatage de l’appareil, plutôt que de la position de la tête de lecture.