Last update: Fri Dec 06 2024 00:00:00 GMT+0000 (Coordinated Universal Time)
La commande sendMediaEvent
fait partie du composant SDK Web streamingMedia
. Vous pouvez utiliser ce composant pour collecter des données relatives aux sessions multimédia sur votre site web. Consultez la streamingMedia
documentation pour savoir comment configurer ce composant.
Utilisez la commande sendMediaEvent
pour effectuer le suivi des lectures multimédia, des pauses, des compléments, des mises à jour de l’état du lecteur et d’autres événements connexes.
Le SDK Web peut gérer les événements multimédia en fonction du type de suivi de session multimédia :
- Gestion des événements pour les sessions suivies automatiquement. Dans ce mode, vous n’avez pas besoin de transmettre
sessionID
à l’événement multimédia ou la valeur du curseur de lecture. Le SDK Web gère cette opération pour vous, en fonction de l’identifiant du lecteur fourni et de la fonction de rappel getPlayerDetails
fournie lors du démarrage de la session multimédia.
- Gestion des événements pour les sessions suivies manuellement. Dans ce mode, vous devez transmettre
sessionID
à l’événement multimédia, ainsi que la valeur du curseur de lecture (valeur entière). Vous pouvez également transmettre les détails de la qualité des données d’expérience, si nécessaire.
Gestion des événements de média par type handle-by-type
Sélectionnez les onglets ci-dessous pour afficher des exemples de gestion des types d’événement pour chaque type d’événement et chaque méthode de suivi de session (automatique ou manuelle).
Play play
Le type d’événement media.play
est utilisé pour effectuer le suivi au démarrage de la lecture multimédia. Cet événement doit être envoyé lorsque le lecteur passe de l’état "lecture" à un autre état. Parmi les autres états à partir desquels le lecteur passe à "lecture", citons "mise en mémoire tampon", la reprise de l’utilisateur après "mise en pause", la reprise du lecteur suite à une erreur ou la lecture automatique.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.play"
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.play",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID
}
}
});
});
|
Pause pause
Le type d’événement media.pauseStart
est utilisé pour effectuer le suivi de la mise en pause de la lecture multimédia. Cet événement doit être envoyé lorsque l’utilisateur appuie sur Pause. Il n’existe aucun type d’événement resume . Une reprise est déduite lorsque vous envoyez un événement media.play
après un media.pauseStart
.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.pauseStart"
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.pauseStart",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID
}
}
});
});
|
Erreur error
Le type d’événement media.error
est utilisé pour effectuer le suivi d’une erreur survenant pendant la lecture du média. Cet événement doit être envoyé lorsqu’une erreur se produit.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.error",
mediaCollection: {
errorDetails: {
name: "network-error",
source: "player"
}
}
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.error",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID,
errorDetails: {
name: "network-error",
source: "player"
}
}
}
});
});
|
Le type d’événement media.adBreakStart
est utilisé pour effectuer le suivi du début d’une coupure publicitaire. Cet événement doit être envoyé au démarrage d’une coupure publicitaire.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.adBreakStart",
mediaCollection: {
advertisingPodDetails: {
friendlyName: "Mid-roll",
offset: 0,
index: 1
}
}
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.adBreakStart",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID,
advertisingPodDetails: {
friendlyName: "Mid-roll",
offset: 0,
index: 1
}
}
}
});
});
|
Le type d’événement media.adBreakComplete
est utilisé pour effectuer le suivi de la fin d’une coupure publicitaire. Cet événement doit être envoyé à la fin d’une coupure publicitaire.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.adBreakComplete"
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.adBreakComplete",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID
}
}
});
});
|
Démarrage de publicité ad-start
Le type d’événement media.adStart
est utilisé pour effectuer le suivi du démarrage d’une publicité. Cet événement doit être envoyé au démarrage d’une publicité.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.adStart",
mediaCollection: {
advertisingDetails: {
friendlyName: "Ad 1",
name: "/uri-reference/001",
length: 10,
advertiser: "Adobe Marketing",
campaignID: "Adobe Analytics",
creativeID: "creativeID",
creativeURL: "https://creativeurl.com",
placementID: "placementID",
siteID: "siteID",
podPosition: 11,
playerName: "HTML5 player"
},
customMetadata: [{
name: "myCustomValue3",
value: "c3"
},
{
name: "myCustomValue2",
value: "c2"
},
{
name: "myCustomValue1",
value: "c1"
}
]
}
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.adStart",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID,
advertisingDetails: {
friendlyName: "Ad 1",
name: "/uri-reference/001",
length: 10,
advertiser: "Adobe Marketing",
campaignID: "Adobe Analytics",
creativeID: "creativeID",
creativeURL: "https://creativeurl.com",
placementID: "placementID",
siteID: "siteID",
podPosition: 11,
playerName: "HTML5 player"
},
customMetadata: [
{
name: "myCustomValue3",
value: "c3"
},
{
name: "myCustomValue2",
value: "c2"
},
{
name: "myCustomValue1",
value: "c1"
}]
}
}
});
});
|
Fin de publicité ad-complete
Le type d’événement media.adComplete
est utilisé pour effectuer le suivi à la fin d’une publicité. Cet événement doit être envoyé lorsqu’une publicité se termine.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.adComplete"
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.adComplete",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID
}
}
});
});
|
Ignorer la publicité ad-skip
Le type d’événement media.adSkip
est utilisé pour effectuer le suivi lorsqu’une publicité est ignorée. Cet événement doit être envoyé lorsqu’une publicité est ignorée.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.adSkip"
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.adSkip",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID
}
}
});
});
|
Début du chapitre chapter-start
Le type d’événement media.chapterStart
est utilisé pour effectuer le suivi du début d’un chapitre. Cet événement doit être envoyé au début d’un chapitre.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.chapterStart",
mediaCollection: {
chapterDetails: {
friendlyName: "Chapter 1",
position: 1,
length: 10,
index: 1,
offset: 0
},
customMetadata: [{
name: "myCustomValue3",
value: "c3"
},
{
name: "myCustomValue2",
value: "c2"
},
{
name: "myCustomValue1",
value: "c1"
}
]
}
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.chapterStart",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID,
chapterDetails: {
friendlyName: "Chapter 1",
position: 1,
length: 10,
index: 1,
offset: 0
},
customMetadata: [{
name: "myCustomValue3",
value: "c3"
},
{
name: "myCustomValue2",
value: "c2"
},
{
name: "myCustomValue1",
value: "c1"
}
]
}
}
});
});
|
Fin du chapitre chapter-complete
Le type d’événement media.chapterComplete
est utilisé pour effectuer le suivi de la fin d’un chapitre. Cet événement doit être envoyé lorsqu’un chapitre se termine.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.chapterComplete"
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.chapterComplete",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID
}
}
});
});
|
Saut de chapitre chapter-skip
Le type d’événement media.chapterSkip
est utilisé pour effectuer le suivi lorsqu’un chapitre est ignoré. Cet événement doit être envoyé lorsqu’un chapitre est ignoré.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.chapterSkip"
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.chapterSkip",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID
}
}
});
});
|
Début de la mémoire tampon buffer-start
Le type d’événement media.bufferStart
est utilisé pour effectuer le suivi au démarrage de la mise en mémoire tampon. Cet événement doit être envoyé au démarrage de la mise en mémoire tampon. Il n’existe pas de type d’événement bufferResume
. Un bufferResume
est déduit lorsque vous envoyez un événement de lecture après bufferStart
.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.bufferStart"
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.bufferStart",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID
}
}
});
});
|
Changement de débit binaire bitrate-change
Le type d’événement media.bitrateChange
est utilisé pour effectuer le suivi des changements de débit binaire. Cet événement doit être envoyé lorsque le débit binaire change.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.bitrateChange",
mediaCollection: {
qoeDataDetails: {
framesPerSecond: 1,
bitrate: 35000,
droppedFrames: 30,
timeToStart: 1364
}
}
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.bitrateChange",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID,
qoeDataDetails: {
bitrate: 35000,
droppedFrames: 30,
timeToStart: 1364
}
}
}
});
});
|
Mises à jour d’état state-updates
Le type d’événement media.statesUpdate
est utilisé pour effectuer le suivi des modifications de l’état du lecteur. Cet événement doit être envoyé lorsque l’état du lecteur change.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.statesUpdate",
mediaCollection: {
statesStart: [{
name: "mute"
},
{
name: "pictureInPicture"
}
],
statesEnd: [{
name: "fullScreen"
}]
}
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.stateUpdate",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID,
statesStart: [{
name: "mute"
},
{
name: "pictureInPicture"
}
],
statesEnd: [{
name: "fullScreen"
}]
}
}
});
});
|
Fin de session session-end
Le type d’événement media.sessionEnd
est utilisé pour informer le serveur principal Media Analytics de fermer immédiatement la session lorsque l’utilisateur a abandonné l’affichage du contenu et qu’il est peu probable qu’il y rende.
Si vous n’envoyez pas d’événement sessionEnd
, une session abandonnée expirera après qu’aucun événement n’a été reçu pendant 10 minutes, ou lorsqu’aucun mouvement du curseur de lecture ne se produit pendant 30 minutes. La session est automatiquement supprimée.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.sessionEnd"
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.sessionEnd",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID
}
}
});
});
|
Fin de la session session-complete
Le type d’événement media.sessionComplete
est utilisé pour effectuer le suivi à la fin d’une session multimédia. Cet événement doit être envoyé lorsque la fin du contenu principal est atteinte.
Suivi automatique de session
code language-javascript |
alloy("sendMediaEvent", {
playerId: "movie-test",
xdm: {
eventType: "media.sessionComplete"
}
});
|
Suivi manuel de session
code language-javascript |
sessionPromise.then(sessionID => {
alloy("sendMediaEvent", {
xdm: {
eventType: "media.sessionComplete",
mediaCollection: {
playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
sessionID
}
}
});
});
|
ad108910-6329-42f1-aa1d-5920a2b13636