Activity name | Trigger | Description | Required data fields | Notes | Examples |
---|
appStart
| Client session creation | When app starts up | appSessionId
deviceId
activityDateTime
accountId
userId
| appSessionId is created when application is started, persisted until application closed by user or due to inactivity.
In mobile, a session begins when the app is opened (in the foreground) and ends when it goes into the background and no events occur within a predetermined time window, dependent on the measurement provider. Note that because of the typical multitasking nature of mobile users, events that occur within the predetermined window count towards the current session. | Request:
CODE
POST https://<server>/useractivityvault/v1/useractivity/appStart
|
JSON
{
...
"metadata": {
"appSessionId": "<UUID/GUID>",
"activityDateTime": "…. (UTC)"
}
...
}
|
appEnd
| Client session tear down | When app is shut down or times out due to inactivity | appSessionId
deviceId
accountId
userId
activityDateTime
| | Request:
CODE
POST https://<server>/useractivityvault/v1/useractivity/appEnd
|
Body:
JSON
{
...
"metadata": {
"appSessionId": "<UUID/GUID>",
"activityDateTime": "…. (UTC)"
}
...
}
|
playbackStart
| Start of playback | | appSessionId
playbackSessionId
editorialId
deviceId
accountId
userId
contentSource
contentType
railId
depth
templateId
technicalId
programmeId
seriesId
deeplinkId
deviceType
| Zero position event The playbackSession needs to be associated with the playback event. playbackSessionId – generated when playback starts.
Do not use playbackStart when playback is resumed after playbackPause . Use playbackResume instead.
| Request:
JSON
POST https://<server>/useractivityvault/v1/useractivity/playbackStart
|
Content type: live-event
JSON
{
...
"metadata": {
"deviceType": "<device_type>",
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "live-event",
"editorialId": "<editorial_channel_ID>",
"technicalId": "<technical_channel_ID>",
"programmeId": "<programme_ID>",
"seriesId": "<series_ID_if_available>",
"position": <seconds_since_event_start_time>,
"templateId": "<template_ID>",
"railId": "<rail_ID>",
"depth": "<depth>",
"deeplinkId": "<deeplink_ID>"
}
...
}
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": {
"deviceType": "<device_type>",
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "live-stcu-event",
"editorialId": "<editorialId_of_the_event",
"seriesId": "<series_ID_if_available>",
"position": <seconds_since_event_start_time>,
"templateId": "<template_ID>",
"railId": "<rail_ID>",
"depth": "<depth>",
"deeplinkId": "<deeplink_ID>"
}
...
}
Note that for the live-stcu-event content type, you need to specify:
|
Content type: start-over
JSON
{
...
"metadata": {
"deviceType": "<device_type>",
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "start-over",
"editorialId": "<editorial_ID_of_the_event>",
"seriesId": "<series_ID_if_available>",
"position": <seconds_since_event_start_time>,
"templateId": "<template_ID>",
"railId": "<rail_ID>",
"depth": "<depth>",
"deeplinkId": "<deeplink_ID>"
}
...
}
Note that for the start-over content type, you need to specify:
|
Content type: ltcu
JSON
{
...
"metadata": {
"deviceType": "<device_type>",
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "vod-ed",
"editorialId": "<editorial_content_ID>",
"seriesId": "<series_ID_if_available>",
"position": <seconds_since_event_start_time>,
"templateId": "<template_ID>",
"railId": "<rail_ID>",
"depth": "<depth>",
"deeplinkId": "<deeplink_ID>"
}
...
}
Note that for the ltcu content type, you need to specify:
|
Content type: npvr-event
JSON
{
...
"metadata": {
"deviceType": "<device_type>",
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "npvr-event",
"editorialId": "<content_ID>",
"seriesId": "<series_ID_if_available>",
"position": <seconds_since_event_start_time>,
"templateId": "<template_ID>",
"railId": "<rail_ID>",
"depth": "<depth>",
"deeplinkId": "<deeplink_ID>"
}
...
}
Note that for the npvr-event content type, you need to specify:
|
Content type: vod-ed
JSON
{
...
"metadata": {
"deviceType": "<device_type>",
"appSessionId": "<UUID>|<GUID>",
"playbackSessionId": "<UUID>|<GUID>",
"contentSource": ["IPTV"|"OTT"|"Blend"],
"contentType": "vod-ed",
"editorialId": "<editorial_content_ID>",
"seriesId": "<series_ID_if_available>",
"position": <seconds_since_event_start_time>,
"templateId": "<template_ID>",
"railId": "<rail_ID>",
"depth": "<depth>",
"deeplinkId": "<deeplink_ID>"
}
...
}
Note that for the vod-ed content type, you need to specify:
|
playbackStop
| User stops playback either with stop action or browsing away from playout | | appSessionId
playbackSessionId
position
editorialId
contentSource
contentType
deviceId
accountId
userId
| | Request:
JSON
POST https://<server>/useractivityvault/v1/useractivity/playbackStop
|
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>",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
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": "contentId",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
Note that for the vod-ed content type, you need to specify:
|
playbackPause
| User pauses playout | | appSessionId
playbackSessionId
position
editorialId
contentSource
contentType
deviceId
accountId
userId
|
Do not use playbackStart when playback is resumed after playbackPause . Use playbackResume instead.
| Request:
JSON
POST https://<server>/useractivityvault/v1/useractivity/playbackPause
|
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>",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
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": "contentId",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
Note that for the vod-ed content type, you need to specify:
|
playbackResume
| User resumes playout after pausing | | appSessionId
playbackSessionId
position
editorialId
contentSource
contentType
deviceId
accountId
userId
|
Do not use playbackStart when playback is resumed after playbackPause . Use playbackResume instead.
| Request:
JSON
POST https://<server>/useractivityvault/v1/useractivity/playbackResume
|
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>",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
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": "contentId",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
Note that for the vod-ed content type, you need to specify:
|
playbackSkipAhead
| Fast forward or drag timeline forward | Covering fast forward or skip, allowing the tracking of the start point and the endpoint when playback resumes | appSessionId
playbackSessionId
startPosition
stopPosistion
editorialId
contentSource
contentType
deviceId
accountId
userId
| startPosition – when the skip is triggered
stopPosition – when playback is resumed
| Request:
CODE
POST https://<server>/useractivityvault/v1/useractivity/playbackSkipAhead
|
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>",
"startPosition": <seconds_since_event_start_time>,
"stopPosition": <seconds_since_event_start_time>
}
...
}
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>",
"startPosition": <seconds_since_event_start_time>,
"stopPosition": <seconds_since_event_start_time>
}
...
}
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>",
"startPosition": <seconds_since_event_start_time>,
"stopPosition": <seconds_since_event_start_time>
}
...
}
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>",
"startPosition": <seconds_since_event_start_time>,
"stopPosition": <seconds_since_event_start_time>
}
...
}
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": "contentId",
"startPosition": <seconds_since_event_start_time>,
"stopPosition": <seconds_since_event_start_time>
}
...
}
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>",
"startPosition": <seconds_since_event_start_time>,
"stopPosition": <seconds_since_event_start_time>
}
...
}
Note that for the vod-ed content type, you need to specify:
|
playbackSkipBack
| Rewind or drag timeline backward | Covering rewind or skip back, allowing the tracking of the start point and the endpoint when playback resumes | appSessionId
playbackSessionId
startPosition
stopPosistion
editorialId
contentSource
contentType
deviceId
accountId
userId
| startPosition – when the skip is triggered
stopPosition – when playback is resumed
| Request:
JSON
POST https://<server>/useractivityvault/v1/useractivity/playbackSkipBack
|
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>",
"startPosition": <seconds_since_event_start_time>,
"stopPosition": <seconds_since_event_start_time>
}
...
}
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>",
"startPosition": <seconds_since_event_start_time>,
"stopPosition": <seconds_since_event_start_time>
}
...
}
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>",
"startPosition": <seconds_since_event_start_time>,
"stopPosition": <seconds_since_event_start_time>
}
...
}
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>",
"startPosition": <seconds_since_event_start_time>,
"stopPosition": <seconds_since_event_start_time>
}
...
}
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": "contentId",
"startPosition": <seconds_since_event_start_time>,
"stopPosition": <seconds_since_event_start_time>
}
...
}
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>",
"startPosition": <seconds_since_event_start_time>,
"stopPosition": <seconds_since_event_start_time>
}
...
}
Note that for the vod-ed content type, you need to specify:
|
playbackHeartbeat
| Created regularly to indicate that the user is watching a stream of content without interacting with the client. We recommend recording this activity every 60 seconds. | Heartbeat/playout time Used to track playout at a granular level. This data is not recorded for operational use only used for reporting. | appSessionId
playbackSessionId
position
editorialId
contentType
deviceId
accountId
userId
|
If the player metrics are reported regularly with a matching session ID, we can use those for the streaming indicator.
Do not report playbackHeartbeat if you report playback_metrics . See playback_metrics in QOE/QOS metrics.
| Request:
JSON
POST https://<server>/useractivityvault/v1/useractivity/playbackHeartbeat
|
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>",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
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": "contentId",
"position": <seconds_since_event_start_time>
}
...
}
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>",
"position": <seconds_since_event_start_time>
}
...
}
Note that for the vod-ed content type, you need to specify:
|
adWatched
| Completion of viewing a delivered advert | For ad tracking, allows the client to capture data on the adverts watched by the user. | appSessionId
playbackSessionId
adID
trackingAssetId
adSupplier
deviceId
accountId
userId
| | Request:
CODE
POST https://<server>/useractivityvault/v1/useractivity/adWatched
Body:
JSON
{
...
"metadata": {
"contentSource": "IPTV",
"contentType": ["live-event"|"vod-ed"|"live-stcu-event"|"start-over"|"npvr-event"|"D2G"],
"recordingId": "ABC_1234",
"appSessionId": "<UUID>",
"playbackSessionId" : "<UUID>",
"adID": "<UUID>",
"trackingAssetId": "<UUID>",
"adSupplier": "<name>"
}
...
}
|
adDelivered
| Ad delivered in a stream | Capture adverts that are delivered. Useful for reference if the user skips the ad. | appSessionId
playbackSessionId
adID
trackingAssetId
adSupplier
deviceId
accountId
userId
| | Request:
CODE
POST https://<server>/useractivityvault/v1/useractivity/adDeliverd
Body:
JSON
{
...
"metadata": {
"contentSource": "IPTV",
"contentType": ["live-event"|"vod-ed"|"live-stcu-event"|"start-over"|"npvr-event"|"D2G"],
"recordingId": "ABC_1234",
"appSessionId": "<UUID>",
"playbackSessionId": "<UUID>",
"adID": "<UUID>",
"trackingAssetId": "<UUID>",
"adSupplier": "<name>"
...
}
|
adSkipped
| Skipping adverts where allowed. | Capture the action of skipping an ad where allowed. | appSessionId
playbackSessionId
adID
trackingAssetId
adSupplier
deviceId
accountId
userId
| | Request:
CODE
POST https://<server>/useractivityvault/v1/useractivity/adSkipped
Body:
JSON
{
...
"metadata": {
"contentSource": "IPTV",
"contentType": ["live-event"|"vod-ed"|"live-stcu-event"|"start-over"|"npvr-event"|"D2G"],
"recordingId": "ABC_1234",
"appSessionId": "<UUID>",
"playbackSessionId": "<UUID>",
"adID": "<UUID>",
"trackingAssetId": "<UUID>",
"adSupplier": "<name>"
...
}
|
scheduleRecording
| User triggers a recording to be created in OPF. | | appSessionId
playbackSessionId
editorialId
seriesLink
seriesId
deviceId
accountId
userId
technicalId
programmeId
seriesId
deeplinkId
deviceType
| | Request:
CODE
POST https://<server>/useractivityvault/v1/useractivity/scheduleRecording
Body:
JSON
{
...
"metadata": {
"contentSource": "IPTV",
"contentType": ["live-event"|"live-stcu-event"],
"recordingId": "ABC_1234",
"appSessionId": "<UUID>",
"playbackSessionId": "<UUID>",
"seriesLink": "<UUID>",
"seriesId": "<UUID>",
"editorialId" : "GLOBAL_20711",
"technicalId": "jkn193887",
"programmeId": "010928",
"seriesId": "298940",
"deeplinkId": "DeepL_20711",
"deviceType": "ios"
...
}
|
unscheduleRecording
| User triggers a scheduled recording to be cancelled. | | appSessionId
playbackSessionId
editorialId
seriesLink
seriesId
deviceId
accountId
userId
technicalId
programmeId
seriesId
deeplinkId
deviceType
| | Request:
CODE
POST https://<server>/useractivityvault/v1/useractivity/unscheduleRecording
Body:
JSON
{
...
"metadata": {
"contentSource": "IPTV",
"contentType": ["live-event"|"live-stcu-event"],
"recordingId": "ABC_1234",
"appSessionId": "<UUID>",
"playbackSessionId": "<UUID>",
"seriesLink": "<UUID>",
"seriesId": "<UUID>",
"editorialId" : "GLOBAL_20711",
"technicalId": "jkn193887",
"programmeId": "010928",
"seriesId": "298940",
"deeplinkId": "DeepL_20711",
"deviceType": "ios"
...
}
|
watch
| Created when the user clicks the play option on content. | Current activity that is reported on first playback. | appSessionId
playbackSessionId
Position
editorialId
contentType
railId
templateId
deviceId
accountId
userId
| Deprecated – retained for backward compatibility. | Request:
CODE
POST https://<server>/useractivityvault/v1/useractivity/watch
Body:
JSON
{
...
"metadata": {
"contentSource": "IPTV",
"contentType": ["live-event"|"vod-ed"|"live-stcu-event"|"start-over"|"npvr-event"|"D2G"],
"recordingId": "ABC_1234",
"playbackSessionId": "<UUID>",
"appSessionId": "<UUID>",
"position": 789,
"railId": "<UUID>",
"templateId": "<UUID>",
"contentId": "GLOBAL_20711"
}
...
}
|