Skip to main content
Skip table of contents

Test Suite

Test Scenarios

Analytics

Validate Reports for Playback of a Content

Test Scenario

Validate reports for a content watched.

Note:

  • This test case needs to be repeated for the following content types:

    • live-event

    • live-stcu-event

    • start-over

    • ltcu

    • npvr-event

    • vod-ed

  • For the live-event content type, editorialid, programmeId, and technicalId are required.

  • For other content types, only editorialId is required.

Test Steps

Expected Results

Launch the application.

UAV activity

appStart activity is reported with the following fields:

CODE
appSessionId : "<UUID/GUID>"
deviceId : the device ID of device under test
activityDateTime : "…. (UTC)"
accountID : the account ID of the device under test
timestamp : the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
name: "appStart"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'appStart' order by createddatetime DESC

Start watching a live event for 12 minutes.

UAV activity

playbackStart activity is reported with the following fields:

CODE
appSessionId: "<UUID/GUID>",
playbackSessionId: "<UUID/GUID>",
Position:"<seconds_since_event_start_time>",
deviceId: the device ID of device under test
accountId: the account ID of the device under test
timestamp : the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
name :"playbackStart"
editorialID:"<editorial_channel_ID>",
contentSource: "["IPTV"|"OTT"|"Blend"]",
contentType:"live-event",
technicalID:"<technical_channel_ID>",
programmeId:"<programme_ID>"
seriesId:"<series_ID_if_available>",
deeplinkId:"<deeplink_ID>,
deviceType:"<device_type>"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackStart' order by createddatetime DESC

UAV playback metrics

playback_metrics reports at the configured interval. with the following fields:

CODE
accountId: the account ID of the device under test
deviceId: the device ID of device under test
name:"playback_metrics"
timestamp :the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId: "<UUID/GUID>"
contentSource:"["IPTV"|"OTT"|"Blend"]"
editorialId:"<editorial_channel_ID>"
playbackSessionId: "<UUID/GUID>"
playbackProgress:"<viewing seconds>"
selectedBitrate
contentType:"live-event"
availableBitrates"<Content available bitrates in bits per second (bps)>"
bytesDownloaded:"<total bytes downloaded>"
downloadBitrate
downloadBitrateAverage:"<average value of bitrate stream>"
bufferedDuration:"<buffer duration in secs>"
streamBitrate:"<The current bit rate being consumed, supplied by the player>"
droppedVideoFrames"<no of frames dropped>"
totalVideoFrames:"<total frame counts>"
uri:"<uri of video stream>"

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics  ' order by createddatetime DESC

E.g.

CODE
configured interval = 30s

number of playback metrics rows reported= 24

first playback progress as 0 with playbackprogress value difference between consecutive = 30

Insight events

The following mandatory playback events are present in row for a content played:

  • play

  • playing

  • timeToVideoStart

This should be checked in raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check the event name and properties for the playback events listed above.

E.g.:

JSON
"event": {
  name:"",
  properties:""
}

Insight metrics

The number of playback metrics samples generated is equal to total viewing seconds divided by the sampling interval.

Each playback metric sample will have viewing seconds equal to the sampling interval.

Sum of viewing seconds of all the samples is equal to total viewing seconds in interval.

collectiontimestamp difference between samples from two reporting intervals should be equal to reporting interval.

This should be checked in raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

E.g.:

CODE
Watched time = 12 minutes (720 s)
reporting interval = 300s
sampling interval = 30s
 Number of metrics samples/row generated in 1st reporting interval = 10
Viewing seconds of each sample = 30s
Number of metrics samples/row generated in next reporting interval=10
Viewing seconds of each sample = 30s
Number of metrics samples/row generated in next reporting interval=4
Viewing seconds of each sample = 30s

Stop watching event.

UAV activity

playbackStop activity is reported with the following fields:

CODE
appSessionId:"<UUID/GUID>"
playbackSessionId: "<UUID/GUID>"
Position:"<seconds_since_event_start_time>",
editorialID:"<editorial_channel_ID>"
contentSource:"["IPTV"|"OTT"|"Blend"]"
contentType:"live-event",
deviceId: the device ID of device under test
accountId: the account ID of the device under test
timestamp: the activity 
timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
progress:"<viewing seconds>"
name: 'playbackStop'

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackStop' order by createddatetime DESC

Insight event

The following mandatory playback events are present in row for a content played:

  • stop

This should be checked in raw_playback_events table with the following query:

CODE
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check proper event in name field and timestamp in row.

E.g,:

JSON
"event": {
   "name": "stop",
   "properties": {}
}

Insight metrics

The number of playback metrics samples generated for the channel in the reporting interval is equal to total viewing seconds divided by sampling interval.

Each playback metric sample will have viewing seconds equal to the sampling interval

Sum of viewing seconds of all the samples is equal to total viewing seconds in reporting interval.

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

E.g.:

CODE
Reporting interval = 300s
Sampling interval = 30s
Watched time for channel in  reporting interval = 2 minutes (120 s)
Number of metrics samples/row generated in reporting interval=4
Viewing seconds of each sample = 30s

Close the app.

appEnd activity is reported with the following fields:

CODE
appSessionId: "<UUID/GUID>",
deviceId :the device ID of device under test
accountId: the account ID of the device under test
activityDateTime:"…. (UTC)"
timestamp : the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
name:"appEnd"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'appEnd' order by createddatetime DESC

Validate Reports for Pause, Resume Content

Test Scenario

Validate reports when user pause, resumes a content watched.

Note:

  • This test case needs to be repeated for the following content types:

    • live-event

    • live-stcu-event

    • start-over

    • ltcu

    • npvr-event

    • vod-ed

  • For the live-event content-type, editorialid, programmeId, and technicalId are required.

  • For other content types, only editorialId is required.

Test Steps

Expected Results

Open an app, Start watching a content for 5 minutes.

Check expected results for UAV, Insight as validated in first test case for step starting watching a content

Pause playback for 2 minutes.

UAV activity

playbackPause  activity is reported with the following fields:

CODE
accountId: the account ID of the device under test
deviceId:the device ID of device under test
name:"playbackPause "
timestamp:  the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId: "<UUID/GUID>"
playbackSessionId: "<UUID/GUID>",
position:" <seconds_since_event_start_time>"
editorialId: "<editorial_channel_ID>",
contentSource:"["IPTV"|"OTT"|"Blend"]"
contentType:"live-event"
editorialID:"<editorial_channel_ID>",
contentSource: "["IPTV"|"OTT"|"Blend"]",
contentType:"live-event",

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackPause' order by createddatetime DESC

UAV playback metrics

playback_metrics reports at the configured interval.

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics  ' order by createddatetime DESC

E.g.:

CODE
configured interval = 30s

number of playback metrics rows reported = 4

with playbackprogress value each = 300

Insight events

The following mandatory playback event is present in row for a content played:

  • pause

This should be checked in the raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check event name and properties for the playback events listed above.

E.g.:

JSON
"event": {
   "name": "pause",
   "properties": {}
}

Insight metrics

The number of playback metrics samples generated is equal to total paused seconds divided by the sampling interval.

Each playback metric sample will have viewing seconds equal to 0.

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

 E.g.:

CODE
Reporting interval = 300s
Sampling interval = 30s
Content was watched for 5 minute
Paused for 3 minutes.
Then number of playback metrics samples/reports generated = 16
First 10 samples will have viewing seconds = 30s
Next 6 samples will have viewing seconds = 0s

Resume playback and watch 5 minutes.

playbackResume  activity is reported with the following fields:

CODE
accountId: the account ID of the device under test
deviceId:the device ID of device under test
name:"playbackResume "
timestamp : the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId: "<UUID/GUID>"
playbackSessionId: "<UUID/GUID>"
position:"<seconds_since_event_start_time>"
editorialId:"<editorial_channel_ID>"
contentSource: "["IPTV"|"OTT"|"Blend"]"
contentType:"live-event"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackResume ' order by createddatetime DESC

playback_metrics reports at the configured interval.

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics  ' order by createddatetime DESC

E.g.:

CODE
configured interval = 30s

number of playback metrics rows reported = 10

playback progress starting from 330 with playbackprogress value difference between consecutive = 30

The following mandatory playback event is present in row for a content played:

  • play

This should be checked in raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check event name and properties for the playback events listed above.

E.g.:

JSON
"event": {
   "name": "play",
   "properties": {}
}

The number of playback metrics samples generated is equal to total viewing seconds divided by sampling interval.

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

 E.g.:

CODE
Reporting interval = 300s

Sampling interval = 30s
Content was resumed and watched for 5 minutes

Then number of playback metrics samples/reports generated = 10
viewing seconds each = 30

Validate Reports for Fast Forward, Rewind when Watching Content

Test Scenario

Validate reports when user triggers skipback or skipahead for the content beingwatched.

Note:

  • This test case needs to be repeated for the following content types:

    • live-event

    • live-stcu-event

    • start-over

    • ltcu

    • npvr-event

    • vod-ed

  • For live-event content-type, editorialid, programmeId, and technicalId are required.

  • For other content types, only editorialId is required.

Test Steps

Expected Results

Open an app, start watching a content for 5 minutes.

Check expected results for UAV, Insight as validated in first test case for the step "starting watching a content".

Skip back content by 2 minutes and watch 1 minute.

UAV activity

playbackSkipBack activity is reported with the following fields:

CODE
accountId: the account ID of the device under test
deviceId: the device ID of device under test
name:"playbackSkipBack"
timestamp  the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId: "<UUID/GUID>"
playbackSessionId: "<UUID/GUID>"
startPosition:"<seconds_since_event_start_time>"
stopPosistion:"<seconds_since_event_start_time>"
editorialId:"<editorial_channel_ID>"
contentSource:"["IPTV"|"OTT"|"Blend"]"
contentType:"vod-ed"

 

This should be checked in the activity table with the following query:

CODE
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackSkipBack' order by createddatetime DESC

UAV playback metrics

playback_metrics reports at the configured interval.

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics  ' order by createddatetime DESC

E.g.:

CODE
configured interval = 30s

number of playback metrics rows reported = 2

with first playback progress as 180 and next as 210

Insight events

The following mandatory playback event is present in row for a content played:

  • seeking

  • seeked

  • play

This should be checked in the raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check event name and properties for the playback events listed above.

E.g.:

JSON
"event": {
   "name": "seeking",
   "properties": {}
}

Insight metrics

The number of playback metrics samples generated is equal to total viewing seconds divided by sampling interval.

Each playback metric sample will have viewing seconds equal to sampling interval

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

 

Skip ahead content 2 minute, watch for 1 minute and stop.

playbackSkipAhead activity is reported with the following fields

CODE
accountId: the account ID of the device under test
deviceId: the device ID of device under test
name:"playbackSkipAhead"
timestamp  the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId: "<UUID/GUID>"
playbackSessionId: "<UUID/GUID>"
startPosition:"<seconds_since_event_start_time>"
stopPosistion:"<seconds_since_event_start_time>"
editorialId:"<editorial_channel_ID>"
contentSource:"["IPTV"|"OTT"|"Blend"]"
contentType:"vod-ed"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackSkipAhead ' order by createddatetime DESC

playback_metrics reports at the configured interval.

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics  ' order by createddatetime DESC

E.g.:

CODE
configured interval = 30s

number of playback metrics rows reported = 2

first playback progress as 330 and next as 360

The following mandatory playback event is present in row for a content played:

  • seeking

  • seeked

  • play

This should be checked in raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check event name and properties for the playback events listed above.

E.g.

JSON
"event": {
   "name": "seeked",
   "properties": {}
}

The number of playback metrics samples generated is equal to total viewing seconds divided by sampling interval.

Each playback metric sample will have viewing seconds equal to sampling interval.

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

 

Validate Reports for Error Occurred During Playback

Test Scenario

Validate reports when error during a live content watched.

Test Steps

Expected Results

Open an app, start watching a content for 5 minutes.

Check expected results for UAV, Insight as validated in first test case for step starting watching a content.

Error introduced

UAV activity

playerError activity is reported with the following fields:

CODE
accountId: the account ID of the device under test
deviceId:the device ID of device under test
name:"playerError "
appSessionId: "<UUID/GUID>",
playbackSessionId: "<UUID/GUID>"
editorialId:"<editorial_channel_id>",
errorCode:"<error_code>",
errorMsg:"<error_message>,
playerTypeversion:"<player_type_version>"
timestamp : the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playerError' order by createddatetime DESC

Insight events

The following mandatory playback event is present in row for a content played:

  • error

This should be checked in raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check event name and properties for the playback events listed above.

E.g.:

JSON
"event": {
   "name": "error",
   "properties": {
      "errorMessage": "<>",
      "errorCode": "<>
   }
}

Validate Event Change on a Channel

Test Scenario

Validate reports when different contents watched on a channel.

Test Steps

Expected Results

Start watching Content 1 on a channel.

Check the UAV playbackStart and playback_metrics activity for editorialID and playbackSessionId fields.

These should be available for Content 1.

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics' order by createddatetime DESC

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackStart' order by createddatetime DESC

Check the Insight playback_metrics activity for contentid, contentname, and playbackSessionId fields.

These should be available for Content 1.

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

Change to Content 2 on same channel.

For Content 2, there should be a new playbackStart activity reported with a new editorialID and new playbacksessionID.

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackStart' order by createddatetime DESC

contentid and contentname name will change.

sessionid parameter value remains the same in the result rows.

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

Validate no Reports when STB is in Standby

Test Scenario

Validate that when STB is in standby, no reports are posted. (This test case is specific to test device as a STB.)

Test Steps

Expected Results

Watch any content less than configured/reporting interval.

UAV activity

playbackStart activity is reported.

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackStart' order by createddatetime DESC

Put STB in standby mode

Insight events

The following mandatory playback event is present in row for a content played:

  • play

  • playing

  • timetoVideoStart

  • stop

This should be checked in raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check event name and properties for the playback events listed above.

E.g.:

JSON
"event": {
  "name": "play",
  "properties": {}
}

Insight metrics

The number of playback metrics samples generated is equal to total viewing seconds divided by sampling interval.

Each playback metric sample will have viewing seconds equal to the sampling interval.

Sum of viewing seconds of all the samples is equal to total viewing seconds.

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

E.g.:

CODE
Content watched = 60s
Reporting interval = 300s
Sampling interval = 30s
number of metrics sample/rows generated = 2
Viewing seconds of each sample = 30s

Leave STB in standby for 10 minutes.

Check no samples/rows generated.

Validate no Reports Generated when Power Cycle, STB in Standby 

Test Scenario

Validate no reports generated after power issue, STB in standby mode. (This test case is specific to test device as a STB.)

Test Steps

Expected Results

Put STB in standby mode.

No metrics, events, activity rows generated.

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics  ' order by createddatetime DESC

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> order by createddatetime DESC

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

This should be checked in raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Disconnect power cable, wait 1 minute, reconnect power cable and wait for reporting interval.

STB is still in standby state and no metrics, events, or activity rows generated.

Validate Reports Generated with Overlay Menu Opened

Test Scenario

Validate reports are generated when any content is watched, and user stays in menu screen.

Test Steps

Expected Results

Watch any content, open overlay menu and wait for end of reporting interval.

UAV activity

playbackStart activity is reported with the following fields

CODE
appSessionId: "<UUID/GUID>",
playbackSessionId: "<UUID/GUID>",
Position:"<seconds_since_event_start_time>",
deviceId: the device ID of device under test
accountId: the account ID of the device under test
timestamp : the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
name :"playbackStart"
editorialID:"<editorial_channel_ID>",
contentSource: "["IPTV"|"OTT"|"Blend"]",
contentType:"live-event",
technicalID:"<technical_channel_ID>",
programmeId:"<programme_ID>"
seriesId:"<series_ID_if_available>",
deeplinkId:"<deeplink_ID>,
deviceType:"<device_type>"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackStart' order by createddatetime DESC

UAV playback metrics

playback_metrics reports at the configured interval with the following fields.

CODE
accountId: the account ID of the device under test
deviceId: the device ID of device under test
name:"playback_metrics"
timestamp :the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId: "<UUID/GUID>"
contentSource:"["IPTV"|"OTT"|"Blend"]"
editorialId:"<editorial_channel_ID>"
playbackSessionId: "<UUID/GUID>"
playbackProgress:"<viewing seconds>"
selectedBitrate
contentType:"live-event"
availableBitrates"<Content available bitrates in bits per second (bps)>"
bytesDownloaded:"<total bytes downloaded>"
downloadBitrate
downloadBitrateAverage:"<average value of bitrate stream>"
bufferedDuration:"<buffer duration in secs>"
streamBitrate:"<The current bit rate being consumed, supplied by the player>"
droppedVideoFrames"<no of frames dropped>"
totalVideoFrames:"<total frame counts>"
uri:"<uri of video stream>"

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics  ' order by createddatetime DESC

E.g.

CODE
watched time = 5 minutes
configured interval = 30s
number of playback metrics rows reported= 10
first playback progress as 0 with playbackprogress value difference between consecutive = 30

Insight events

The following mandatory playback events are present in row for a content played:

  • play

  • playing

  • timeToVideoStart

  • stop

This should be checked in raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check event name and properties for the playback events listed above.

E.g.:

JSON
"event": {
  "name":"<event_name>",
  "properties": {}
}

Insight metrics

The number of playback metrics samples generated is equal to total viewing seconds divided by sampling interval.

Each playback metric sample will have viewing seconds equal to the sampling interval.

Sum of viewing seconds of all the samples is equal to total viewing seconds in interval.

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

 E.g.:

CODE
reporting interval = 300s
sampling interval = 30s
number of metrics samples/rows generated = 10
Viewing seconds of each sample = 30s

Validate reports generated with network disconnect  

Test Scenario

Validate reports are generated when any content watched, and network issue happened within reporting interval.

Test Steps

Expected Results

Watch any content.

Disconnect network cable.

UAV activity

playbackStart activity is reported .

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackStart' order by createddatetime DESC

playerError activity is reported.

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playerError' order by createddatetime DESC

Reconnect the network cable before the end of reporting interval.

UAV playback metrics

playback_metrics reported.

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics  ' order by createddatetime DESC

E.g.:

CODE
Configured interval = 30s
Content was watched for 1 minute
number of playback metrics rows reported = 2
first playback progress as 0 with playbackprogress value difference between consecutive = 30

Network disconnect for 3 minutes.
number of playback metrics rows reported = 6
with playbackprogress value each = 60

Content watched for 1 minute more
number of playback metrics rows reported = 2
first playback progress as 90 with playbackprogress value difference between consecutive = 30

Insight events

The following mandatory playback event is present in row for a content played:

  • play

  • playing

  • timetoVideoStart

  • error

  • stalled

  • stop

This should be checked in raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check event name and properties for the playback events listed above.

E.g.:

JSON
"event": {
  "name": "play",
  "properties": {}
}

Insight metrics

The number of playback metrics samples generated is equal to total viewing seconds divided by sampling interval.

Sum of viewing seconds of all the samples is equal to the total viewing seconds.

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

E.g.:

CODE
Reporting interval = 300s
Sampling interval = 30s
Content was watched for 1 minute
Network disconnect for 3 minutes.
Then number of playback metrics samples/reports generated = 10
First 2 samples will have viewing seconds = 30s
Next 6 samples will have viewing seconds = 0s
Last 2 samples will have viewing seconds = 30s

Validate Reports Generated when Tuned in to Parentally Locked Content

Test Scenario

Validate reports are generated when parentally locked content is selected.

Test Steps

Expected Results

Tune to a parentally locked channel. Do not enter PIN. Wait for end of reporting interval.

UAV playback metrics

playback_metrics reported.

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics  ' order by createddatetime DESC

E.g.:

CODE
Configured interval = 30s
Tuned in for 5 minutes
number of playback metrics rows reported = 10
with playbackprogress value each = 0 

Insight metrics

The number of playback metrics samples generated is equal to reporting interval divided by sampling interval.

Each playback metric sample will have viewing seconds equal to 0s.

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

E.g.:

CODE
reporting interval = 300s
sampling interval = 30s
number of metrics samples/rows generated = 10
Viewing seconds of each sample = 0s

Unlock the live channel by entering correct PIN and wait for reporting interval

UAV activity

playbackStart activity is reported.

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackStart' order by createddatetime DESC

UAV playback metrics

playback_metrics reports at the configured interval.

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics  ' order by createddatetime DESC

E.g.:

CODE
watched time = 5 minutes
configured interval = 30s
number of playback metrics rows reported= 10
first playback progress as 0 with playbackprogress value difference between consecutive = 30

Insight events

The following mandatory playback events are present in row for a content played:

  • play

  • playing

  • timeToVideoStart

  • stop

This should be checked in raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check event name and properties for the playback events listed above.

E.g.:

JSON
"event": {
  "name": "<event_name>",
  "properties": {}
}

Insight metrics

The number of playback metrics samples generated is equal to total viewing seconds divided by sampling interval.

Each playback metric sample will have viewing seconds equal to the sampling interval.

Sum of viewing seconds of all the samples is equal to total viewing seconds in interval.

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

E.g.:

CODE
reporting interval = 300s
sampling interval = 30s
number of metrics samples/rows generated = 10
Viewing seconds of each sample = 30s

Validate Reports Generated with Third-party App Opened

Test Scenario

Validate reports are generated when third-party app opened while watching any content within reporting/configured interval.

Test Steps

Expected Results

Watch any content less than reporting/configured interval.

Launch a third-party application from the launcher application.

UAV activity

playbackStart activity is reported

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackStart' order by createddatetime DESC

thirdPartyAppStart activity is reported with the following fields:

CODE
accountId: the account ID of the device under test
deviceId:the device ID of device under test
name:"thirdPartyAppStart "
timestamp – the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId: "<UUID/GUID>"
playbackSessionId: "<UUID/GUID>"
appName:""
appReference:""
deeplinkProviderId:" <deeplink_provider_id>"
railId:"<UUID>"
templateId:"<UUID>"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'thirdPartyAppStart ' order by createddatetime DESC

Exit the third-party application and return to launcher application.

Navigate back to original content and watch till reporting period.

UAV activity

returnToLauncher activity is reported with the following fields:

CODE
accountId: the account ID of the device under test
deviceId: the device ID of device under test
name:"returnToLauncher "
timestamp : the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId: "<UUID/GUID>"
playbackSessionId: "<UUID/GUID>"
appName:""

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'returnToLauncher ' order by createddatetime DESC

UAV playback metrics

playback_metrics reported

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics  ' order by createddatetime DESC

E.g.:

CODE
Configured interval = 30s
Content was watched for 1 minute
number of playback metrics rows reported = 2
first playback progress as 0 with playbackprogress value difference between consecutive = 30

Third Party app for 3 minutes.
number of playback metrics rows reported = 6
with playbackprogress value each = 60

Returned and watched 1 minute
number of playback metrics rows reported = 2
first playback progress as 90 with playbackprogress value difference between consecutive = 30

Insight events

The following mandatory playback event is present in row for a content played:

  • play

  • playing

  • timetoVideoStart

  • stop

This should be checked in raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check event name and properties for the playback events listed above.

E.g.:

JSON
"event": {
  "name": "play",
  "properties": {}
}

Insight metrics

The number of playback metrics samples generated is equal to total viewing seconds divided by sampling interval.

Sum of viewing seconds of all the samples is equal to the total viewing seconds.

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

 e.g.

CODE
Reporting interval = 300s
Sampling interval = 30s
Content was watched for 1 minute
Third Party app was opened for 3 minutes.
Then number of playback metrics samples/reports generated = 10
First 2 samples will have viewing seconds = 30s
Next 6 samples will have viewing seconds = 0s
Last 2 samples will have viewing seconds = 30s

Validate Reports Generated when Playback Left Overnight

Test Scenario

Validate reports generated when a live event is left playing overnight.

Note:

  • For the live-event content-type, editorialid, programmeId, and technicalId are required.

Test Steps

Expected Results

Start watching a live event and continue for long hours.

UAV activity

playbackStart activity is reported with the following fields:

CODE
appSessionId: "<UUID/GUID>",
playbackSessionId: "<UUID/GUID>",
Position:"<seconds_since_event_start_time>",
deviceId: the device ID of device under test
accountId: the account ID of the device under test
timestamp : the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
name :"playbackStart"
editorialID:"<editorial_channel_ID>",
contentSource: "["IPTV"|"OTT"|"Blend"]",
contentType:"live-event",
technicalID:"<technical_channel_ID>",
programmeId:"<programme_ID>"
seriesId:"<series_ID_if_available>",
deeplinkId:"<deeplink_ID>,
deviceType:"<device_type>"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackStart' order by createddatetime DESC

UAV playback metrics

playback_metrics reports at the configured interval with the following fields:

CODE
accountId: the account ID of the device under test
deviceId: the device ID of device under test
name:"playback_metrics"
timestamp :the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId: "<UUID/GUID>"
contentSource:"["IPTV"|"OTT"|"Blend"]"
editorialId:"<editorial_channel_ID>"
playbackSessionId: "<UUID/GUID>"
playbackProgress:"<viewing seconds>"
selectedBitrate
contentType:"live-event"
availableBitrates"<Content available bitrates in bits per second (bps)>"
bytesDownloaded:"<total bytes downloaded>"
downloadBitrate
downloadBitrateAverage:"<average value of bitrate stream>"
bufferedDuration:"<buffer duration in secs>"
streamBitrate:"<The current bit rate being consumed, supplied by the player>"
droppedVideoFrames"<no of frames dropped>"
totalVideoFrames:"<total frame counts>"
uri:"<uri of video stream>"

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics  ' order by createddatetime DESC

Insight events

The following mandatory playback events are present in row for a content played:

  • play

  • playing

  • timeToVideoStart

  • stop

This should be checked in raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check event name and properties for the playback events listed above.

E.g.:

JSON
"event": {
  "name": "<event_name>",
  "properties": {}
}

Insight metrics

The number of playback metrics samples generated is equal to total viewing seconds divided by sampling interval.

Each playback metric sample will have viewing seconds equal to the sampling interval.

Sum of viewing seconds of all the samples is equal to total viewing seconds in interval.

collectiontimestamp difference between samples from two reporting intervals should be equal to reporting interval.

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

 

Verify Reports Generated when Mobile App Suspended and Resumed

Test Scenario

Validate reports are generated when an app is suspended in an Android Mobile device and VOD content is resumed within reporting interval.

Test Steps

Expected Results

Watch any content for less than reporting time.

Suspend app by pressing home button etc. (Pauses the event for 2 minutes.)

UAV activity

playbackStart activity is reported

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackStart' order by createddatetime DESC

playbackPause activity is reported.

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackPause' order by createddatetime DESC

App is reopened and content resumed and watched till reporting period.

UAV activity

playbackResume  activity is reported with the following fields:

CODE
appSessionId: "<UUID/GUID>",
playbackSessionId: "<UUID/GUID>",
Position:”<seconds_since_event_start_time>”,
deviceId: the device ID of device under test
accountId: the account ID of the device under test
timestamp : the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
name :”playbackResume”
editorialID:"<editorial_channel_ID>",
contentSource: ”["IPTV"|"OTT"|"Blend"]”,
contentType:"live-event",
deviceType:"<device_type>"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'playbackResume' order by createddatetime DESC

UAV playback metrics

playback_metrics reports at the configured interval.

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics  ' order by createddatetime DESC

E.g.:

CODE
Configured interval = 30s
Content was watched for 1 minute
number of playback metrics rows reported = 2
first playback progress as 0 with playbackprogress value difference between consecutive = 30
Third Party app for 2 minutes.
number of playback metrics rows reported = 4
with playbackprogress value each = 60
Returned and watched 2 minute
number of playback metrics rows reported = 4
first playback progress as 90 with playbackprogress value difference between consecutive = 30

Insight events

The following mandatory playback event is present in row for a content played:

  • play

  • playing

  • timetoVideoStart

  • pause

  • stop

This should be checked in raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check event name and properties for the playback events listed above.

E.g.:

JSON
"event": {
  "name": "play",
  "properties": {}
}

Insight metrics

The number of playback metrics samples generated is equal to reporting interval divided by sampling interval.

Sum of viewing seconds of all the samples is equal to the total viewing seconds.

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

 E.g.:

CODE
Reporting interval = 300s
Sampling interval = 30s
Content was watched for 1 minute
Paused for 2 minutes.
Then number of playback metrics samples/reports generated = 10
First 2 samples will have viewing seconds = 30s
Next 4 samples will have viewing seconds = 0s
Last 4 samples will have viewing seconds = 30s

Verify Reports Generated when a Deep Linked Content Played from Rails

Test Scenario

Validate reports are generated when a user watched a content from a Rail. (This test is specific to when Rail content appears on the screen.)

Test Steps

Expected Results

Navigate to a Rail through user action.

UAV activity

railView activity is reported with the following fields:

CODE
accountId: the account ID of the device under test
deviceId: the device ID of device under test
name:"railView"
timestamp: the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId: "<UUID/GUID>"
templateId:"<UUID>"
railId:"<UUID>""
depth:"<depth>"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'railView' order by createddatetime DESC

Select any deep-linked content from a Rail view.

railSelection activity is reported with the following fields:

CODE
accountId: the account ID of the device under test
deviceId:the device ID of device under test
name:"railSelection"
timestamp : the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId: "<UUID/GUID>"
templateId:"<UUID>"
railid:"<rail_ID>",
sectionId:"section_id>"
editorialId:"<UUID>"
contentType:"live-event",
deeplinkProviderId:"<UUID>"
providerResourceId:"<UUID>"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'railSelection' order by createddatetime DESC

Watch a deep-linked content.

deepLinkTriggered activity is reported with the following fields:

CODE
accountId: the account ID of the device under test
deviceId:the device ID of device under test
name:"deepLinkTriggered"
timestamp : the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId: "<UUID/GUID>"
playbackSessionId: "<UUID/GUID>"
deeplinkProviderId:"<UUID>"
source
editorialId:"<editorial_channel_id>"
providerResourceId:"<UUID>"
railId: "<UUID>"
templateId:"<UUID>"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'deepLinkTriggered' order by createddatetime DESC

Verify reports generated when download of content triggered

Test Scenario

Validate reports are generated when a user triggers download of content while watching a live event.

Test Steps

Expected Results

While watching a live content, download of content is triggered through download/save option.

UAV activity

downloadTriggered activity is reported with the following fields:

CODE
accountId: the account ID of the device under test
deviceId: the device ID of device under test
name:"downloadTriggered"
timestamp : the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId:"<UUID/GUID>",
playbackSessionId:"<UUID/GUID>",
editorialId:"<editorial_channel_ID>"
railId:"<UUID"
templateId:"<UUID>"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'downloadTriggered' order by createddatetime DESC

Verify Reports Generated when addelivered, adwatched, adskipped

Test Scenario

Validate reports are generated when user watches/skips a delivered ad.

Test Steps

Expected Results

Ingest an advertisement into the stream while watching a content.

UAV activity

adDelivered activity is reported with the following fields:

CODE
accountId: the account ID of the device under test
deviceId: the device ID of device under test
name:"adDelivered"
timestamp – the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId: "<UUID/GUID>"
playbackSessionId: "<UUID/GUID>"
adID:"<UUID>"
trackingAssetId:"<UUID>"
adSupplier:"<name>"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'adDelivered' order by createddatetime DESC

Insight events

The following mandatory playback events are present in row for a content played

  • adDelivered

This should be checked in raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

E.g.:

JSON
"event": {
  "name": "adDelivered",
  "properties": {}
}

User watches advertisement for 1 minute.

UAV activity

adWatched activity is reported with the following fields:

CODE
accountId: the account ID of the device under test
deviceId: the device ID of device under test
name:"adWatched"
timestamp – the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId: "<UUID/GUID>"
playbackSessionId: "<UUID/GUID>"
adID:"<UUID>"
trackingAssetId:"<UUID>"
adSupplier:"<name>"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'adWatched' order by createddatetime DESC

UAV playback metrics

playback_metrics reports at the configured interval.

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics  ' order by createddatetime DESC

E.g.:

CODE
previously watched a live content = 300 sec
configured interval = 30s
number of playback metrics rows reported = 10
first playback progress as 0 with playbackprogress value difference between consecutive = 30
watching ad = 1min
number of playback metrics rows reported = 2
with playbackprogress value each = 300

Insight events

The following mandatory playback events are present in row for a content played:

  • adWatched

This should be checked in raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check event name and properties for the playback events listed above.

E.g.:

CODE
"event": {
  "name": "adWatched",
  "properties": ""
}

Insight metrics

The number of playback metrics samples generated is equal to total viewing seconds divided by sampling interval.

Each playback metric samples will have viewing seconds as 0.

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

E.g.:

CODE
watched ad= 1min
reporting interval = 300s
sampling interval = 30s
number of metrics samples/rows generated = 2
Viewing seconds of each sample = 0s

User skips ad and continues watching.

adSkipped activity is reported with the following fields:

CODE
accountId: the account ID of the device under test
deviceId: the device ID of device under test
name:"adSkipped"
timestamp – the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
appSessionId: "<UUID/GUID>"
playbackSessionId: "<UUID/GUID>"
adID:"<UUID>"
trackingAssetId:"<UUID>"
adSupplier:"<name>"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and name = 'adSkipped' order by createdd

playback_metrics reports at the configured interval.

This should be checked in the playback_metrics table with the following query:

SQL
select * from <schema_name>." playback_metrics" where accountid = <accountID> and name = 'playback_metrics  ' order by createddatetime DESC

The following mandatory playback events are present in row for a content played:

  • adSkipped

This should be checked in raw_playback_events table with the following query:

SQL
select * from <schema_name>.raw_playback_events where playercontext.device.id='deviceId' order by timestamp desc;

Check event name and properties for the playback events listed above.

E.g.:

JSON
"event": {
  "name": "adSkipped",
  "properties": {}
}

The number of playback metrics samples generated is equal to reporting interval divided by sampling interval.

Each playback metric sample will have viewing seconds equal to the sampling interval.

Sum of viewing seconds of all the samples is equal to the reporting interval.

This should be checked in the raw_playback_metrics table with the following query:

SQL
select * from <schema_name>.raw_playback_metrics where playercontext.device.id='deviceId' order by timestamp desc;

Verify Reports for privacyPolicy Activity

Test Scenario

Validate reports are generated when user consent is accepted/rejected on a consent banner.

Test Steps

Expected Results

When start watching an event. Consent banner appears asking for the user’s consent on data processing, cookies, and privacy policies. 

User accepts OR rejects the consent.

UAV activity

privacyPolicy activity is reported with the following fields:

CODE
accountId: the account ID of the device under test
deviceId:the device ID of device under test
name:"privacyPolicy"
timestamp : the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
consentForTargettedAd:""
policyConsentGiven:""
policyType:"<CCPA/GDPR/PDPA>"
policyShown:""
policyRead:""
policyString:"<specification version+explicit notice(Y/N)+opt out scale(Y/N)>
dateTimeDevice

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."privacyactivity" where accountID = <accountID> and name = 'privacyPolicy' order by createddatetime DESC

Operational

Verify Reports for Favourite Activity

Test Scenario

Validate reports are generated when user creates a new favourite channel.

Test Steps

Expected Results

Set a new channel as a favourite channel.

UAV activity

Favourite activity is reported with the following fields:

CODE
accountId : the account ID of the device under test
deviceId: the device ID of device under test
name:"<favourite_name>"
timestamp : the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and  activitytypeid = '2' and name = '<favourite_name>' order by createddatetime DESC

Verify Reports for Bookmark Activity

Test Scenario

Validate reports are generated when user exits playback before finished watching content.

Test Steps

Expected Results

Open the app andstart watching VOD content.

Exit VOD playback by pressing back/exit button.

UAV activity

Bookmark activity is reported with the following fields:

CODE
accountId: the account ID of the device under test
deviceId: the device ID of device under test
timestamp : the activity timestamp in <YYYY>-<MM>-<DD>T<hh>:<mm>:<ss>Z format
contentId:"<content-id>",
contentType:"vod-ed"
position:" <the position of bookmark from beginning>"

This should be checked in the activity table with the following query:

SQL
select * from <schema_name>."activity" where accountID = <accountID> and activitytypeid = '2' order by createddatetime DESC

Glossary

Term

Definition

Reporting interval

Number of seconds between each report that submits a collection of samples. (The actual reporting time should include a +-10% random jitter.)

Sampling interval

Number of seconds between each collected playback metric sample

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.