In focus

In questa pagina viene illustrata la raccolta dati per lo stato del lettore In focus. Vedi Flussi interessati da in focus, Conteggi in focus e Durata totale in focus per le metriche di reporting corrispondenti.

Lo stato in focus del lettore tiene traccia di quando il lettore ha l’attenzione dell’utente. Attiva un evento di inizio stato quando il lettore diventa attivo (in genere quando la scheda o la finestra del lettore diventa attiva) e un evento di fine stato quando il lettore perde lo stato attivo. 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.infocus.set, a.media.states.infocus.count, a.media.states.infocus.time
Campo raccolta XDM
xdm.mediaCollection.statesStart[] e xdm.mediaCollection.statesEnd[] (voci con name: "inFocus")
Caratteristiche Audience Manager
c_contextdata.a.media.states.infocus.set, c_contextdata.a.media.states.infocus.count, c_contextdata.a.media.states.infocus.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: "inFocus" }],
      sessionID: "{sid}",
      playhead: 60
    }
  }
});

Quando il lettore perde lo stato attivo, invia un altro evento con lo stato in statesEnd:

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

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

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

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

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

Quando il lettore perde lo stato attivo, invia un altro evento con lo stato in statesEnd:

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

Chiama l’endpoint statesUpdate con inFocus in statesStart (o statesEnd quando il lettore perde lo stato attivo):

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

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

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

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

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

Invia una richiesta POST stateStart quando il lettore diventa attivo e un POST stateEnd quando perde lo stato attivo:

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

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

recommendation-more-help
media-analytics-help