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 300 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. Note that appError is identical to playerError except for the name. | 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:
|