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:
CODE
POST https://<server>/useractivityvault/v1/useractivity/playback_metrics
|
Content type: live-event
JSON
{
...
"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
JSON
{
...
"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
JSON
{
...
"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
JSON
{
...
"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
JSON
{
...
"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
JSON
{
...
"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:
JSON
POST https://<server>/useractivityvault/v1/useractivity/playerError
|
Content type: live-event
JSON
{
...
"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
JSON
{
...
"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
JSON
{
...
"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
JSON
{
...
"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
JSON
{
...
"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
JSON
{
...
"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:
|