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