Image dans l’image

Cette page couvre la collecte de données pour l’état du lecteur Image en image. Voir Flux affectés par image dans l’image, Image dans le nombre d’images et Durée totale de l’image dans l’image pour les mesures de rapports correspondantes.

L’image dans le lecteur d’images suit le moment où la visionneuse entre et sort de la lecture d’image dans l’image. Déclenchez un événement de début d’état lorsque l’image dans l’image commence et un événement de fin d’état lorsqu’il se termine. 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.pictureinpicture.set, a.media.states.pictureinpicture.count, a.media.states.pictureinpicture.time
champ de collection XDM
xdm.mediaCollection.statesStart[] et xdm.mediaCollection.statesEnd[] (entrées avec name: "pictureInPicture")
caractéristiques
c_contextdata.a.media.states.pictureinpicture.set, c_contextdata.a.media.states.pictureinpicture.count, c_contextdata.a.media.states.pictureinpicture.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: "pictureInPicture" }],
      sessionID: "{sid}",
      playhead: 60
    }
  }
});

Lorsque la visionneuse quitte la fonctionnalité image dans image, envoyez un autre événement dont le statut est en statesEnd :

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

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

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

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

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

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

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": "pictureInPicture" }],
            "playhead": 60
        }
    }
})

Lorsque la visionneuse quitte la fonctionnalité image dans image, envoyez un autre événement dont le statut est en statesEnd :

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

Appelez le point d’entrée statesUpdate avec le pictureInPicture en statesStart (ou statesEnd lorsque la visionneuse quitte PiP) :

code language-json
{
  "events": [{
    "xdm": {
      "eventType": "media.statesUpdate",
      "mediaCollection": {
        "statesStart": [{ "name": "pictureInPicture" }],
        "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.PictureInPicture :

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

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

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

code language-javascript
var stateObject = ADBMobile.media.createStateObject("pictureInPicture");
ADBMobile.media.trackEvent(ADBMobile.media.Event.StateStart, stateObject);
// When the viewer exits picture-in-picture:
ADBMobile.media.trackEvent(ADBMobile.media.Event.StateEnd, stateObject);
API Media Collection

Envoyez une requête POST stateStart lorsque la saisie d’image commence et une requête POST stateEnd lorsqu’elle se termine :

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

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