Dans le focus

Cette page traite de la collecte de données pour l’état du lecteur In focus. Voir Flux impactés par dans le focus, Nombre de focus et Durée totale du focus pour les mesures de rapports correspondantes.

L’état du lecteur ciblé indique à quel moment le lecteur retient l’attention de la visionneuse. Déclenchez un événement de début d’état lorsque le lecteur reçoit le focus (généralement lorsque l’onglet ou la fenêtre du lecteur devient actif) et un événement de fin d’état lorsque le lecteur perd le focus. Le serveur principal calcule trois mesures à partir de ces événements : les flux impactés, le nombre d’entrées d’état et la durée totale d’état.

Propriété
Valeur
Variables de données contextuelles
a.media.states.infocus.set, a.media.states.infocus.count, a.media.states.infocus.time
champ de collection XDM
xdm.mediaCollection.statesStart[] et xdm.mediaCollection.statesEnd[] (entrées avec name: "inFocus")
caractéristiques
c_contextdata.a.media.states.infocus.set, c_contextdata.a.media.states.infocus.count, c_contextdata.a.media.states.infocus.time
Obligatoire
Non
Envoyé avec
Début de l’état, fin de l’état

Types d’implémentation recommandés

SDK Web

Utilisez sendEvent pour envoyer un événement media.statesUpdate avec l’état ajouté à statesStart :

code language-javascript
alloy("sendEvent", {
  xdm: {
    eventType: "media.statesUpdate",
    mediaCollection: {
      statesStart: [{ name: "inFocus" }],
      sessionID: "{sid}",
      playhead: 60
    }
  }
});

Lorsque le lecteur perd le focus, envoyez un autre événement dont le statut est défini sur statesEnd :

code language-javascript
alloy("sendEvent", {
  xdm: {
    eventType: "media.statesUpdate",
    mediaCollection: {
      statesEnd: [{ name: "inFocus" }],
      sessionID: "{sid}",
      playhead: 90
    }
  }
});
iOS

Utilisez tracker.trackPlayerStateStart() et tracker.trackPlayerStateEnd() avec la constante MediaConstants.PlayerState.IN_FOCUS .

code language-swift
let stateObject = Media.createStateObjectWith(stateName: MediaConstants.PlayerState.IN_FOCUS)

tracker.trackPlayerStateStart(info: stateObject)
tracker.trackPlayerStateEnd(info: stateObject)
Android

Utilisez tracker.trackPlayerStateStart() et tracker.trackPlayerStateEnd() avec la constante MediaConstants.PlayerState.IN_FOCUS .

code language-kotlin
val stateObject = Media.createStateObject(MediaConstants.PlayerState.IN_FOCUS)

tracker.trackPlayerStateStart(stateObject)
tracker.trackPlayerStateEnd(stateObject)
Roku

Utilisez sendMediaEvent pour envoyer un événement media.statesUpdate avec l’état ajouté à statesStart :

code language-brightscript
m.aepSdk.sendMediaEvent({
    "xdm": {
        "eventType": "media.statesUpdate",
        "mediaCollection": {
            "statesStart": [{ "name": "inFocus" }],
            "playhead": 60
        }
    }
})

Lorsque le lecteur perd le focus, envoyez un autre événement dont le statut est défini sur statesEnd :

code language-brightscript
m.aepSdk.sendMediaEvent({
    "xdm": {
        "eventType": "media.statesUpdate",
        "mediaCollection": {
            "statesEnd": [{ "name": "inFocus" }],
            "playhead": 90
        }
    }
})
API Media Edge

Appelez le point d’entrée statesUpdate avec des inFocus en statesStart (ou statesEnd lorsque le lecteur perd le focus) :

code language-json
{
  "events": [{
    "xdm": {
      "eventType": "media.statesUpdate",
      "mediaCollection": {
        "statesStart": [{ "name": "inFocus" }],
        "sessionID": "{sid}",
        "playhead": 60
      }
    }
  }]
}

Types d’implémentation hérités (Analytics uniquement)

Media SDK JS 3.x

Utilisez ADB.Media.createStateObject et la constante ADB.Media.PlayerState.InFocus :

code language-javascript
var stateObject = ADB.Media.createStateObject(ADB.Media.PlayerState.InFocus);

tracker.trackPlayerStateStart(stateObject);
tracker.trackPlayerStateEnd(stateObject);
Chromecast

Utilisez ADBMobile.media.createStateObject avec la chaîne "inFocus" directement, car Chromecast ne dispose pas de constantes PlayerState nommées :

code language-javascript
var stateObject = ADBMobile.media.createStateObject("inFocus");
ADBMobile.media.trackEvent(ADBMobile.media.Event.StateStart, stateObject);
// When the player loses focus:
ADBMobile.media.trackEvent(ADBMobile.media.Event.StateEnd, stateObject);
API Media Collection

Envoyez une requête POST stateStart lorsque le lecteur reçoit le focus, et une requête POST stateEnd lorsqu’il le perd :

code language-json
{
  "playerTime": { "playhead": 60, "ts": 1699523820000 },
  "eventType": "stateStart",
  "params": {
    "media.state.name": "inFocus"
  }
}

Consultez la référence des événements de l’API Media Collection pour obtenir la structure complète des requêtes.

recommendation-more-help
media-analytics-help