Device List

The Device info section provides you with a detailed information about a particular end-user device and its activity at the moment and in the past. The search is performed by UID or CSI (Client session ID).

Search by UID

The UID, a unique device identifier, is generated in different ways depending on the type of a device:

  • Linux based STB — unique MAC address of the STB;
  • Android STB — unique serial number of the device;
  • Android mobile application — unique deviceID of the device;
  • iOS mobile application — unique UID automatically generated at the moment of the app installation/re-installation;
  • Smart TV — unique UID automatically generated at the moment of the app installation/re-installation;
  • Web application — unique UID automatically generated at the moment of the app installation/re-installation (stored in the web-browser cookie). If the cookie has been deleted, the UID will be regenerated.
Image4

Description of the table parameters:

Parameter

Description

Type

UID

Unique identifier of an end-user device within the SmartTUBE SDP

Reported IP

IP sent by the end-user device with the KEEP ALIVE event

Detected IP

SAN

Service account identifier unique across the SmartTUBE platform

Hardware ID

End-user device identifier used for internal API requests and other SmartLabs applications

Device type

Type of the end-user device. See How Device Type is Defined.

App version

Version of the client app installed on the end-user device

Firmware version

Firmware version of the end-user device

Channel

Name and ID of the channel being viewed.

Note: the channel name is requested by its ID in the corresponding SmartTUBE dictionary.

State

Current session status (Active or Finished)

Uptime

Last mem

Last CPU

Last event time

Clicking on a row opens detailed information about the device. Here you can see the following panels and graphs:

  • Device info
  • SmartTUBE SDP MW
  • External info
  • Storage
  • Channel viewing report (last 30 days)
  • Events and sessions
  • Client actions
  • Tests
  • Session JoinTime report
  • Sessions list
  • Device logs

Device Info

This area provides you with a general information about the end-user device.

Image3

Parameter

Description

Data source (collection.field)

UID

Unique ID of the subscriber device (UID).

Depending on the session type, two collections can be referenced:

  • multicast: clUser.uid;
  • unicast: ngUser.uid.

Device type

Type of the subscriber device, STB model.

clUser.dt

SAN

Subscriber account ID on the SmartTUBE SDP platform at the moment of the last verified session.

clUser.lastState.ch.san

Location

Location of the subscriber device in the operator network, determined at the moment of authorization.

clEvent.type = 12 → clEvent.data.locationId

User agent

Content of the User-agent header in the HTTP requests of the client application to the streaming server.

Note: data is requested from the last stored unicast session.

ngSession.httpUserAgent

App version

Client application version of the subscriber device in the last verified session.

clUser.lastState.ch.ver

IP address

IP address of the subscriber device.

Depending on the session type, two collections can be referenced:

  • multicast: clEvent.ip;
  • unicast: ngUser.lastState.ch.ip.

Last event time

Time of the last event on the subscriber device in the verified session.

clUser.lastState.ch.eDate

Type

Type of the last verified session (unicast or multicast)

  • clSession.mode:
    • L — multicast,
    • DVR/VOD — unicast.
    • If the session is stored in the ngSession collection, the session is unicast.

State

Current state of the last verified session (active or finished)

clUser.lastState.ch.active

Channel

Name and/or identifier of the channel from which the viewing began in the last verified session.

Note: the channel name is requested by its ID in the corresponding SmartTube SDP dictionary.

clUser.lastState.ch.idc

Client session ID (CSI)

Unique ID of the last verified session.

clUser.lastState.ch.csi

Verified session — a session with low quality and/or duration of more than a minute.

Unverified session — a session with good quality and duration less than a minute (the subscriber switched to the channel, but did not watch it not because of quality problems, but in search of the desired content). Information on such a session in the clSession collection is deleted (to save space).

SmartTUBE SDP MW and External Info Areas

Parameter

Description

Data source (collection)

IP address

Subscriber IP address.

clUserAdd

Device model

Subscriber device model.

clUserAdd

Household hash

Subscriber ID on the OSS/BSS side.

clUserAdd

Location home ID

Unique building ID.

clUserAdd

Channel Viewing Report Area

This area allows you to evaluate the popularity of viewing channels on the end-user device.

Image7

Parameter

Description

Group by count

Ratio of the channels views number on the subscriber device in the Live and DVR modes.

Views by count (live)

Ratio of the channel views number on the subscriber device in the Live mode.

Views by count (DVR)

Ratio of the channel views number on the subscriber device in the DVR mode.

Group by duration

Ratio of the channels viewing duration on the subscriber device in the Live and DVR mode.

Views by duration (live)

Ratio of the channels viewing duration on the subscriber device in the Live mode.

Views by duration (DVR)

Ratio of the channels viewing duration on the subscriber device in the DVR mode.

Events and Sessions Area

The Events and Sessions > Graph tab allows you to view client-side events with linkage to a session. And the Table tab can provide you with an extra info passed to the SmartCARE with each event.

The events are generated by the player integrated with the client app or by the app itself. Event data are passed to the SmartCARE via the SmartCARE API for End-User Devices.

Image12
Image6

Start

Streaming enabling and start of streaming or error.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=SESSION_START

String

Event type

+

+

+

+

+

ste

String

Result of starting the stream / keep alive status:

  • LS — multicast Live TV stream started;
  • LE — multicast Live TV stream failed to start;
  • VODS — VoD stream started;
  • VODE — VoD stream failed to start.
  • DVRS​ — unicast DVR stream (PauseLive, TSTV, nPVR) started;
  • DVRE​ — unicast DVR stream (PauseLive, TSTV, nPVR) failed to start;
  • DVRLS​ — unicast Live TV (DVR stream) started;
  • DVRLE​ — unicast Live TV (DVR stream) failed to start.

+

+

+

 +

 +

error

String

Description of the stream start error (code):

  • 0: Stream Not Found
  • 1: CAS: No Stream Keys
  • 2: Codec Not Supported
  • 3: Too Many Connections
  • 4: Internal Server Error
  • 5: Forbidden
  • 6: Function Not Supported
  • 7: Connection Timeout
  • 8: Connection Terminated
  • 9: Failed To Start
  • 10: Invalid URL
  • 11: Other errors

dt

String

Device type

+

+

+

+

+

ver

String

Client application / firmware version

+

+

+

+

+

idc

String

Channel ID or content ID (movie name, local file name, YouTUBE content ID, etc.)

+

+

+

+

+

url

String

URL of the content playlist/manifest

+

+

+

+

+

idp

Integer

TV program ID (if the Live TV or DVR stream is played)

+

+

+

+

+

btr

Integer

Average bitrate calculated by the video PES packet

N/A

N/A

N/A

N/A

+

pbr

Integer

The bandwidth required for the current streams (total, in bit/sec). It takes into account the playback rate.

+

+

+

+

+

dbr

Integer

Download bitrate

N/A

+

+

+

+

abr

Integer

Available bitrates

+

+

+

+

+

bdr

Integer

Buffer size (sec)

+

+

+

N/A

?

idpStart

Unixtime

Program start date (timestamp)

+

+

+

N/A

+

idpEnd

Unixtime

Program end date (timestamp)

+

+

+

N/A

+

fr

Integer

Number of frames (not fields) per second multiplied by 1000. For example, 24 fps is recorded as 24000

N/A

N/A

+

N/A

+

ibr

Integer

NOT USED: Not sent by devices. Incoming stream bitrate

bfu

Integer

Loading buffer occupancy (%)

cfg

String

Player configuration parameters

+

Platform

Web

Samsung

Smart TV

LG

Smart TV

Android

TV

iOS

Android

mem

Integer

Memory usage at the time of session generation (%)

Chrome

+

N/A

+

iOS

Roadmap

cpu

Integer

CPU usage at the time of session generation (%)

N/A

+

N/A

+

N/A

Roadmap

wlan

Integer

Wi-Fi signal level at the time of session generation

Roadmap

Roadmap

Roadmap

Roadmap

N/A

Roadmap

rid

String

MAC address of the STB or UID of the Android device

Roadmap

Roadmap

Roadmap

Roadmap

N/A

Roadmap

ip

String

IP address of the client device

Roadmap

Roadmap

Roadmap

Roadmap

N/A

Roadmap

api

String

The version of the API used by the client application. Depending on the value, SmartCARE determines whether the session should be plotted on the graph based on client or server data.

+

+

+

Keep alive

Message on connection activity maintaining and stream playback status sent by the end-user device to the streaming server during stream playback (usually every 5 minutes). This event is sent at intervals specified by parameter keepAliveInterval in the configuration file setup.json of SmartTUBE app.

API Request Parameter

Type

Description

Platform

Web

Samsung

Smart TV

LG

Smart TV

Android

TV

iOS

Android

e=KEEP_ALIVE

String

Event type

+

+

+

+

+

+

mem

Integer

Client device memory usage (%)

Chrome

+

N/A

+

N/A

Roadmap

cpu

Integer

Client device CPU usage (%)

N/A

+

N/A

+

N/A

Roadmap

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

ste

String

Result of starting the stream / keep alive status:

  • LSA — multicast Live TV stream keep alive;
  • DVRKA — unicast DVR stream (PauseLive, TSTV, nPVR) keep alive;
  • VODKA — VoD stream keep alive.

+

+

+

+

+

btr

Integer

Average bitrate calculated by the video PES packet, in bit/sec.

N/A

N/A

N/A

N/A

+

bfu

Integer

Loading buffer occupancy (%). The ratio of the time of viewing the content by the subscriber to the time of its buffering.

+

+

+

N/A

Roadmap

ibr

Integer

NOT USED: Not sent by devices. Incoming stream bitrate, in bit/sec.

mnft

Double

Amount of time it took to download and parse the manifest, in seconds.

+

+

Roadmap

N/A

+

drmt

Double

Amount of time it took to download the first DRM key, in seconds.

+

N/A

Roadmap

N/A

+

msd

Double

Presentation’s max segment duration, in seconds.

+

+

N/A

N/A

+

ll

Double

Time between the frame display on the screen and its output to the air by the head-end, in seconds.

+

+

N/A

N/A

Roadmap

ebw

Integer

Current estimated network bandwidth, in bit/sec.

+

+

+

N/A

+

lct

Double

Time spent on license requests during this session, in seconds.

+

N/A

Roadmap

N/A

+

ldl

Double

Time it took for the video element to have enough data to begin playback, in seconds. This is measured from the time the player’s load() function is called to the time the ‘loadeddata’ event is fired by the media element.

+

+

N/A

N/A

+

bft

Double

Total time spent in a buffering state, in seconds.

+

+

+

N/A

+

pdc

Integer

Number of frames played

+

+

+

N/A

+

dec

Integer

Number of frames with errors

+ (non-zero value)

+

+

N/A

Roadmap

pdec

Integer

Number of frames with decoding errors

+ (non-zero value)

N/A

+

N/A

Roadmap

ufc

Integer

Number of loading buffer underrun events (client application STVID_DATA_UNDERFLOW_EVT event)

+

+

+

N/A

+

pgmajfault

Integer

Number of memory page access errors.

Note: this parameter is also sent by the device along with the VIRTUAL_MEMORY event (with the values parameter).

N/A

N/A

N/A

N/A

Roadmap

fr

Integer

Number of frames (not fields) per second multiplied by 1000. For example, 24 fps is recorded as 24000.

N/A

N/A

+

N/A

+

pbr

Integer

The bandwidth required for the current streams (total, in bit/sec). It takes into account the playback rate.

dbr

Integer

Downloading bitrate, in bit/sec.

abr

Array of integers

Available bitrates, in bit/sec.

bdr

Integer

Buffer duration, in bit/sec.

Join time

The time between a subscriber pressing a button on the remote control (not releasing the button) and the start of playback.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=JOIN_TIME

String

Event type

+

+

+

+

+

values

Integer

The time between a subscriber pressing a button on the remote control (not releasing the button) and the start of playback, in ms.

+

+

+

+

+

Parameters that directly affect the start time of the stream

mnft

Double

Amount of time it took to download and parse the manifest, in seconds.

+

+

+

Roadmap

N/A

drmt

Double

Amount of time it took to download the first DRM key, in seconds.

+

N/A

Roadmap

N/A

+

lct

Double

Time spent on license requests during this session, in seconds.

+

N/A

Roadmap

N/A

+

ldl

Double

Time it took for the video element to have enough data to begin playback, in seconds. This is measured from the time the player’s load() function is called to the time the ‘loadeddata’ event is fired by the media element.

+

+

N/A

N/A

+

Reference parameters

dt

String

Device type

+

+

+

+

+

bfu

Integer

Loading buffer occupancy (%). The ratio of the time of viewing the content by the subscriber to the time of its buffering.

For the JOIN_TIME event, this parameter should be equal to 100%, since playback has not started yet.

+

+

+

N/A

Roadmap

ibr

Integer

NOT USED: Not sent by devices. Incoming stream bitrate, in bit/sec.

msd

Double

Presentation’s max segment duration: The duration of the longest segment described in the first loaded MPEG-DASH playlist at the moment of session start.

+

+

N/A

N/A

+

ll

Double

Time between the frame display on the screen and its output to the air by the head-end, in seconds.

+

+

N/A

N/A

Roadmap

bft

Double

Total time spent in a buffering state, in seconds.

+

+

+

N/A

+

ebw

Double

Current estimated network bandwidth, in bit/sec.

+

+

+

N/A

+

pdc

Integer

Number of frames played

+

+

+

N/A

+

pdec

Integer

Number of frames with decoding errors

+ (non-zero value)

+

+

N/A

Roadmap

pbr

Integer

The bandwidth required for the current streams (total, in bit/sec). It takes into account the playback rate.

abr

Array of integers

Available bitrates, in bit/sec.

bdr

Integer

Buffer size, in sec.

btr

Integer

Average bitrate calculated by the video PES packet, in bit/sec.

dbr

Integer

Downloading bitrate, in bit/sec.

dec

Integer

Number of frames with errors

+ (non-zero value)

+

+

N/A

Roadmap

ufc

Integer

Number of loading buffer underrun events (client application STVID_DATA_UNDERFLOW_EVT event).

For the JOIN_TIME event, this parameter should be equal to 1.

+

+

+

N/A

+

fr

Integer

Number of frames (not fields) per second multiplied by 1000. For example, 24 fps is recorded as 24000.

url

String

URL of the content playlist/manifest

+

+

+

+

+

App start time

The application startup (load) duration.

API Request Parameter

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=APP_START

Event type

values

Application startup (load) duration, in ms.

Buffering

For SmartTUBE apps for large-screen devices (JUNG-based apps) from version 8.2 onwards, this event has been replaced by the e=FREEZE event.

Starting or completion of stream buffering.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=BUF_UNDERRUNS

String

Event type

values

Integer

Duration of stream buffering, msec. A value of 0 indicates the start of buffering.

CPU usage

The abnormal surge of the end-user device’s CPU usage.

This event is sent at intervals specified by parameters cpuCheckInterval and cpuPercentsDiff in the configuration file setup.json of SmartTUBE app.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=CPU_LOAD

String

Event type

values

Integer

CPU usage value (%)

Memory usage

The abnormal surge of the subscriber device memory usage.

This event is sent at intervals specified by parameters memCheckInterval and memPercentsDiff in the configuration file setup.json of SmartTUBE app.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=MEMORY

String

Event type

values

Integer

Amount of RAM used (%)

Session end

Session termination with the beginning of a new one. This is not an event of the client application, as it is generated by the Collector by changing the csi. See the “Session Concept” section.

Standby

The session goes into standby mode. This mode is activated when there is no action from the STB remote control for a certain time, as well as when the STB is turned off using the “Standby” button.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=STANDBY

String

Event type

values

String

Standby mode. Allowable values:

  • OFF — the device has switched to normal mode;
  • ON — the device has switched to standby mode.

Program change

TV program change on the channel being viewed.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=PROGRAM_CHANGED

String

Event type

+

+

+

+

+

idc

Integer

Channel ID or content ID (movie name, local file name, YouTUBE content ID, etc.)

+

+

+

+

+

idp

Integer

TV program ID (if the Live TV or DVR stream is played)

+

+

+

+

+

idpStart

Unixtime

Program start date (timestamp)

+

+

+

N/A

+

idpEnd

Unixtime

Program end date (timestamp)

+

+

+

N/A

+

Bitrate change

Switching to a stream (variant) with a different bitrate.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=BITRATE_CHANGE

String

Event type

values

Integer

New bitrate of content viewing, bit/s

Wi-Fi strength

The abnormal surge of the Wi-Fi signal level on the subscriber device (only for STB with Wi-Fi module).

This event is sent at intervals specified by parameters wifiCheckInterval and wifiPercentsDiff in the configuration file setup.json of SmartTUBE app.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=WIFI_STRENGTH

String

Event type

values

Integer

Wi-Fi signal level change (%)

Internet lost

Internet connection loss. The connection is checked every minute by the ping [SmartTUBE server host address] command.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=INTERNET_LOST

String

Event type

values

Integer

Duration of the Internet connection absence, msec. The data is sent by the device after the connection on the current network interface appears.

Auth attempt

Attempt to authorize the end-user device on the SmartTUBE server. The event determined by the SmartTUBE End-User Device API request /authorize? to the SmartTUBE server when a device is switching on. An event counts for any result.

Features:

  • SmartTUBE v4. If an Internet connection is established, the authorization request is sent immediately; if not, after the connection is established.
  • SmartTUBE v5 and later. The following condition is added to the logic described above: authorization is performed by a token that has its own expiration period. When it ends (backend setting), the reauthorization is performed.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=AUTH

String

Event type

+

+

+

+

+

san

String

Service account ID on the SmartTUBE SDP platform

+

+

+

+

+

values

String

The result of the device authorization on the SmartTUBE server. Allowable values: SUCCESS, ERROR.

+

+

+

+

+

ver

String

Client application / firmware version

+

+

+

+

+

fver

String

Firmware version (for STB only)

N/A

+

locationId

Integer

ID of the client device location (region ID in the SmartTUBE DB)

+

+

+

+

+

dtId

Integer

ID of the device type (in the SmartTUBE DB)

+

+

+

+

+

reason

Integer

Authorization type. Allowable values:

  • 0 – PRIMARY, request for device authorization at client application startup;
  • 1 – EXPIRED, request for device authorization after the current authorization expires;
  • 2 – ERROR, request for device authorization when the error screen is displayed;
  • 3 – AUTHORIZE, request for device authorization on the login screen;
  • 4 – BLOCKED, request for device authorization when an account is blocked (the request is sent by device to the SmartTUBE server to clarify the status of the account)

ip

string

IP address from which authorization was performed

Player events

Playback events (play, stop, pause or rewind).

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=PLAYER_STATUS

String

Event type

+

+

+

+

+

values

String

Type of signal to the client application player. Acceptable values: play, stop, pause, rewind.

+

+

+

+

+

date

Unixtime

Rewind start time.

+

+

+

+

+

diff

Integer

Rewind duration, in sec.

+

+

+

+

+

direction

String

Direction of playback. Acceptable values: fwd (forward),  bwd (backward)

+

+

+

N/A

+

Virtual memory

Spike in the number of RAM page access errors (with 2-fold acceleration) for the period between checks (for 1 minute by default). When this event occurs, the device often slows down or freezes.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=VIRTUAL_MEMORY

String

Event type

values

Integer

Number of memory page access errors.

Note: this parameter is also sent by the device along with the KEEP_ALIVE event (with the pgmajfault parameter).

Storage

Total size and amount of free space for critical storage directories:

  • cache

  • data

  • persistent

  • sdcard

  • storage/emulated/0

This event is sent at intervals specified by parameter storageCheckInterval in the configuration file setup.json of SmartTUBE app.

API Request Parameter

Type

Description

Platform

Web

Samsung

Smart TV

LG

Smart TV

Android

TV

iOS

Android

e=STORAGE_STATS

String

Event type

+

cache.bytes_free

Integer

Free space available in the cache directory, in bytes.

cache.bytes_total

Integer

Total space of the cache directory, in bytes.

persistent.bytes_free

Integer

Free space available in the persistent directory, in bytes.

persistent.bytes_total

Integer

Total space of the persistent directory, in bytes.

sdcard.bytes_free

Integer

Free space available in the sdcard directory, in bytes.

sdcard.bytes_total

Integer

Total space of the sdcard directory, in bytes.

storage%2Femulated%2F0.bytes_free

Integer

Free space available in the storage/emulated/0 directory, in bytes.

storage%2Femulated%2F0

Integer

Total space of the storage/emulated/0 directory, in bytes.

data.bytes_free

Integer

Free space available in the data directory, in bytes.

Roadmap

Roadmap

Roadmap

Roadmap

N/A

Roadmap

data.bytes_total

Integer

Total space of the data directory, in bytes.

N/A

N/A

N/A

+

N/A

Roadmap

Threshold memory

The memory and CPU utilization exceeded one of the following thresholds on the STB:

  • Memory Normal Level (default threshold – 60%)
  • Memory Critical Level (default threshold – 75%)
  • Memory Blocker Level (default threshold – 80%)
  • CPU Critical Level (default threshold – 80%)

The default STB behavior when these thresholds are exceeded is as follows:

  • Memory Normal Level exceeded — the CPU monitoring timer or reboot timer resets to 60 and 5 seconds respectively.
  • Memory Critical Level exceeded — in standby mode, the reboot timer starts; in the other mode, the reboot timer starts when the STB goes into standby mode.
  • Memory Blocker Level exceeded — in standby mode, the STB reboots immediately; in other mode, the STB reboots immediately when the CPU utilization level exceeds CPU Critical Level.

This event is sent at intervals specified by parameter memThresholdCheckInterval in the configuration file setup.json of SmartTUBE app.

API Request Parameter

Type

Description

Platform

Web

Samsung

Smart TV

LG

Smart TV

Android

TV

iOS

Android

e=MEMORY_THRESHOLD

String

Event type

values

String

The memory and CPU utilization exceeded one of the thresholds described above (for STBs only). Allowable values:

  • NormalMemoryWatchdogThreshold — Memory Normal Level exceeded
  • LowMemoryWatchdogThreshold — Memory Critical Level exceeded;
  • OutOfMemoryWatchdogThreshold — Memory Blocker Level exceeded

Reboot

STB reboot at low free memory level and high CPU utilization:

  • Memory Critical Level (default threshold — 75%) exceeded — the STB reboots in the standby mode;
  • Memory Blocker Level (default threshold — 80%) exceeded — in standby mode, the STB reboots immediately; in other mode, the STB reboots immediately when the CPU utilization level exceeds CPU Critical Level (default threshold — 80%).

API Request Parameter

Type

Description

Platform

Web

Samsung

Smart TV

LG

Smart TV

Android

TV

iOS

Android

e=REBOOT

String

Event type

values

String

STB reboot at low free memory level and high CPU utilization, see description above. Allowable values:

  • ByLowMemoryWatchdog — reboot when the Memory Critical Level is exceeded;
  • ByOutOfMemoryWatchdog — reboot when the Memory Blocker Level is exceeded.

Run test

This event notifies about the execution of test scenarios on the end-user device. For more details, see here.

API Request Parameter

Type

Description

Platform

Web

Samsung

Smart TV

LG

Smart TV

Android

TV

iOS

Android

e=RUN_TEST

String

Event type

+

value

String

Test execution state: start — start of the test; end — end of test.

+

name

String

Name of a file with the test script

+

testid

String

ID of the test execution. Represents the start or end time of the test, in ms. The ISO 8601 format with time zone is used (e.g. 20230711T154956.201%2B0300).

IMPORTANT: testid must be passed with each event triggered by the test script.

+

Send report

The user sent the device log by pressing the Send Report button in the client application. Typically, it is located in the Home screen > Settings > System > Support > Support menu.

API Request Parameter

Type

Description

Platform

Web

Samsung

Smart TV

LG

Smart TV

Android

TV

iOS

Android

e=SEND_REPORT

String

Event type

value

Integer

The reason the user sent the report, which he/she selected in the dialog box. Allowable values:

  • 0 — problems with video
  • 1 — problems with audio
  • 2 — frequent buffering
  • 3 — slow application performance
  • 4 — other problems

valueString

String

The reason the user sent the report, which he/she selected in the dialog box. Allowable values:

  • Video+quality
  • Audio+quality
  • Frequent+bufferization
  • Slow+interface
  • Other

Unknown

An unknown event for the Collector. It may occur when a new monitored event appears in the updated version of the client application and the corresponding processing in the current Collector version is not available.

Sessions

Graphical display of beginning and end of client sessions with basic information: session type, quality, start time, duration, and channel name.

Client Actions Area

This area allows you to track subscriber actions in the SmartTUBE app for large-screen devices (JUNG). To enable tracking, set the Save user actions checkbox.

Key press

Button presses on the remote control / keyboard.

API Request Parameter

Type

Description

Platform

Web

Samsung

Smart TV

LG

Smart TV

Android

TV

iOS

Android

e=USER_ACTION_KEYPRESS

String

Event type

+

+

+

+

date

Unixtime

Event datetime

+

+

+

+

N/A

Roadmap

values

String

Button / key code

Page

Tracking user navigation through menu sections in the app’s UI.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=USER_ACTION_PAGE

String

Event type

+

+

+

+

+

values

String

Menu item path. For example: /main/tv/epg/player

+

+

+

+

+

date

Unixtime

Event occurrence time

+

+

+

+

+

Memory & CPU Usage Area

Here you can see the diagram of CPU and memory usage of the end-user device.

Image4

Parameter

Description

Data source (collection.field)

Realtime average CPU usage, %

Average CPU usage of a subscriber device in a minute, %. Only for STB.

clSession.acu

Realtime average memory usage, %

Average memory usage of a subscriber device in a minute, %. Only for STB.

clSession.amu

Algorithm for generating messages on the abnormal CPU and memory usage:

  1. Every 5 minutes, the client application measures the end-user device resources usage and stores the result in its memory.
  2. If there are changes in comparison with the previous result with exceeding the set thresholds — 20% for CPU and 10% for memory, the subscriber device generates a message for SmartCARE.

Sessions List Area

This area provides the following reports:

  • Multicast — information about active and finished multicast sessions. See the description of this report here;
  • Unicast — information about active and finished multicast sessions. See the description of this report here;
  • Authorizations — information about successful and failed authorizations;
  • System — information about sessions during which the content was not played.
Image2

Search by CSI

CSI is a unique identifier of the client session generated by the end-user device and passed to the SmartCARE with API calls. It represents a string containing the UID, device type and time on the device, separated by the “#” character and converted to hex.

A new CSI is generated under the following conditions:

  1. Start of New Content Unit: When a new content unit (a channel or movie) begins playback.
  2. Completion of Rewind: Following the user’s completion of rewinding.
  3. Resume after Pause: When playback is resumed after a pause.
  4. Initiation of New Program: When a user initiates the playback of a new program.
  5. Playback Position Change: If the user selects to play a program from a different position, utilizing options “Play from the Beginning” or “Play from Saved Position” when switching on a live stream.
  6. Playback Resumption from Standby: When playback is reactivated after the system has been in standby mode.

Please note that if playback stops and subsequently resumes for any reason, this is not classified as a new session, and a new CSI will not be generated in such instances.

Image5

Search by the client session ID (CSI)

Entering the CSI and pressing the Show button displays a page with detailed information on the client session, which includes areas described below.

Session Overview Area

This area provides a basic information about the client session.

Image8

Clicking on the Down button opens areas with detailed information about the client session.

Session Info Area

Image7

Parameter

Description

Data source (collection.field)

UID

Unique ID of the subscriber device (UID).

Depending on the session type, two collections can be referenced:

  • multicast: clUser.uid;
  • unicast: ngUser.uid.

SAN

Subscriber account ID on the SmartTUBE SDP platform at the moment of the last verified session.

clSession.san

Location

Name and ID of the subscriber device location in the operator network, determined at the moment of authorization. The name is requested from the corresponding SmartTUBE SDP dictionary.

clEvent.type = 12 → clEvent.data.locationId

User agent

Content of the User-agent string in the HTTP requests of the client application to the streaming server.

Note: data is requested from the last stored unicast session.

ngUser.lastState.ch.httpUserAgent

App version

Client application version of the subscriber device (STB) in the last verified session.

ngUser.lastState.ch.httpUserAgent

IP address

IP address of the subscriber device.

ngUser.lastState.ch.ip

Quality

Session quality calculated by Algorithm 3 (average and minimum).

clSession.quality.info.qualityByFrame and minQ, respectively

Mode

Content type:

  • L — live TV stream;
  • DVR — recorded TV stream;
  • VOD — VoD content, “Video on Demand”
  • STANDBY — the session is in the standby mode;
  • UNKNOWN — the subscriber device is authorized in the system, but the content viewing has not been started yet.

Depending on the session type, two collections can be referenced:

  • multicast: clSession.mode;
  • unicast: ngSession.mode.

State

Current session status (Active or Finished).

Depending on the session type, two collections can be referenced:

  • multicast: clSession.active;
  • unicast: ngSession.active.

Start time

Session start time (on the subscriber device, UTC).

Depending on the session type, two collections can be referenced:

  • multicast: clSession.start;
  • unicast: ngSession.start.

Duration

Session duration (s).

Depending on the session type, two collections can be referenced:

  • multicast: clSession.duration;
  • unicast: ngSession.duration.

Channel

Name and ID of the channel being viewed.

Note: the channel name is requested by its ID in the corresponding SmartTUBE dictionary.

Depending on the session type, two collections can be referenced:

  • multicast: clSession.idc;
  • unicast: ngSession.channel.

Errors count

Number of meta- and media-data transmission errors (httpStatus < 200 or >= 400).

ngSession.error

Bitrate changes

Number of bitrate switches (up or down) during the session.

Depending on the session type, two collections can be referenced:

  • multicast: determined by the number of events clEvent.type == 3 during the session;
  • unicast: ngSession.bitrateChange.

Total events

Total number of events on the subscriber device for a unicast session.

ngSession.error

Buffering events

Number of completed stream buffering events on the subscriber device during the session.

Determined by the number of events clEvent.type == 5 during the session.

Session ID

MongoDB document ID with session information (used for debugging).

Depending on the session type, two collections can be referenced:

  • multicast: clSession._id
  • unicast: ngSession._id

Client session ID (CSI)

Client session ID.

Depending on the session type, two collections can be referenced:

  • multicast: clSession.csi
  • unicast: ngSession.csi

Quality Indicators Area

These indicators show the ratio of the received data volume and the number of events on the subscriber device by bitrate.

Image6

Parameter

Description

Data source (collection.field)

Numbers around circles

Stream bitrate value (byte/s) — specified in the corresponding SmartTUBE SDP dictionary.

The value “-1” indicates the impossibility of determining the bitrate (it was not possible to extract the bitrate value from the URL of the content request came to Collector from the streaming server).

ngSession.stat.bytesSentByBitrate.<bitrate value>

If only one bitrate is used in the system, it can be specified in the Collector-nginx component configuration file by the collector-nginx.services.nginx.bitrate parameter.

Traffic grouped by bitrates

The ratio of the data amount received by the subscriber device at different bitrates.

ngSession.stat.bytesSentByBitrate

Events by bitrates

The ratio of the number of events generated by the subscriber device at different bitrates.

ngSession.stat.countByBitrate

Device Info Area

This area provides general information about the end-user device. See the parameter description here.

Image3

Playback Events Area

This area shows events related to the content playback during the selected session.

Image9

Exploring the graph and bars under it you can see an additional statistic parameters came with the following events:

Freeze

This event allows you to distinguish between three states in which streaming delay or image freezing occur:

  • Pre-buffering — buffering before starting a channel or movie;
  • Waiting for data by the HTMLMediaElement
  • Buffer underrun — the moment the buffer is zeroed, i.e. there is no content left in the buffer.

API parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=FREEZE

string

Event type

type

string

State in which streaming delay or image freezing occured:

  • pre — buffering before starting a channel or movie;
  • wait — waiting for data by the HTML MediaElement
  • buffer — the moment the buffer is zeroed, i.e. there is no content left in the buffer.

d

Integer

Duration of a freeze, in ms.

bs

Integer

Buffer size at the moment of event occurrence, in ms.

Playlist Loaded

An event that reports the completion of a playlist load.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=PLAYLIST_LOADED

String

Event type

+

+

+

d

Integer

Playlist loading duration, ms.

+

s

Integer

Playlist size, bytes.

+

url

String

Playlist URL (optional). The value is passed if only the sendPlaylistUrl flag is set to true in the configuration file setup.json of the SmartTUBE app.

+

Chunk Loaded

An event that reports the completion of a chunk load.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=CHUNK_LOADED

String

Event type

+

+

+

d

Integer

Chunk loading duration, ms.

+

+

+

s

Integer

Chunk size, bytes.

+

+

+

bs

Integer

Buffer size at the moment of chunk loading started, ms.

+

+

+

br

Integer

Chunk bitrate, bit/s (optional). The value is taken from the playlist.

+

+

+

av

String

Chunk type: audio, video, sub, other.

+

+

+

ebr

Integer

Current estimated network bandwidth, bit/s.

+

+

+

url

String

Chunk URL (optional). The value is passed if only the sendChunkUrl flag is set to true in the configuration file setup.json of the SmartTUBE app.

+

+

+

bs_stat

Array

Buffer statistics for av=video, in a format:

[

  {

    ts: <event occurrence timestamp (UTC without TZ)>,

    bs: <Buffer size, in msec>

  },

  {

    ts: ..,

    bs: ..

  },

  …

]

+

+

+

Player Events

Playback events (play, stop, pause or rewind).

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=PLAYER_STATUS

String

Event type

+

+

+

+

+

values

String

Type of signal to the client application player. Acceptable values: play, stop, pause, rewind.

+

+

+

+

+

date

Unixtime

Rewind start time.

+

+

+

+

+

diff

Integer

Rewind duration, in sec.

+

+

+

+

+

direction

String

Direction of playback. Acceptable values: fwd (forward),  bwd (backward)

+

+

+

N/A

+

Session Start

Streaming enabling and start of streaming or error.

API Request Parameter

Type

Description

Player

Shaka

HLSJS

Cobalt +

ExoPlayer

iOS

Android

e=SESSION_START

String

Event type

+

+

+

+

+

ste

String

Result of starting the stream / keep alive status:

  • LS — multicast Live TV stream started;
  • LE — multicast Live TV stream failed to start;
  • VODS — VoD stream started;
  • VODE — VoD stream failed to start.
  • DVRS​ — unicast DVR stream (PauseLive, TSTV, nPVR) started;
  • DVRE​ — unicast DVR stream (PauseLive, TSTV, nPVR) failed to start;
  • DVRLS​ — unicast Live TV (DVR stream) started;
  • DVRLE​ — unicast Live TV (DVR stream) failed to start.

+

+

+

 +

 +

error

String

Description of the stream start error (code):

  • 0: Stream Not Found
  • 1: CAS: No Stream Keys
  • 2: Codec Not Supported
  • 3: Too Many Connections
  • 4: Internal Server Error
  • 5: Forbidden
  • 6: Function Not Supported
  • 7: Connection Timeout
  • 8: Connection Terminated
  • 9: Failed To Start
  • 10: Invalid URL
  • 11: Other errors

dt

String

Device type

+

+

+

+

+

ver

String

Client application / firmware version

+

+

+

+

+

idc

String

Channel ID or content ID (movie name, local file name, YouTUBE content ID, etc.)

+

+

+

+

+

url

String

URL of the content playlist/manifest

+

+

+

+

+

idp

Integer

TV program ID (if the Live TV or DVR stream is played)

+

+

+

+

+

btr

Integer

Average bitrate calculated by the video PES packet

N/A

N/A

N/A

N/A

+

pbr

Integer

The bandwidth required for the current streams (total, in bit/sec). It takes into account the playback rate.

+

+

+

+

+

dbr

Integer

Download bitrate

N/A

+

+

+

+

abr

Integer

Available bitrates

+

+

+

+

+

bdr

Integer

Buffer size (sec)

+

+

+

N/A

?

idpStart

Unixtime

Program start date (timestamp)

+

+

+

N/A

+

idpEnd

Unixtime

Program end date (timestamp)

+

+

+

N/A

+

fr

Integer

Number of frames (not fields) per second multiplied by 1000. For example, 24 fps is recorded as 24000

N/A

N/A

+

N/A

+

ibr

Integer

NOT USED: Not sent by devices. Incoming stream bitrate

bfu

Integer

Loading buffer occupancy (%)

cfg

String

Player configuration parameters

+

Platform

Web

Samsung

Smart TV

LG

Smart TV

Android

TV

iOS

Android

mem

Integer

Memory usage at the time of session generation (%)

Chrome

+

N/A

+

iOS

Roadmap

cpu

Integer

CPU usage at the time of session generation (%)

N/A

+

N/A

+

N/A

Roadmap

wlan

Integer

Wi-Fi signal level at the time of session generation

Roadmap

Roadmap

Roadmap

Roadmap

N/A

Roadmap

rid

String

MAC address of the STB or UID of the Android device

Roadmap

Roadmap

Roadmap

Roadmap

N/A

Roadmap

ip

String

IP address of the client device

Roadmap

Roadmap

Roadmap

Roadmap

N/A

Roadmap

api

String

The version of the API used by the client application. Depending on the value, SmartCARE determines whether the session should be plotted on the graph based on client or server data.

+

+

+

Client Events Area

Here you can explore the events during the client session for the specified period. See the parameter description here.

Image1
CONTENTS
Sign-in
Sign-in with your SmartLabs Support Portal account credentials to see non-public articles.