|
Activity name
|
Trigger
|
Description
|
Required data fields
|
Notes
|
Examples
|
playback_metrics
|
To be reported back at a consistent interval, this can be configured by clients.
We recommend recording this activity every 60 seconds.
|
Metrics as supplied by the player and reported back via the client.
|
appSessionId
sessionId
contentSource
editorialId
playbackSessionId
playbackProgress
selectedBitrate
contentType
availableBitrates
bytesDownloaded
downloadBitRate
downloadBitrateAverage
bufferedDuration
streamBitrate
droppedVideoFrames
totalVideoFrames
uri
|
|
Request:
POST https://<server>/useractivityvault/v1/useractivity/playback_metrics
|
|
Content type: live-event
{
...
"metadata": {
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "live-event",
"editorialId": "<editorial_channel_ID>",
"technicalId": "<technical_channel_ID>",
"programmeId": "<programme_ID>",
"playbackProgress": <seconds_from_start_of_event>,
<list_of_metrics_from_player>
}
...
}
Note that for the live-event content type, you need to specify:
-
editorialId – the editorial channel ID
-
technicalId – the technical channel ID
-
programmeId – the programme ID
|
|
Content type: live-stcu-event
{
...
"metadata": {
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "live-stcu-event",
"editorialId": "<editorial_ID_of_the_event>",
"playbackProgress": <seconds_from_start_of_event>,
<list_of_metrics_from_player>
}
...
}
Note that for the live-stcu-event content type, you need to specify:
|
|
Content type: start-over
{
...
"metadata": {
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "start-over",
"editorialId": "<editorial_ID_of_the_event>",
"playbackProgress": <seconds_from_start_of_event>,
<list_of_metrics_from_player>
}
...
}
Note that for the start-over content type, you need to specify:
|
|
Content type: ltcu
{
...
"metadata": {
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "vod-ed",
"editorialId": "<editorial_content_ID>",
"playbackProgress": <seconds_from_start_of_event>,
<list_of_metrics_from_player>
}
...
}
Note that for the ltcu content type, you need to specify:
|
|
Content type: npvr-event
{
...
"metadata": {
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "npvr-event",
"editorialId": "<content_ID>",
"playbackProgress": <seconds_from_start_of_event>,
<list_of_metrics_from_player>
}
...
}
Note that for the npvr-event content type, you need to specify:
|
|
Content type: vod-ed
{
...
"metadata": {
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "vod-ed",
"editorialId": "<editorial_content_ID>",
"playbackProgress": <seconds_from_start_of_event>,
<list_of_metrics_from_player>
}
...
}
Note that for the vod-ed content type, you need to specify:
|
playerError
|
Log client side errors as required.
|
Where required, useful to capture basic error information that relates to the user experience.
|
appSessionId
playbackSessionId
editorialId
errorCode
errorMsg
playerTypeversion
deviceId
accountId
userId
|
Not to be used for logging or debugging. Use sparingly where the error will have impacted the user and would provide value for reporting.
|
Request:
POST https://<server>/useractivityvault/v1/useractivity/playerError
|
|
Content type: live-event
{
...
"metadata": {
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "live-event",
"editorialId": "<editorial_channel_ID>",
"technicalId": "<technical_channel_ID>",
"programmeId": "<programme_ID>",
"errorCode": "<error_code>",
"errorMsg": "<error_message>",
"playerTypeVersion": "<player_type_version>"
}
...
}
Note that for the live-event content type, you need to specify:
-
editorialId – the editorial channel ID
-
technicalId – the technical channel ID
-
programmeId – the programme ID
|
|
Content type: live-stcu-event
{
...
"metadata": {
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "live-stcu-event",
"editorialId": "<editorial_ID_of_the_event>",
"errorCode": "<error_code>",
"errorMsg": "<error_message>",
"playerTypeVersion": "<player_type_version>"
}
...
}
Note that for the live-stcu-event content type, you need to specify:
|
|
Content type: start-over
{
...
"metadata": {
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "start-over",
"editorialId": "<editorial_ID_of_the_event>",
"errorCode": "<error_code>",
"errorMsg": "<error_message>",
"playerTypeVersion": "<player_type_version>"
}
...
}
Note that for the start-over content type, you need to specify:
|
|
Content type: ltcu
{
...
"metadata": {
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "vod-ed",
"editorialId": "<editorial_content_ID>",
"errorCode": "<error_code>",
"errorMsg": "<error_message>",
"playerTypeVersion": "<player_type_version>"
}
...
}
Note that for the ltcu content type, you need to specify:
|
|
Content type: npvr-event
{
...
"metadata": {
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "npvr-event",
"editorialId": "<content_ID>",
"errorCode": "<error_code>",
"errorMsg": "<error_message>",
"playerTypeVersion": "<player_type_version>"
}
...
}
Note that for the npvr-event content type, you need to specify:
|
|
Content type: vod-ed
{
...
"metadata": {
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "vod-ed",
"editorialId": "<editorial_content_ID>",
"errorCode": "<error_code>",
"errorMsg": "<error_message>",
"playerTypeVersion": "<player_type_version>"
}
...
}
Note that for the vod-ed content type, you need to specify:
|