Introduction
In a video streaming application, successfully playing a video is only the beginning. For a good viewer experience, we also need to know how quickly playback starts, whether the video buffers, how Adaptive Bitrate (ABR) behaves, which devices experience failures, and whether DRM, network, CDN, or player issues are affecting playback. This is where video analytics and Quality of Experience (QoE) monitoring become important. In our streaming application, we integrated Conviva Video Streaming Insights (VSI) to understand the real playback experience across devices and platforms. Conviva’s platform uses client-side telemetry and stateful analytics to provide real-time visibility into video streaming performance and viewer experience.
This blog covers what Conviva is, why we chose it, alternatives we considered, how the integration works, challenges we encountered, how we addressed them, and some of the advanced analytics capabilities that can be built on top of the basic integration.
What Is Conviva?
Conviva is a real-time experience analytics platform designed to help businesses understand how users experience digital products, with a strong focus on video streaming. For video applications, Conviva’s Video Streaming Insights (VSI) captures information directly from the player and turns playback events and states into QoE metrics.
Instead of looking only at server logs such as:
Manifest requested
Segment requested
HTTP 200
License request successful
Conviva allows us to answer questions closer to the viewer’s actual experience:
Did playback start quickly?
Did the viewer experience buffering?
What bitrate did the viewer receive?
Did the player switch between resolutions frequently?
Why did playback fail?
Which device or OS is affected?
Which content is experiencing the problem?
Conviva’s current documentation describes VSI as providing real-time streaming intelligence around metrics such as video startup time, rebuffering, playback failures, audience engagement, and other video performance dimensions.
This makes Conviva particularly useful for OTT applications where player behavior can vary significantly across devices, operating systems, networks, CDNs, DRM systems, and content types.
Why Did We Choose Conviva?
There are several video analytics solutions available, so choosing a platform is not simply about the number of metrics it supports.
For our use case, some of the important factors were:
1. Player-Level QoE Visibility
We needed visibility into what actually happened during playback rather than relying only on backend logs.
Metrics such as startup time, rebuffering, bitrate, resolution, playback failures, and player state are directly relevant to our video experience.
2. Multi-Platform Support
Our application works across multiple platforms, so having support for different player technologies was important.
Conviva provides integrations across platforms including Android players such as ExoPlayer/Media3 and iOS players such as AVPlayer/AVQueuePlayer, along with React Native and other application frameworks.
3. Real-Time Analysis
Another important factor was the ability to investigate problems while they are happening.
For example, if a new application release causes buffering to increase on a particular device, we want to identify the regression quickly rather than discovering it through user complaints.
4. Rich Dimensions and Metadata
QoE metrics become significantly more useful when they can be filtered by dimensions such as:
- Content
- Device
- OS
- Application version
- Geography
- Network
- Subscription type
- Player configuration
This allows an issue to be narrowed from:
“Some users are buffering.”
to something much more actionable:
“Buffering increased after the latest release for a particular device/OS combination.”
What Are the Alternatives?
Conviva is not the only solution in this space.
Some common alternatives include:
- Mux Data
- Bitmovin Analytics
- PAW / Youbora
- In-House Analytics
For us, Conviva provided a good balance between player-level visibility, cross-platform support, real-time analytics, and the ability to drill down into QoE issues without building and maintaining the entire analytics infrastructure ourselves.
How Our Conviva Integration Works
The integration can be viewed as a simple pipeline:
Video Player
↓
Player Events
↓
Analytics Adapter
↓
Conviva SDK
↓
Conviva Platform
↓
QoE Metrics / Dashboards / Analysis
The important architectural decision is to keep Conviva-specific logic separate from the core player.
Our player already knows about events such as:
Load
Play
Pause
Buffering
Seek
Bitrate change
Error
Playback completion
The analytics layer consumes those events and translates them into the appropriate Conviva states.
Conviva’s documented integration pattern follows the same general approach: install the sensor, configure metadata, retrieve player events and metadata, integrate with the player, handle user actions, and clean up the session.
Challenges We Faced
Integrating analytics into a real player is different from implementing analytics in a simple demo application.
Challenge 1: Different Player Behaviors
Android and iOS players don’t always report identical events.
For example, buffering behavior, seeking, error callbacks, and playback state transitions can differ between ExoPlayer/Media3 and AVPlayer.
Fix
We introduced a normalization layer.
Instead of sending platform-specific events directly to Conviva, we map them into a common internal player state.
This significantly reduces platform-specific analytics logic.
Challenge 2: Duplicate Events
Player frameworks can sometimes generate multiple events for what appears to be one logical state transition.
For example, buffering may generate several callbacks during a single buffering period.
If every callback is sent independently, analytics can become inaccurate.
Fix
We maintain the current analytics state and only report meaningful state transitions.
Playing
Playing
Playing
Buffering
Buffering
Playing
becomes:
Playing → Buffering → Playing
This makes the analytics state much more reliable.
Challenge 3: Metadata Timing
Another important issue is ensuring that the correct content metadata is associated with the correct playback session.
This becomes particularly important when moving between episodes or videos.
Fix
Content metadata is prepared and updated before loading the corresponding content.
The rule is simple:
Never allow stale content metadata to follow the player into the next playback session.
Challenge 4: DRM and Playback Errors
Streaming applications often have multiple failure points.
A playback failure could originate from:
CDN
↓
Manifest
↓
Segment
↓
DRM License
↓
Decoder
↓
Player
Fix
We preserve the original player error information and map it into meaningful analytics categories instead of converting every failure into a generic error.
This makes Conviva much more useful during production debugging.
Advanced Things We Did With Conviva
Basic analytics tells us what happened.
The more interesting part is using analytics to understand why it happened.
1. Advanced Metadata Dimensions
We use metadata to make QoE metrics more actionable.
For example:
- Application Version
- Device Model
- OS Version
- Content ID
- Content Type
- Network Type
- Player Configuration
This allows us to compare the same metric across multiple dimensions.
For example:
Is buffering increasing only on the latest application version?
Or:
Is a playback issue limited to one device family?
2. ABR Analysis
Bitrate and resolution information can be used to understand ABR behavior.
Instead of looking only at the final resolution, we can analyze the complete playback journey:
144p
↓
360p
↓
720p
↓
1080p
This provides a better understanding of how the player adapts to changing network conditions.
3. Error Correlation
One of the most useful capabilities is correlating playback errors with other dimensions.
Instead of simply seeing:
Playback Errors: 2.4%
we can investigate:
Playback Errors
↓
Device
↓
OS Version
↓
Application Version
↓
Content
↓
Network/CDN
This turns analytics from a reporting system into a troubleshooting tool.
4. Content and Ad Analytics
For applications using advertising, separating content playback from ad playback is important.
A typical lifecycle becomes:
Content
↓
Ad Start
↓
Ad Playback
↓
Ad Complete
↓
Content Resume
This prevents ad-related buffering and failures from being incorrectly attributed to the main content experience.
5. Custom Metrics and APIs
Conviva also supports custom metrics and APIs for deeper integrations. Its platform documentation describes real-time and historical APIs, session APIs, data feeds, and custom experience metrics.
This opens up possibilities beyond the standard dashboard.
For example, teams can integrate Conviva data into internal monitoring systems or correlate video QoE with other application and backend metrics.
Official Conviva Documentation
For implementation details, the official Conviva documentation should always be the primary reference.
The documentation provides:
- Conviva platform overview
- Sensor integration guides
- SDK documentation
- Player integrations
- Metadata configuration
- Metrics
- APIs
- Data feeds
- Release information
- Official Conviva Documentation: Conviva Docs
Conviva Sensor Developer Center: Conviva Sensor Developer Center
The Sensor Developer Center is particularly useful for implementation because it documents platform-specific integrations and the common video integration framework.
Conclusion
Integrating Conviva is more than adding an analytics SDK to a video player.
The real value comes from connecting player behavior, viewer experience, content, device, network, and application context into a single analytics model.
The most important lessons from the integration are:
- Keep analytics separate from player logic.
- Normalize Android and iOS player events.
- Avoid duplicate state reporting.
- Keep content metadata synchronized with playback.
- Classify errors accurately.
- Use dimensions to turn metrics into actionable insights.
- Validate analytics under real-world network and device conditions.
- Use advanced metrics and APIs when standard dashboards aren’t enough.
- Ultimately, a video player tells us whether content is playing. Conviva helps us understand the quality of that experience at scale.
That is what makes video analytics an important part of modern streaming engineering — not just a dashboard for measuring playback, but a tool for continuously finding, understanding, and fixing problems before they become widespread viewer issues.