Spårning av flera spelarlägen
Ibland börjar och slutar två spelarlägen samtidigt eller slutet av ett läge också i början av ett annat läge, vilket visas i följande bild:
Den aktuella implementeringen tillåter båda scenarierna:
stateStart(pictureInPicture)
- t0stateStart(mute)
- t0stateEnd(mute)
- t1stateEnd(pictureInPicture)
- t1stateStart(fullScreen)
- t1stateEnd(fullScreen)
- t2
Detta kräver dock att du utfärdar flera stateStart
- och stateEnd
-händelser för att signalera flera samtidiga statusändringar. I
för att optimera det här vanliga beteendet har en ny statesUpdate
-händelsetyp implementerats som avslutar en lista över lägen
och startar en lista med nya lägen.
Med den nya statesUpdate
-händelsen blir listan över händelser ovan:
statesUpdate(statesEnd=[], statesStart=[pictureInPicture, mute])
- t0statesUpdate(statesEnd=[mute, pictureInPicture], statesStart=[fullScreen])
- t1statesUpdate(statesEnd=[fullScreen], statesStart=[])
- t2
Antalet anrop om tillståndsuppdateringar har reducerats från sex till tre för samma beteende. Den sista händelsen
kan också ha varit en enkel stateEnd(fullScreen)
.
API-implementering för Media Collection mpst-api
Du kan använda API:t för Media Collection för att implementera flera spårningar av spelartillstånd.
Exempel
Nedan visas ett exempel på en implementering av API:t för Media Collection för att spåra flera spelarlägen.
// statesUpdate (ex: mute and pictureInPicture are switched on)
http(s)://<Analytics_Visitor_Namespace>.hb-api.omtrdc.net/api/v1/sessions/<SID>/events
{
"eventType": "statesUpdate",
"params": {
"statesStart": [
{
"media.state.name": "mute"
},
{
"media.state.name": "pictureInPicture"
}
]
},
"playerTime": {
"playhead": 0,
"ts": 1569999130627
}
}
// statesUpdate (ex: mute and pictureInPicture are switched off, fullScreen is switched on)
http(s)://<Analytics_Visitor_Namespace>.hb-api.omtrdc.net/api/v1/sessions/<SID>/events
{
"eventType": "statesUpdate",
"params": {
"statesEnd": [
{
"media.state.name": "mute"
},
{
"media.state.name": "pictureInPicture"
}
],
"statesStart": [
{
"media.state.name": "fullScreen"
}
]
},
"playerTime": {
"playhead": 0,
"ts": 1569999130627
}
}
// statesUpdate (ex: fullScreen is switched off)
http(s)://<Analytics_Visitor_Namespace>.hb-api.omtrdc.net/api/v1/sessions/<SID>/events
{
"eventType": "statesUpdate",
"params": {
"statesEnd": [
{
"media.state.name": "fullScreen"
}
]
},
"playerTime": {
"playhead": 0,
"ts": 1569999130627
}
}
Media SDK-implementering
Det finns ingen Media SDK-implementering.