Analytics types S–V
GraphQL schema reference · API guide · SDKs · Types of Analytics
SessionQoeSummary
Section titled “SessionQoeSummary”object
Viewer-experienced QoE summary. Ratios are sum(numerator)/sum(denominator) over the player-reported session beacons; rebufferingRatio is the headline QoE number.
- sessionCount:
Int! - playedHours:
Float! - rebufferingRatio:
Float! - rebuffersPerHour:
Float! - avgRebufferMs:
Float! - frameDropRatio:
Float! - playbackFailureRate:
Float! - ebvsRate:
Float! - avgBitrateBps:
Float! - abrSwitchesPerHour:
Float! - avgLiveEdgeLatencyMs:
Float!
SessionQoeTimeSeriesBucket
Section titled “SessionQoeTimeSeriesBucket”object
One toStartOfInterval window of the viewer-experienced QoE summary. Ratios are sum(numerator)/sum(denominator) over the per-session rollup; sessionCount and playedHours are the per-bucket denominators.
- timestamp:
Time!(Time) - sessionCount:
Int! - playedHours:
Float! - rebufferingRatio:
Float! - frameDropRatio:
Float! - avgBitrateBps:
Float!
SortOrder
Section titled “SortOrder”enum
Sort direction for ordered results.
ASC— Ascending order (oldest first, A-Z).DESC— Descending order (newest first, Z-A).
StorageEventEdge
Section titled “StorageEventEdge”object
- cursor:
String! - node:
StorageEvent!(StorageEvent)
StorageEventsConnection
Section titled “StorageEventsConnection”object
- edges:
[StorageEventEdge!]!(StorageEventEdge) - nodes:
[StorageEvent!]!(StorageEvent) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
StorageUsage
Section titled “StorageUsage”object
- storageUsageConnection:
StorageUsageConnection!(StorageUsageConnection)page:ConnectionInput(ConnectionInput)nodeId:StringstorageScope:StringtimeRange:TimeRangeInput(TimeRangeInput)noCache:Boolean(defaultfalse)
StorageUsageConnection
Section titled “StorageUsageConnection”object
- edges:
[StorageUsageEdge!]!(StorageUsageEdge) - nodes:
[StorageUsageRecord!]!(StorageUsageRecord) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
StorageUsageEdge
Section titled “StorageUsageEdge”object
- cursor:
String! - node:
StorageUsageRecord!(StorageUsageRecord)
StorageUsageRecord
Section titled “StorageUsageRecord”object
Implements Node.
- id:
ID! - timestamp:
Time!(Time) - nodeId:
String! - storageScope:
String! - totalBytes:
Float! - fileCount:
Int! - dvrBytes:
Float! - clipBytes:
Float! - vodBytes:
Float! - frozenDvrBytes:
Float! - frozenClipBytes:
Float! - frozenVodBytes:
Float!
StreamAnalyticsDaily
Section titled “StreamAnalyticsDaily”object
Implements Node.
- id:
ID! - day:
Time!(Time) - streamId:
ID! - stream:
Stream(Stream) - totalViews:
Int! - uniqueViewers:
Int! - uniqueCountries:
Int! - uniqueCities:
Int! - egressBytes:
Float!
StreamAnalyticsDailyConnection
Section titled “StreamAnalyticsDailyConnection”object
- edges:
[StreamAnalyticsDailyEdge!]!(StreamAnalyticsDailyEdge) - nodes:
[StreamAnalyticsDaily!]!(StreamAnalyticsDaily) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
StreamAnalyticsDailyEdge
Section titled “StreamAnalyticsDailyEdge”object
- cursor:
String! - node:
StreamAnalyticsDaily!(StreamAnalyticsDaily)
StreamAnalyticsSummary
Section titled “StreamAnalyticsSummary”object
- streamId:
ID! - stream:
Stream(Stream) - timeRange:
TimeRange!(TimeRange) - rangeAvgViewers:
Float! - rangePeakConcurrentViewers:
Int! - rangeTotalViews:
Int! - rangeTotalSessions:
Int! - rangeAvgBufferHealth:
Float! - rangeAvgBitrate:
Int! - rangeAvgFps:
Float! - rangePacketLossRate:
Float - rangeAvgConnectionTime:
Float - rangeViewerHours:
Float! - rangeEgressGb:
Float! - rangeAvgSessionSeconds:
Float! - rangeAvgBytesPerSession:
Float! - rangeUniqueViewers:
Int! - rangeUniqueCountries:
Int! - rangeRebufferCount:
Int! - rangeIssueCount:
Int! - rangeBufferDryCount:
Int! - rangeQuality:
QualityTierSummary!(QualityTierSummary) - rangeEgressSharePercent:
Float— This stream’s percentage of tenant total egress (only set in bulk queries). - rangeViewerSharePercent:
Float— This stream’s percentage of tenant total unique viewers (only set in bulk queries). - rangeViewerHoursSharePercent:
Float— This stream’s percentage of tenant total viewer hours (only set in bulk queries).
StreamAnalyticsSummaryConnection
Section titled “StreamAnalyticsSummaryConnection”object
Connection for paginated stream analytics summaries. Returns pre-aggregated summaries for multiple streams with share percentages.
- edges:
[StreamAnalyticsSummaryEdge!]!(StreamAnalyticsSummaryEdge) - nodes:
[StreamAnalyticsSummary!]!(StreamAnalyticsSummary) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
StreamAnalyticsSummaryEdge
Section titled “StreamAnalyticsSummaryEdge”object
Edge for StreamAnalyticsSummary connection.
- cursor:
String! - node:
StreamAnalyticsSummary!(StreamAnalyticsSummary)
StreamConnectionHourly
Section titled “StreamConnectionHourly”object
Implements Node.
- id:
ID! - hour:
Time!(Time) - streamId:
ID! - stream:
Stream(Stream) - totalBytes:
Float! - uniqueViewers:
Int! - totalSessions:
Int!
StreamConnectionHourlyConnection
Section titled “StreamConnectionHourlyConnection”object
- edges:
[StreamConnectionHourlyEdge!]!(StreamConnectionHourlyEdge) - nodes:
[StreamConnectionHourly!]!(StreamConnectionHourly) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
StreamConnectionHourlyEdge
Section titled “StreamConnectionHourlyEdge”object
- cursor:
String! - node:
StreamConnectionHourly!(StreamConnectionHourly)
StreamEventEdge
Section titled “StreamEventEdge”object
- cursor:
String! - node:
StreamEvent!(StreamEvent)
StreamEventsConnection
Section titled “StreamEventsConnection”object
- edges:
[StreamEventEdge!]!(StreamEventEdge) - nodes:
[StreamEvent!]!(StreamEvent) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
StreamHealth5m
Section titled “StreamHealth5m”object
Implements Node.
- id:
ID! - timestamp:
Time!(Time) - nodeId:
String - rebufferCount:
Int! - issueCount:
Int! - sampleIssues:
String - avgBitrate:
Int! - avgFps:
Float! - avgBufferHealth:
Float! - avgFrameJitterMs:
Float - maxFrameJitterMs:
Float - bufferDryCount:
Int! - qualityTier:
String
StreamHealth5mConnection
Section titled “StreamHealth5mConnection”object
- edges:
[StreamHealth5mEdge!]!(StreamHealth5mEdge) - nodes:
[StreamHealth5m!]!(StreamHealth5m) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
StreamHealth5mEdge
Section titled “StreamHealth5mEdge”object
- cursor:
String! - node:
StreamHealth5m!(StreamHealth5m)
StreamHealthMetric
Section titled “StreamHealthMetric”object
Implements Node.
- id:
ID! - timestamp:
Time!(Time) - streamId:
ID! - stream:
Stream(Stream) - nodeId:
String! - issuesDescription:
String - hasIssues:
Boolean! - bitrate:
Int - fps:
Float - width:
Int - height:
Int - codec:
String - qualityTier:
String - gopSize:
Int - frameMsMax:
Float - frameMsMin:
Float - framesMax:
Int - framesMin:
Int - keyframeMsMax:
Float - keyframeMsMin:
Float - frameJitterMs:
Float - trackCount:
Int - bufferState:
BufferState!(BufferState) - bufferHealth:
Float - bufferSize:
Int - audioChannels:
Int - audioSampleRate:
Int - audioCodec:
String - audioBitrate:
Int - trackMetadata:
JSON(JSON)
StreamHealthMetricEdge
Section titled “StreamHealthMetricEdge”object
- cursor:
String! - node:
StreamHealthMetric!(StreamHealthMetric)
StreamHealthMetricsConnection
Section titled “StreamHealthMetricsConnection”object
- edges:
[StreamHealthMetricEdge!]!(StreamHealthMetricEdge) - nodes:
[StreamHealthMetric!]!(StreamHealthMetric) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
StreamHealthSummary
Section titled “StreamHealthSummary”object
Pre-aggregated stream health summary from stream_health_5m.
- avgBitrate:
Float! - avgFps:
Float! - avgBufferHealth:
Float! - totalRebufferCount:
Int! - totalIssueCount:
Int! - sampleCount:
Int! - hasActiveIssues:
Boolean! - currentQualityTier:
String
StreamSummarySortField
Section titled “StreamSummarySortField”enum
Sort field for stream analytics summaries.
EGRESS_GB— Sort by egress bandwidth (cost attribution).UNIQUE_VIEWERS— Sort by unique viewers (engagement).TOTAL_VIEWS— Sort by total views (popularity).VIEWER_HOURS— Sort by viewer hours (watch time).
StreamingUsage
Section titled “StreamingUsage”object
Streaming usage analytics. streamId arguments accept Stream.id (Relay global ID).
- viewerGeographicsConnection:
ViewerGeographicsConnection!(ViewerGeographicsConnection)page:ConnectionInput(ConnectionInput)streamId:IDtimeRange:TimeRangeInput(TimeRangeInput)
- geographicDistribution:
GeographicDistribution(GeographicDistribution)streamId:IDtimeRange:TimeRangeInput(TimeRangeInput)topN:Int(default10)
- streamAnalyticsSummary:
StreamAnalyticsSummary!(StreamAnalyticsSummary)streamId:ID!timeRange:TimeRangeInput(TimeRangeInput)
- streamAnalyticsSummariesConnection:
StreamAnalyticsSummaryConnection!(StreamAnalyticsSummaryConnection) — Pre-aggregated analytics summaries for multiple streams. Returns sorted, paginated results with tenant-wide share percentages.page:ConnectionInput(ConnectionInput)timeRange:TimeRangeInput!(TimeRangeInput)sortBy:StreamSummarySortField(StreamSummarySortField) (defaultEGRESS_GB) — Sort field (default: EGRESS_GB for cost attribution).sortOrder:SortOrder(SortOrder) (defaultDESC) — Sort direction (default: DESC for top results first).
- viewerHoursHourlyConnection:
ViewerHoursHourlyConnection!(ViewerHoursHourlyConnection)page:ConnectionInput(ConnectionInput)streamId:IDtimeRange:TimeRangeInput(TimeRangeInput)noCache:Boolean(defaultfalse)
- viewerGeoHourlyConnection:
ViewerGeoHourlyConnection!(ViewerGeoHourlyConnection)page:ConnectionInput(ConnectionInput)timeRange:TimeRangeInput(TimeRangeInput)noCache:Boolean(defaultfalse)
- viewerTimeSeriesConnection:
ViewerTimeSeriesConnection!(ViewerTimeSeriesConnection)page:ConnectionInput(ConnectionInput)streamId:ID!timeRange:TimeRangeInput(TimeRangeInput)interval:String
- qualityTierDailyConnection:
QualityTierDailyConnection!(QualityTierDailyConnection)page:ConnectionInput(ConnectionInput)streamId:IDtimeRange:TimeRangeInput(TimeRangeInput)noCache:Boolean(defaultfalse)
- streamConnectionHourlyConnection:
StreamConnectionHourlyConnection!(StreamConnectionHourlyConnection)page:ConnectionInput(ConnectionInput)streamId:IDtimeRange:TimeRangeInput(TimeRangeInput)noCache:Boolean(defaultfalse)
- tenantAnalyticsDailyConnection:
TenantAnalyticsDailyConnection!(TenantAnalyticsDailyConnection)page:ConnectionInput(ConnectionInput)timeRange:TimeRangeInput(TimeRangeInput)noCache:Boolean(defaultfalse)
- streamAnalyticsDailyConnection:
StreamAnalyticsDailyConnection!(StreamAnalyticsDailyConnection)page:ConnectionInput(ConnectionInput)streamId:IDtimeRange:TimeRangeInput(TimeRangeInput)noCache:Boolean(defaultfalse)
TenantAnalyticsDaily
Section titled “TenantAnalyticsDaily”object
- id:
ID! - day:
Time!(Time) - totalStreams:
Int! - totalViews:
Int! - uniqueViewers:
Int! - egressBytes:
Float!
TenantAnalyticsDailyConnection
Section titled “TenantAnalyticsDailyConnection”object
- edges:
[TenantAnalyticsDailyEdge!]!(TenantAnalyticsDailyEdge) - nodes:
[TenantAnalyticsDaily!]!(TenantAnalyticsDaily) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
TenantAnalyticsDailyEdge
Section titled “TenantAnalyticsDailyEdge”object
- cursor:
String! - node:
TenantAnalyticsDaily!(TenantAnalyticsDaily)
TenantDailyStat
Section titled “TenantDailyStat”object
Implements Node.
- id:
ID! - date:
Time!(Time) - egressGb:
Float! - viewerHours:
Float! - uniqueViewers:
Int! - totalSessions:
Int! - totalViews:
Int!
TimeRange
Section titled “TimeRange”object
Time range returned in query results.
TopAssetEntry
Section titled “TopAssetEntry”object
One ranked asset for the Top Assets surface — cross-kind, ranked server-side by audience sessions in the window. kind badges the asset type; title/playbackId are composed from the catalog. (Named distinctly from the periscope proto TopAsset to avoid gqlgen autobinding to that message.)
- artifactHash:
String! - kind:
StorageArtifactKind!(StorageArtifactKind) - totalSessions:
Int! - watchHours:
Float! - durationS:
Int! - title:
String - playbackId:
String
TrackListEvent
Section titled “TrackListEvent”object
Implements Node.
- id:
ID! - streamId:
ID! - stream:
Stream(Stream) - nodeId:
String - trackList:
String! - trackCount:
Int! - timestamp:
Time!(Time) - tracks:
[StreamTrack!](StreamTrack)
TrackListEventEdge
Section titled “TrackListEventEdge”object
- cursor:
String! - node:
TrackListEvent!(TrackListEvent)
TrackListEventsConnection
Section titled “TrackListEventsConnection”object
- edges:
[TrackListEventEdge!]!(TrackListEventEdge) - nodes:
[TrackListEvent!]!(TrackListEvent) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
ViewerCountBucket
Section titled “ViewerCountBucket”object
ViewerCountBucketEdge
Section titled “ViewerCountBucketEdge”object
- cursor:
String! - node:
ViewerCountBucket!(ViewerCountBucket)
ViewerGeoHourly
Section titled “ViewerGeoHourly”object
Implements Node.
- id:
ID! - hour:
Time!(Time) - countryCode:
String! - viewerCount:
Int! - viewerHours:
Float! - egressGb:
Float!
ViewerGeoHourlyConnection
Section titled “ViewerGeoHourlyConnection”object
- edges:
[ViewerGeoHourlyEdge!]!(ViewerGeoHourlyEdge) - nodes:
[ViewerGeoHourly!]!(ViewerGeoHourly) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
ViewerGeoHourlyEdge
Section titled “ViewerGeoHourlyEdge”object
- cursor:
String! - node:
ViewerGeoHourly!(ViewerGeoHourly)
ViewerGeographic
Section titled “ViewerGeographic”object
- timestamp:
Time!(Time) - streamId:
ID - stream:
Stream(Stream) - nodeId:
String - countryCode:
String - city:
String - latitude:
Float - longitude:
Float - viewerCount:
Int - connectionAddr:
String - eventType:
String - source:
String - sessionDurationSeconds:
Int - bytesTransferred:
Float - connector:
String
ViewerGeographicEdge
Section titled “ViewerGeographicEdge”object
- cursor:
String! - node:
ViewerGeographic!(ViewerGeographic)
ViewerGeographicsConnection
Section titled “ViewerGeographicsConnection”object
- edges:
[ViewerGeographicEdge!]!(ViewerGeographicEdge) - nodes:
[ViewerGeographic!]!(ViewerGeographic) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
ViewerHoursHourly
Section titled “ViewerHoursHourly”object
Implements Node.
- id:
ID! - hour:
Time!(Time) - streamId:
ID - stream:
Stream(Stream) - countryCode:
String - uniqueViewers:
Int! - totalSessionSeconds:
Int! - totalBytes:
Float! - viewerHours:
Float! - egressGb:
Float!
ViewerHoursHourlyConnection
Section titled “ViewerHoursHourlyConnection”object
- edges:
[ViewerHoursHourlyEdge!]!(ViewerHoursHourlyEdge) - nodes:
[ViewerHoursHourly!]!(ViewerHoursHourly) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
ViewerHoursHourlyEdge
Section titled “ViewerHoursHourlyEdge”object
- cursor:
String! - node:
ViewerHoursHourly!(ViewerHoursHourly)
ViewerSession
Section titled “ViewerSession”object
Implements Node.
- id:
ID! - timestamp:
Time!(Time) - streamId:
ID! - stream:
Stream(Stream) - nodeId:
String - sessionId:
String! - connectedAt:
Time(Time) - disconnectedAt:
Time(Time) - connector:
String - countryCode:
String - city:
String - latitude:
Float - longitude:
Float - durationSeconds:
Int - bytesUp:
Float - bytesDown:
Float - connectionQuality:
Float - bufferHealth:
Float - clientBucket:
GeoBucket(GeoBucket)
ViewerSessionEdge
Section titled “ViewerSessionEdge”object
- cursor:
String! - node:
ViewerSession!(ViewerSession)
ViewerSessionsConnection
Section titled “ViewerSessionsConnection”object
- edges:
[ViewerSessionEdge!]!(ViewerSessionEdge) - nodes:
[ViewerSession!]!(ViewerSession) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
ViewerTimeSeriesConnection
Section titled “ViewerTimeSeriesConnection”object
- edges:
[ViewerCountBucketEdge!]!(ViewerCountBucketEdge) - nodes:
[ViewerCountBucket!]!(ViewerCountBucket) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
VodRetention
Section titled “VodRetention”object
VOD retention curve for an artifact. retention(T) = points[T].reached / totalSessions (monotonic non-increasing); density(T) = points[T].secondsWatched (the “most replayed” curve). Buckets are fixed-width (bucketWidthS) along the asset timeline. These differ because a seek-to-end raises reach without adding density.
- bucketWidthS:
Int! - assetDurationS:
Int! - totalSessions:
Int! - points:
[VodRetentionPoint!]!(VodRetentionPoint)
VodRetentionAsset
Section titled “VodRetentionAsset”object
A VOD asset with retention data in the window. Eligibility + stats (sessions, duration, lastSeen) come from analytics; title/playbackId are composed from the catalog by artifactHash — both may be null when the asset is uncatalogued (e.g. deleted but retention still within TTL).
- artifactHash:
String! - totalSessions:
Int! - durationS:
Int! - lastSeen:
Time!(Time) - title:
String - playbackId:
String
VodRetentionAssetConnection
Section titled “VodRetentionAssetConnection”object
- edges:
[VodRetentionAssetEdge!]!(VodRetentionAssetEdge) - nodes:
[VodRetentionAsset!]!(VodRetentionAsset) - pageInfo:
PageInfo!(PageInfo) - totalCount:
Int!
VodRetentionAssetEdge
Section titled “VodRetentionAssetEdge”object
- cursor:
String! - node:
VodRetentionAsset!(VodRetentionAsset)
VodRetentionPoint
Section titled “VodRetentionPoint”object
One point of the VOD retention curve: a fixed-width timeline bucket with its watched-seconds density and the count of sessions that reached it.
- bucketIndex:
Int! - secondsWatched:
Float! - reached:
Int!— Sessions whose furthest playhead position is at or beyond this bucket (audience retention numerator).