Complete field, type, mode, and description reference for the Conviva Connect Video Session Source Data (SSD) schema.
This page is the canonical column dictionary for the Conviva Connect Video Session Feed schema: every delivered field, its type, its mode, and what it means. For how these fields feed the metric calculations, see the metric SQL in Content Summary. Migrating from legacy SSD? See Legacy vs Connect.
Primary key and session identity
Each row is one lifetime session. The primary key for processing sessions is ConvivaSessionID plus the session start time (StartTimeUnix / StartTimeUnixMs). A session that is suspended and resumed appears as multiple rows with the same ConvivaSessionID but different start times, so always key on both fields. For the hourly feed, this same pair is the deduplication key (see Choose your feed).
Field naming
Field names are delivered in CamelCase, for example PlayingTime and StartTimeUnixMs. The names in the dictionary below match the delivered file exactly.
Sample delivered row
Below is an anonymized sample of a delivered daily Connect file: the header plus two session rows, exactly as the columns arrive. Scroll the table horizontally to see all 84 columns. The values are synthetic (test-network IP addresses and placeholder names), but the column order, casing, and formatting match a real delivered file. Download the full sample daily Connect file to open it in a spreadsheet or feed it through your pipeline.
| ViewerID | AssetName | DeviceOS | Country | State | City | PostalCode | ASN | ISP | StartTimeUnix | StartTimeUnixMs | StartupTime | PlayingTime | ReBufferingTime | Interrupts | AverageBitRate | StartupError | SessionTags | IPV4 | IPV6 | IPAddress | IPType | CDN | Browser | ConvivaSessionID | StreamURL | ErrorList | PercentageComplete | ConnectionInducedRebufferingTime | VideoRestartTime | RejoinedCount | VPF | VPFErrorList | ContentLength | EndedStatus | SessionEndedStatus | EndTimeUnix | EndTimeUnixMs | VSFBusiness | VSFBusinessErrorList | VSFTechnical | VSFTechnicalErrorList | VPFBusiness | VPFBusinessErrorList | VPFTechnical | VPFTechnicalErrorList | PauseTime | CIRRInterruptCount | MicroPlayingTime | MicroPlayingInterruptions | MicroBufferingTime | MicroBufferingInterruptions | LongRebufferingTime | LongRebufferingInterruptions | LastCDNEdgeServer | LastCDNGroupID | ExitDuringPreRoll | AdRelatedRebuffering | RebufferingDuringAds | PausedRatio | LastPlayheadTime | NumBitrateSwitches | AvgAverageBitRate | CIRRelatedExit | DeviceHardwareType | DeviceManufacture | DeviceMarketingName | DeviceName | DeviceOSVersion | DeviceOSFamily | BrowserVersion | PlayerFrameworkName | PlayerFrameworkVersion | DeviceModel | DeviceVendor | ConnectionType | isLive | DMA | DecisionResource | DecisionBitrate | DecisionResourceId | pCoreCDN | DecisionResourceResolved | dt |
| abcdef0000000000000000000000000000000000000000000000000000000001 | Example Asset 1 | Example OS | United States | | Springfield | | 64500 | Example ISP | 1768521600 | 1768521600000 | 1650 | 10608 | 0 | 0 | 10000 | false | dv.mod=ExampleModel&c3.cm.id=example_id&net.t=WiFi&c3.device.conn=WiFi&c3.cm.genre=Example&c3.cws.clv=3.5.12&dv.os=Example%20OS&c3.cm.affiliate=N%2FA&dv.fw=Example%20Framework&c3.cm.seriesName=Example%20Series&c3.cm.brand=N%2FA&dv.cat=Example&dv.br=Native%20App&c3.cm.channel=example&c3.player.name=Example%20Player&c3.cm.showTitle=Example%20Show&c3.cm.contentType=Example&c3.cm.name=Example&c3.app.version=1.0.0&dv.mnf=ExampleMfr&c3.video.isLive=F&dv.osv=Example%20OS%201.0&c3.cm.genreList=Example&c3.cws.sf=7&has_an_ad=false | 192.0.2.10 | | 192.0.2.10 | IPv4Only | INHOUSE | Native App | 1000000001:1000000002:1000000003:1000000004:1000000005 | N/A | | 1 | 0 | 0 | 0 | false | | 1876000 | | GracefulEnd | 1768521613 | 1768521613079 | false | | false | | false | | false | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | unknown | unknown | false | 0 | 0 | 0.0 | 169000 | 1 | 0 | false | Set Top Box | ExampleMfr | Example Device | Example Device | Example OS 1.0 | Example OS | Native App | Example Framework | Example Framework 1.0 | ExampleModel | | WiFi | false | | | | | | | 2026-01-15T23:00:00.000Z |
| abcdef0000000000000000000000000000000000000000000000000000000002 | Example Asset 2 | Example OS | United States | | Springfield | | 64500 | Example ISP | 1768520000 | 1768520000323 | 1194 | 408835 | 0 | 0 | 10000 | false | dv.mod=ExampleModel&c3.cm.id=example_id&net.t=WiFi&c3.device.conn=WiFi&c3.cm.genre=Example&c3.cws.clv=3.5.12&dv.os=Example%20OS&c3.cm.affiliate=N%2FA&dv.fw=Example%20Framework&c3.cm.seriesName=Example%20Series&c3.cm.brand=N%2FA&dv.cat=Example&dv.br=Native%20App&c3.cm.channel=example&c3.player.name=Example%20Player&c3.cm.showTitle=Example%20Show&c3.cm.contentType=Example&c3.cm.name=Example&c3.app.version=1.0.0&dv.mnf=ExampleMfr&c3.video.isLive=F&dv.osv=Example%20OS%201.0&c3.cm.genreList=Example&c3.cws.sf=7&has_an_ad=false | 198.51.100.23 | | 198.51.100.23 | IPv4Only | INHOUSE | Native App | 1000000006:1000000007:1000000008:1000000009:1000000010 | N/A | | -1 | 0 | 0 | 0 | false | | | | ByExpiration | 1768520800 | 1768520800439 | false | | false | | false | | false | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | unknown | unknown | false | 0 | 0 | 0.0 | 2262000 | 1 | 0 | false | Set Top Box | ExampleMfr | Example Device | Example Device | Example OS 1.0 | Example OS | Native App | Example Framework | Example Framework 1.0 | ExampleModel | | WiFi | true | | | | | | | 2026-01-15T23:00:00.000Z |
Field dictionary
Note: All INTEGER type fields can store 64-bit integer values. The dictionary below is grouped by category; every group uses the same Field name, Type, Mode, and Description columns.
Session identity and lifecycle
ViewerID | VARCHAR(128) | NULLABLE | Unique identifier of the viewer (sometimes called subscriber) watching content in that session. This is typically a number, or a hashed or masked identifier without any personally identifiable information. The same ViewerID can have multiple sessions. If Viewer ID is not available, the legacy SSD report shows the IP address, whereas Conviva Connect summary shows NULL. |
ConvivaSessionID | VARCHAR(128) | NULLABLE | The unique Conviva session identifier in the format of five colon-separated integer numbers. The first four blocks represent the Conviva Client ID and the last number block represents the Conviva Session ID. Example: "20048757:2397552430:4151350518:1876058113:4487054", where Client ID = 20048757:2397552430:4151350518:1876058113 and Session ID = 4487054. |
StartTimeUnix | INTEGER | NULLABLE | The time when Conviva received the first heartbeat for the session. The format is Unix epoch time in seconds. |
StartTimeUnixMs | INTEGER | NULLABLE | The time when Conviva received the first heartbeat for the session. The format is Unix epoch time in milliseconds. |
EndTimeUnix | INTEGER | NULLABLE | The time the last session heartbeat within the day was received. The format is Unix epoch time in seconds. |
EndTimeUnixMs | INTEGER | NULLABLE | The time the last session heartbeat within the day was received. The format is Unix epoch time in milliseconds. |
EndedStatus | INTEGER | NULLABLE | An integer (0-5) showing the session status at the end of the day: 0 = Not Ended; at the SSD issue time, the session is still active. 1 = Gracefully ended; the session ended with a session ended event. 2 = Expired due to lack of heartbeat update; no heartbeat update was received for 2 minutes. 3 = Expired due to long buffering; the total session lifetime buffering exceeded 30 minutes, classified as a zombie session. 4 = Ended due to long pause; the session paused for a continuous period longer than 10 minutes. 5 = Ended due to continuous buffering; the session was in a continuous buffering state for longer than four minutes. |
SessionEndedStatus | STRING | NULLABLE | The state of the session when it was ended, such as GracefulEnd, NotEnded, or ByExpiration. |
dt | TIMESTAMP | NULLABLE | Starting hour of the hourly interval range, in the format <YYYY-MM-DD>T<hh:mm:ss.sss>Z, where T is the separator for date and time and Z indicates UTC timezone. For example, 2024-05-21T15:00:00.000Z. |
Content and asset
AssetName | STRING | NULLABLE | The name of the viewed video asset. |
StreamURL | VARCHAR(2048) | NULLABLE | The URL of the video stream. |
ContentLength | INTEGER | NULLABLE | The asset length in milliseconds. Applicable only for VOD traffic. For LIVE video, the content length value is set to -1 for unknown. |
PercentageComplete | INTEGER | NULLABLE | The percentage of video content the viewer watched during a session. Percent Complete is calculated by dividing the total playing time for the session by the total content length, rounded to the nearest integer value. A value of -1 means the content length could not be obtained (for example, in live content). A value of 0 means the video did not start or the Percentage Complete is less than 1%. |
isLive | BOOLEAN | NULLABLE | Whether the content is a linear or live stream or a prerecorded VoD asset. The value is 'true' only for the live content type. For all other content types, such as Unknown, NULL, and VoD, the value is 'false'. |
LastPlayheadTime | INTEGER | NULLABLE | The last play time, after which a pause, end, or expire event occurred in a session that did not resume playing. |
Geo and network
Country | STRING | NULLABLE | The country location where the content was watched. |
State | VARCHAR(128) | NULLABLE | The state location where the content was watched. |
City | STRING | NULLABLE | The city location where the content was watched. |
PostalCode | STRING | NULLABLE | A series of numbers used for postal delivery area identification. This field is null when the postal code is unavailable. |
DMA | STRING | NULLABLE | The Designated Market Area or media region in which the session was viewed. This field is null when the DMA is unavailable. |
ASN | STRING | NULLABLE | Autonomous System Number for the ISP from which the video was streamed. |
ISP | STRING | NULLABLE | The name of the Internet Service Provider. |
IPV4 | VARCHAR(32) | NULLABLE | The public IP address of the viewer's video playing device in v4 version. For example, 84.106.90.230. |
IPV6 | VARCHAR(48) | NULLABLE | The public IP address of the viewer's video playing device in v6 version. For example, 2600:8801:8d07:e100:c0a9:9de9:8741:267. |
IPAddress | VARCHAR(48) | NULLABLE | The public IP address of the viewer's video playing device. The IP address, as seen by the Conviva gateway, typically corresponds to the modem gateway for fixed connections or the packet gateway for mobile connections. For European customers, due to legal and privacy reasons, the IP address is not shown. |
IPType | STRING | NULLABLE | The type of the device's public IP address, such as IPV4 Only or IPV6 Only. |
Device and player
DeviceOS | STRING | NULLABLE | The operating system of the device. |
DeviceOSVersion | STRING | NULLABLE | The version of the operating system used by the device. |
DeviceOSFamily | STRING | NULLABLE | The name of the operating system group, such as PlayStation for PlayStation 3 and PlayStation 4, or Windows for Windows 10 and Windows XP. |
DeviceHardwareType | STRING | NULLABLE | The type of your device hardware, such as set top box, mobile phone, tablet, and TV. |
DeviceManufacture | STRING | NULLABLE | The manufacturer of the device from which the content was watched, such as Google, Roku, Huawei, and Apple. |
DeviceMarketingName | STRING | NULLABLE | Marketing name of the device from which the content was watched, such as Google Chromecast, Huawei P20, and Apple iPhone 12 Pro. |
DeviceName | STRING | NULLABLE | Name of the device from which the content was watched, such as Android phone, Apple iPhone, and Chromecast. |
DeviceModel | STRING | NULLABLE | Model of the device, such as iPad Pro 11-inch (2nd generation), EML-L29. |
DeviceVendor | STRING | NULLABLE | Vendor of the device. |
Browser | STRING | NULLABLE | The browser used by the viewer's device. "Non-Browser Apps" is shown if the video stream was viewed on a mobile app or a connected TV. |
BrowserVersion | STRING | NULLABLE | The browser version of the device on which the content was watched. |
PlayerFrameworkName | STRING | NULLABLE | The name of the player framework used for video playback, for example, AVFoundation, NexPlayer, and HTML5. |
PlayerFrameworkVersion | STRING | NULLABLE | The version of the framework used for video playback. |
ConnectionType | STRING | NULLABLE | The type of network connection used to consume content, for example, mobile, wired, and wireless. |
Experience and engagement metrics
StartupTime | INTEGER | NULLABLE | The time in milliseconds between the start of the Conviva monitoring and the first-played video frame. StartupTime excludes pre-roll ad time. A value of -1 indicates an unsuccessful play (no startup time). A value of -3 indicates the session connected, but the client did not send the necessary information to determine when the video began playing. |
PlayingTime | INTEGER | NULLABLE | The amount of time in milliseconds when a player is actively displaying video content during a session. PlayingTime excludes rebuffering time. |
ReBufferingTime | INTEGER | NULLABLE | The time between the video stalling during playback and the viewer waiting for the video to resume playing. |
Interrupts | INTEGER | NULLABLE | The number of times the session was interrupted for rebuffering. If a pause or other viewer action caused buffering, that buffering is counted as an interrupt. A viewer pausing and resuming a session without any buffering is not counted as an interrupt. |
AverageBitRate | INTEGER | NULLABLE | Average bitrate in kbps at which content was delivered during the session. The ability to determine bitrate depends on the player integration. Not all players can deliver bitrate information. |
AvgAverageBitRate | INTEGER | NULLABLE | The average bitrate (in kilobytes per second) across the lifetime sessions as derived from the average bandwidth field of the manifest file. This value represents the time-weighted average bitrates played by the player. |
NumBitrateSwitches | INTEGER | NULLABLE | The number of the bitrate switches that occurred during the lifetime session. A bitrate switch occurs whenever a change in bitrate is detected. |
StartupError | SMALLINT | NULLABLE | If value = true, the video failed to play and there was a startup error (see the error list). If value = false, the video played and there was no startup error. |
PauseTime | INTEGER | NULLABLE | Total pause time in milliseconds for a session. |
PausedRatio | FLOAT | NULLABLE | The paused time as a ratio of the total playing time, including rebuffering and pauses. |
Rebuffering and playback detail
ConnectionInducedRebufferingTime | INTEGER | NULLABLE | The non-seek rebuffering time in milliseconds. |
CIRRInterruptCount | INTEGER | NULLABLE | The number of plays with interrupts caused by connection induced rebuffering. |
CIRRelatedExit | SMALLINT | NULLABLE | A user initiated exit that occurred either during connection induced rebuffering (non-seek rebuffering) or within 5 seconds of connection induced rebuffering before the session end. |
VideoRestartTime | INTEGER | NULLABLE | The total time between the user's seek complete and the video replay. VideoRestartTime in milliseconds is the sum of all such occurrences for the entire session. |
RejoinedCount | INTEGER | NULLABLE | Number of times the video rejoined after a user seek. |
MicroPlayingTime | INTEGER | NULLABLE | The total time in milliseconds that a session spent in continuous play time that lasted less than 200 milliseconds. |
MicroPlayingInterruptions | INTEGER | NULLABLE | The total number of times a session spent in continuous play time that lasted less than 200 milliseconds. Sometimes the player reports false play duration; this time is excluded from the Playing Time. |
MicroBufferingTime | INTEGER | NULLABLE | The total time in milliseconds that a session spent in continuous buffering that is less than 200 milliseconds. Micro buffering can result in jittering during video playback and is not excluded from the session's buffering. |
MicroBufferingInterruptions | INTEGER | NULLABLE | The total number of times a session spent in continuous buffering that lasted less than 200 milliseconds. There can be jittering in the video playback when micro buffering occurs, and it is not excluded from the session's buffering. |
LongRebufferingTime | INTEGER | NULLABLE | The total time in milliseconds that a session spent in continuous buffering that lasted more than 90 seconds. Long buffering can occur because a player is stuck in a buffering state. Long rebuffering is excluded from rebuffering time. |
LongRebufferingInterruptions | INTEGER | NULLABLE | The total number of times a session spent in continuous buffering that lasted more than 90 seconds. Long buffering can occur because a player is stuck in a buffering state. Long rebuffering is excluded from rebuffering time. |
Failures and error lists
ErrorList | [VARCHAR(1024)/each] | REPEATED | A list of fatal errors that occurred during this session, separated by "&". A session Startup Time of -1 and Playing Time of 0 with no error list indicates an Exit Before Video Start (EBVS) occurred. For CSV output the value is in String format. For Parquet the value is in array<string> format. |
VPF | SMALLINT | NULLABLE | Video Playback Failures (VPF) occurs when a fatal error causes a video playback to fail. The field is set to TRUE if the session started successfully but ended with a fatal error. |
VPFErrorList | RECORD | REPEATED | Video Playback Failure Error list contains errors (including custom errors) that caused the playback to fail. For CSV output the value is in String format. For Parquet the value is in array<string> format. |
VSFBusiness | BOOLEAN | NULLABLE | Video Start Failures (VSF) Business measures whether the Attempts got terminated during video startup before the first video frame was played and a fatal error was reported due to a business logic issue, such as usage limits. |
VSFBusinessErrorList | RECORD | REPEATED | Video Start Failures (VSF) Business Error list contains errors (including custom errors) that caused the video start to fail due to a business logic issue. For CSV output the value is in String format. For Parquet the value is in array<string> format. |
VSFTechnical | BOOLEAN | NULLABLE | Video Start Failures (VSF) Technical measures whether the Attempts got terminated during video startup before the first video frame was played and a fatal error was reported due to a technical logic issue, such as prolonged buffering. |
VSFTechnicalErrorList | RECORD | REPEATED | Video Start Failures (VSF) Technical Error list contains errors (including custom errors) that caused the video start to fail due to a technical logic issue. For CSV output the value is in String format. For Parquet the value is in array<string> format. |
VPFBusiness | SMALLINT | NULLABLE | Video Playback Failures (VPF) Business measures how often Attempts terminated during video playback and a fatal error was reported due to a business logic issue, such as usage limits. |
VPFBusinessErrorList | RECORD | REPEATED | Video Playback Failures (VPF) Business Error list contains errors (including custom errors) that caused the video playback to fail due to a business logic issue. For CSV output the value is in String format. For Parquet the value is in array<string> format. |
VPFTechnical | BOOLEAN | NULLABLE | Video Playback Failures (VPF) Technical measures whether the Attempts got terminated during video playback and a fatal error was reported due to a technical logic issue, such as prolonged buffering. |
VPFTechnicalErrorList | RECORD | REPEATED | Video Playback Failures (VPF) Technical Error list contains errors (including custom errors) that caused the video playback to fail due to a technical logic issue. For CSV output the value is in String format. For Parquet the value is in array<string> format. |
ExitDuringPreRoll | SMALLINT | NULLABLE | A started session exited after a pre-roll ad break start was reported and before the pre-roll ad break end was reported. The session never reported the 'play' state. |
AdRelatedRebuffering | INTEGER | NULLABLE | Rebuffering duration in milliseconds which started up to 60 seconds after an ad. |
RebufferingDuringAds | INTEGER | NULLABLE | Rebuffering duration in milliseconds happening during the ad playback, using main video session playback. |
CDN and Precision decision
CDN | VARCHAR(256) | NULLABLE | The CDN associated with the streaming session. |
LastCDNEdgeServer | STRING | NULLABLE | The IP address of the CDN Edge Server. |
LastCDNGroupID | STRING | NULLABLE | The region or pop identifier of the CDN Edge Server. |
DecisionResource | STRING | NULLABLE | The internal resource returned to Precision. |
DecisionBitrate | INTEGER | NULLABLE | The bitrate associated with the resource returned to Precision. A value of 0 indicates the bitrate is not known. |
DecisionResourceId | STRING | NULLABLE | The internal Conviva id for the component returning the result to Conviva Precision. |
DecisionResourceResolved | STRING | NULLABLE | The resource being returned by Conviva Precision, for example Akamai Live Content Node. |
pCoreCDN | STRING | NULLABLE | The CDN being returned by Conviva Precision, for example AKAMAI. |
SessionTags | RECORD[VARCHAR(64)/each key, VARCHAR(256)/each Value] | REPEATED | The custom player metadata that is defined during your Conviva integration. Session tags reflect your specific business needs and player information. For CSV output the value is in String format, where key-value pairs are delimited by an ampersand (&) and key and value are separated by an equals sign (=). For example, c3.cmp.0._id=da&c3.cmp.0._ver=1&c3.cluster.name=production. For Parquet format, array<struct<_field1:string,value:string>>. |
Next: follow Build your first pipeline, or see how these fields feed the metric SQL in Content Summary.