Conviva Connect delivers the Video Session Feed on a daily or an hourly schedule. Both describe the same sessions, but they include rows differently, and the hourly feed needs a deduplication step before you aggregate. Pick the feed that matches your latency needs.
Daily feed
The daily feed carries lifetime metrics: each row reports a session's totals over its full lifespan. It is timezone-aligned to your customer's local day and delivers one row per session with the final metrics for sessions that ended during the day, plus a last-hour snapshot for sessions that were still in flight at the day boundary. This is the clean one-row-per-session feed, and it avoids cross-day double counting. Lifetime metrics are most useful once a session has ended.
Use the daily feed when you want the simplest correct dataset: daily reporting, per-session analysis, and warehouse loads where a few hours of latency is acceptable.
Hourly feed
The hourly feed delivers a file every hour instead of once a day, carrying interval metrics: each row reports a session's totals as of that hour, which lets you track sessions while they are still ongoing. Each file includes every session that was active during that hour, including sessions that have not ended yet. Each row carries the session's totals accumulated up to that hour (cumulative to that hour, not just that hour's activity). A session that is live from 09:15 to 11:45 appears in the 09:00, 10:00, and 11:00 files, and each of those rows reports the session's totals up to that hour.
Deduplicate before you aggregate. Because a multi-hour session repeats across hourly files, any cross-hour or cross-file aggregation must deduplicate on ConvivaSessionID plus StartTimeUnixMs, keeping the latest row (the most recent dt hour bucket). Skipping this step double counts multi-hour sessions.
Deduplication example
Keep only the latest row per session before computing any hour-spanning aggregate:
WITH ranked AS (
SELECT
*,
ROW_NUMBER() OVER (
PARTITION BY ConvivaSessionID, StartTimeUnixMs
ORDER BY dt DESC
) AS rn
FROM hourly_ssd
)
SELECT * FROM ranked WHERE rn = 1;Metrics are session totals, not per-interval values
In both feeds, each row reports the session's totals, not the activity in a single day or hour: the daily feed reports lifetime totals per session, and the hourly feed reports each session's totals as of the hour. To derive per-day (interval) values from the daily lifetime feed, subtract the prior day's lifetime totals from the current day's. The Calculating Interval (day) Metrics section of Content Summary shows the SQL.
Sample rows: daily vs hourly
These anonymized samples show how the same schema looks in each feed. The values are synthetic (test-network IP addresses and placeholder names), but they preserve the real differences you should expect between the two feeds. Scroll each table horizontally to see all 84 columns.
In the daily sample, IPAddress arrives in plaintext-style IPv4 form, DeviceOS is populated, and StreamURL is not set. Download the full sample daily Connect file.
Daily sample
| 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 |
In the hourly sample, IPAddress is hashed (for example md5:...), DeviceOS is blank, and StreamURL is populated. The rows are cumulative-to-hour snapshots, so remember the deduplication rule above before you aggregate. Download the full sample hourly Connect file.
Hourly sample
| 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| aaaa0000bbbb1111cccc2222dddd3333eeee444455556 | Example Asset 1 | Spain | Springfield | 64500 | Example ISP | 1748961459 | 1748961459202 | 7395 | 4354206 | 0 | 0 | 0 | false | c3.cm.id=example_id&c3.cm.genre=Example&c3.cws.clv=4.7.2&c3.cm.episodeNumber=1&dv.fw=HTML5&c3.cm.seriesName=Example%20Series&dv.cat=Web&c3.cm.channel=example&c3.player.name=Example%20Player&c3.cm.showTitle=Example%20Show&c3.cm.seasonNumber=1&c3.cm.contentType=Clip&dv.n=Example%20Web&c3.device.usesSdk=T&c3.app.version=Example%20App%201.0.0&c3.video.isLive=T&c3.cm.genreList=Example&c3.cws.sf=7&has_an_ad=false | md5:00000000000000000000000000000001 | IPv4Only | FASTLY | 2000000001:2000000002:2000000003:2000000004:2000000005 | https://example.com/stream | -1 | 0 | 0 | 0 | false | GracefulEnd | 1748968945 | 1748968945481 | false | false | false | false | 47992 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | unknown | unknown | false | 0 | 0 | 1.09 | 4361914 | 0 | 0 | false | Set Top Box | Example Web | HTML5 | HTML5 Unknown | true | 2025-06-03T16:00:00.000Z | ||||||||||||||||||||||||||||
| bbbb1111cccc2222dddd3333eeee4444ffff555566667 | Example Asset 2 | Spain | Springfield | 64500 | Example ISP | 1748961744 | 1748961744259 | 9335 | 4633056 | 16631 | 5 | 0 | false | c3.cm.id=example_id&c3.cm.genre=Example&c3.cws.clv=4.7.2&c3.cm.episodeNumber=1&dv.fw=HTML5&c3.cm.seriesName=Example%20Series&dv.cat=Web&c3.cm.channel=example&c3.player.name=Example%20Player&c3.cm.showTitle=Example%20Show&c3.cm.seasonNumber=1&c3.cm.contentType=Clip&dv.n=Example%20Web&c3.device.usesSdk=T&c3.app.version=Example%20App%201.0.0&c3.video.isLive=T&c3.cm.genreList=Example&c3.cws.sf=7&has_an_ad=false | md5:00000000000000000000000000000002 | IPv4Only | FASTLY | 2000000006:2000000007:2000000008:2000000009:2000000010 | https://example.com/stream | -1 | 0 | 16631 | 2 | false | ByExpiration | 1748966421 | 1748966421515 | false | false | false | false | 18234 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | unknown | unknown | false | 0 | 0 | 0.39 | 4636139 | 0 | 0 | false | Set Top Box | Example Web | HTML5 | HTML5 Unknown | true | 2025-06-03T16:00:00.000Z |
Which to choose
| If you need | Choose |
|---|---|
| The simplest correct dataset, one row per session | Daily |
| Lowest latency, and you can run the dedup step | Hourly |
| Daily reporting without cross-day double counting | Daily |
Next: review the schema and column dictionary, then follow Build your first pipeline.