Skip to content

Groupings

Groupings are datapoints which can be used to group the rest of the returned data. Conceptually groupings can be thought of as a row in a data table.

If no grouping is provided, the returned data are aggregated into a single value for each data point.

Note that selected groupings must be compatible with the data points selected.

Example

In the example below we are displaying data for 2 datapoints without any grouping: playback.sessions.total/cnt and users.active/cnt.

playback.sessions.total/cnt users.active/cnt
52362 9760

In the example below we are now adding the content.asset.id grouping in order to get that total number of sessions and active users for each asset.

content.asset.id playback.sessions.total/cnt users.active/cnt
asset ID 1 19890 7768
asset ID 2 17238 4589
asset ID 3 15234 8234

Special groupings

It is possible to group numerical data into buckets or predefined values. For a bucket grouping provide datapoints and the values for the bucket. Special groupings cannot be used together with other groupings.

"grouping": [
    {
        "type": "bucket",
        "datapoint": "playback.bitrate.max/max",
        "buckets" : [
            {"to": 1000},
            {"from": 1000, "to": 2000},
            {"from": 2000, "to": 4500},
            {"from": 4500}
        ]
    }
]

Available groupings

All available groupings can also be found at /v1/aspects in the Analytics API.

In the tables below are specified what groupings are compatible with what datapoints. Groupings and datapoints can only be used together when they are compatible.

Audience

Possible data points for this grouping include playback.*, users.active

Name Description Remarks
audience.country.name Name of the country where playback was registered ISO 3166-1 country name
audience.city.name Name of the city where playback was registered
audience.device.player_model Model of the device where the player is running
audience.device.type Type of the device where playback is running
audience.device.os_family Identifier string for the operating system where the playback is performed
audience.device.app_type Type of app used for playback Reported by the player. Possible values ios/tvos/android/android_tv/samsung_tv/lg_tv/browser

Content

Possible data points for this grouping include playback.*, users.active, kpi.channel_*

Name Description Remarks
content.asset.id String uniquely identifying the content in our system
content.asset.media_type Media type for the asset For example VOD, Live, Catchup
content.channel.id String uniquely identifying the channel in our system

User

Possible data points for this grouping include playback.*, users.active

Name Description Remarks
user.meta.id String uniquely identifying the user in our system
user.meta.account_id String uniquely identifying the account in our system

Sale

Possible data points for this grouping include sale.*

Name Description Remarks
sale.transaction.currency Currency types used for a transaction
sale.transaction.type Transaction types used for a transaction

Viewing

Name Unit Description Remarks Datapoints
viewing.meta.anonymous Slicing if the session was played anonymously playback.*
viewing.meta.started Slicing if the session was started playback.*
viewing.time.day_of_the_week The day of the week as a slicing unit content.*, playback.*, sales.*, subscriptions.*, users.active, metrics.*
viewing.time.hour_of_the_day The hour of the day as a slicing unit content.*, playback.*, sales.*, subscriptions.*, users.active, metrics.*
viewing.time.unit year, month, week, day, hour Slicing unit for the data Unit and timezones are specified using pipe ( ). Example: viewing.time.unit|day+02:00