Immagine nell’immagine

Questa pagina contiene informazioni sulla raccolta dati per lo stato del lettore Immagine nell’immagine. Vedi Flussi interessati da immagine nell’immagine, Conteggi immagine nell’immagine e Durata totale immagine nell’immagine per le metriche di reporting corrispondenti.

Lo stato di picture-in-picture del lettore tiene traccia di quando il visualizzatore entra ed esce dalla riproduzione picture-in-picture. Attiva un evento di inizio stato quando inizia l’immagine nell’immagine e un evento di fine stato quando termina. Il backend calcola tre metriche da questi eventi: flussi interessati, numero di voci di stato e tempo totale nello stato.

Proprietà
Valore
Variabili di dati di contesto
a.media.states.pictureinpicture.set, a.media.states.pictureinpicture.count, a.media.states.pictureinpicture.time
Campo raccolta XDM
xdm.mediaCollection.statesStart[] e xdm.mediaCollection.statesEnd[] (voci con name: "pictureInPicture")
Caratteristiche Audience Manager
c_contextdata.a.media.states.pictureinpicture.set, c_contextdata.a.media.states.pictureinpicture.count, c_contextdata.a.media.states.pictureinpicture.time
Obbligatorio
No
Inviato con
Inizio stato, fine stato

Tipi di implementazione consigliati

Web SDK

Utilizza sendEvent per inviare un evento media.statesUpdate con lo stato aggiunto a statesStart:

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

Quando il visualizzatore esce dall’immagine nell’immagine, invia un altro evento con lo stato in statesEnd:

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

Utilizzare tracker.trackPlayerStateStart() e tracker.trackPlayerStateEnd() con la costante 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

Utilizzare tracker.trackPlayerStateStart() e tracker.trackPlayerStateEnd() con la costante MediaConstants.PlayerState.PICTURE_IN_PICTURE.

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

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

Utilizza sendMediaEvent per inviare un evento media.statesUpdate con lo stato aggiunto a statesStart:

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

Quando il visualizzatore esce dall’immagine nell’immagine, invia un altro evento con lo stato in statesEnd:

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

Chiama l’endpoint statesUpdate con pictureInPicture in statesStart (o statesEnd quando il visualizzatore esce da PiP):

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

Tipi di implementazione legacy (solo Analytics)

Media SDK JS 3.x

Usa ADB.Media.createStateObject e la costante ADB.Media.PlayerState.PictureInPicture:

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

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

Utilizza ADBMobile.media.createStateObject direttamente con la stringa "pictureInPicture", in quanto Chromecast non ha costanti con nome PlayerState:

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

Invia una richiesta POST stateStart all’inizio dell’immagine nell’immagine e un POST stateEnd alla fine:

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

Per la struttura completa delle richieste, consulta il Riferimento eventi API di Media Collection.

recommendation-more-help
media-analytics-help