Bitmovin’s Developer Focused Analytics

Achieving high quality, reliable and buffer free online video streaming is a difficult task. A developer focused analytics solution can make the job much easier.

At first glance video streaming looks easy – Netflix, Amazon and Youtube are doing it successfully so it can’t be that hard, right? You just use industry leading streaming standards like DASH and HLS and everything just works, right? Well, unfortunately it isn’t that simple and there are a thousand things that can still impact your viewers experience even though you did everything right. You might have mispredicted your user behavior and your CDN is having troubles in a particular region that’s important to your business. Or your customers are using outdated mobile devices that have trouble rendering your site thus making the video startup take upward of ten seconds because of some tiny jQuery snippet you integrated 5 years ago.

It turns out there are a myriad of pitfalls that can cause a terrible experience for your users. The only way to actually get a leg up on all these unforeseen issues is to have data on how your users interact with your video and how they experience your videos. Only then you can make informed decisions on how to fix it.

Why we Need Video Analytics

We at Bitmovin built our Analytics product – a developer focused video analytics tool to help you identify issues before users tell you about them through your “cancel subscription” form or start yelling at you over phone. And even if you do eventually get that angry email or phone call, having the data available to investigate what actually went wrong in that one user session can be a real game changer.

Obviously having good data on our video performance is key in our own business of developing an enterprise grade HTML5 streaming video player and cloud encoding service. So we built an analytics tool to drive our player development efforts and measure the impact of changes or new features. To do so we started deploying each new Bitmovin-Player build from our CI environment automatically to our website for a small percentage of our visitors and kept collecting the metrics provided by the analytics tool and integrating them into our release workflow. That way we were able to compare the gathered data to the data from the control group and could ensure that new releases didn’t have any unforseen performance implications or bugs in their adaptation logic. We have refined and improved this internal tool for almost a year before we decided to start the project of making it into a full fledged Bitmovin product.

As always with new products at Bitmovin we are not content with “just” solving a complex problem. We wanted to go one step further and really provide our customers the tools to deeply integrate analytics into their own monitoring (like we did with our release pipeline), business analytics and support workflows – in real-time. That’s why Bitmovin Analytics supports a fully featured API that allows you to either export the calculated metrics, or get the raw data and crunch the numbers yourself. Enabling you to combine the analytics data with your business domain knowledge to gain even deeper insights into your users.

But let us get into some common use cases and see how Bitmovin Analytics can help you better understand your users and prevent their individual issues from becoming a widespread problem.

Add More Data to Your Support Workflows

Frequently customer service receives questions that lack key information about the user’s technical setup or what incident caused them to contact support in the first place. By being able to connect your customer service system to the data collected through analytics you can cut down on expensive back and forth questions about technical details. This allows you to respond with a focused answer tailored to this users specific usage of your system in a shorter time while also making the customer service interaction more enjoyable for your user. Retrieving the collected data about a single user is pretty simple. You would submit a POST request to `https://api.bitmovin.com/v1/analytics/count` with the following payload:

The resulting data will contain a list of all the individual impression ids for this user and then you can query each individual session information through a GET call to `https://api.bitmovin.com/v1/analytics/impressions/`.
You can then choose to save this data to your own customer service database for future reference. Or just display it on the screen to give your customer service representative more context while he responds to the ticket.

Keeping Users Happy

If a user is unsatisfied with a service they will cancel their subscription or stop buying new content. Obviously preventing these cases is a high priority, but as mentioned before this is not always possible for all your users. What if you could predict these cases and reach out to them via email and give them a gift (free month or bonus content etc) before they even consider leaving your service?

To get a list of the 20 most at-risk customers you could simply submit a POST request to `https://api.bitmovin.com/v1/analytics/sum` with the following payload:

This will deliver the user ids and the amount of time each user spent re-buffering while watching your videos. You can then check these users against your own customer database and decide if you want to take action. Even better you can now use the aforementioned user details calls from our previous use case to see why this user had such a bad viewing experience and if there is anything you can do about it. Obviously you wouldn’t want to try to retain them if there is nothing you can do to improve their experience (eg. terrible internet in the middle of nowhere).

Identify Technical Issues Before They Happen

The technology stack you are deploying to (browsers in particular) is constantly changing and evolving. Major browser vendors publish updates every six weeks and these updates sometimes introduce unexpected issues that affect your users experience adversely.

We see this frequently happen to customers that use their own encoding and player and also can’t devote the same amount of resources to testing upcoming browser releases for compatibility issues as we constantly do in our player and encoding development. Being alerted to playback issues through rising error rates during the first few hours after a browser update allows you to focus your engineering teams time on fixing these issues before they affect your whole customer base. Going down to the individual session level and being able to inspect the affected sessions in detail can be a game changer here. Getting to the exact error messages encountered saves you valuable time and allows you to deploy workarounds or fixes to the site. And more importantly – without having to wait for your customer support to provide you with the necessary information before you can even start investigating the issue.

How Does the Video Experience Affect Your Revenue?

We frequently see studies by big players in the industry that show how buffering and slow startup times directly affect their revenue. But this data is always specific to their use case and thus optimizations in these areas are sometimes hard to justify. Since our Analytics allows you to assign each user session it’s own id, you can combine your own signups/sales tracking with the collected data about the user experience. This allows you to make informed decisions on what factors really matter to your business and how you are improving your revenue. To do so you would directly integrate our collected data from the API into your business intelligence workflow and can even track individual users on a case by case basis.

But these are just some use cases for leveraging the analytics data we collect for you. We are sure you can come up with even more interesting and exciting ways to integrate data into your business. For more information about analytics you can contact our solutions team for a personal demonstration where we can show you how Bitmovin Analytics can grow your revenue and help you deliver high quality streaming video to your users consistently!