Case Studies / Analytics

Migrating a video streaming platform’s mobile, web, and Smart TV apps to GA4

Smart TV with remote


We planned the migration of a streaming platform’s tracking to GA4, combining data from web, Smart TV and iOS/Android apps into one setup.




Video Streaming

Brightcove provides and manages a massive international video streaming platform, scaling the reach of their customers’ video content to a global audience. One of their offerings is a white labeled immersive video experience for companies with video content to share with the world. An added feature of this product offering is a built-in setup inside of Google Analytics for data analysis, and a companion Google Looker Studio report for ease-of-use.

The challenge

They needed to migrate their analytics tracking from the soon-to-be-deprecated Google Universal Analytics platform to the new GA4 platform. They also needed the ability to deliver a functioning GA4 setup—complete with a Looker Studio report—to each of their customers, so that customers could report on the performance of their own streaming experiences.

All of this was further complicated by the fact that each streaming platform is available in the following environments, each requiring careful tailoring of the format and schema of the event data they collect:

  • on the web via browser
  • as an app that can be downloaded on multiple SmartTV operating systems
  • as an app on Android and iOS devices

Our goal was to get all the user data (no matter which platform was being used to stream) collected together into one GA4 property so that customers could get a full picture of their streaming experience’s data, while also being able to drill down to see how the web app performs against the mobile apps, and how each of those perform against the SmartTV apps.

Finally, documentation needed to be created to detail the entire process so that their team could handle the setup of GA4 data collection and reporting for any new clients they gain in the future.

Our results

Event mapping

We started by mapping the entirety of the GA4 event schema to be collected—event names, dimensions, and metrics.

It was very important that the plan we created was clean and logical, but also robust; our goal was to serve their end customers by delivering an intuitive reporting experience that could be analyzed in depth. For example, being able to filter streaming data by “User type,” “Language,” “Streaming platform” — these are all dimensions that will enrich their customers’ data and help them make informed decisions on the streaming platforms they pay to host.

At a more granular level, we added dimensions such as:

  • “Content type” — adding the ability to analyze movies against series against episodes
  • “Genre” — adding the ability to analyze video genres
  • “Video title” — adding the ability to see video-specific stats, like which are the most viewed and which are the most/highest reviewed

Once the plan was in place, we consulted their development team on which data layer variables from their old UA implementation would be used to send data to each of our planned event parameters in the new setup. We also had to take into account which event parameters would have to be added as custom dimensions and metrics in GA4, and which were already available in the standard GA4 event schema.

Accounting for the data streams

Our map also had to account for the differences between where the streaming platform was being accessed. We mapped unique setups for each of the data streams that we were going to create inside of one GA4 property:

  • Web data stream
  • iOS data stream
  • Android data stream
  • SmartTV data stream

Some events and their parameters pertained to all data streams, others to just one or two. Knowing these differences was vital to our next step — figuring out how these events would actually get sent to GA4, especially the ones from SmartTVs which didn’t (at the time of the project) have a standardized way of doing so the way web has gtag.js and mobile platforms have Firebase.

Using Measurement Protocol to send SmartTV events to GA4

While sending the web events via gtag.js and the mobile app events via Firebase was somewhat straightforward (not without a few kinks to be troubleshot), figuring out how to use Measurement Protocol to send the SmartTV events to GA4 was a harder challenge. We used Google’s Event Builder to help us sort out our payload formatting.

At the end of the day, the process entailed:

  1. Creating an API secret inside of our SmartTV data stream in GA4
  2. Building a Measurement Protocol payload using the API secret, our GA4 measurement ID, the (variable) client ID, and the actual event data we wanted to send.
  3. Adding a parameter for “engagement_time_msec” equaling “1” to get GA4 to recognize the payload as representing an actual session — this was the tricky bit that required some research and debugging to figure out.
  4. Of course, more testing and debugging.

Creating a Google Looker Studio template

Once the entire setup was implemented in staging environments and test apps, and we were satisfied with the resulting data, our final step was to create a Looker Studio report sourced from all of this GA4 data, giving our client’s customers a more out-of-the-box reporting tool than the GA4 interface provides (since, as many with experience will tell you, GA4 is intimidating at first).

We created a 5-page Looker Studio report complete with scorecards, graphs, and tables, with interactive filters so that their customers can view data for their different user types, streaming platforms, genres, languages, etc. The robustness of the GA4 setup is reflected in the Looker Studio report so that the more curious customers can get to the more specific insights they might be looking for.

This report is now a template which can be duplicated by our client, and with a few clicks the source data can be changed to any of their customer’s GA4 accounts.

Final words

Working under such a tight timeline (the project was started a few months prior to UA’s sunsetting), the Brightcove team was extremely satisfied with our deliverables — a good plan that was executed well and on-time, despite the need for some exploration and research given the complex requirements.

They were able to spin-up new GA4 accounts for each of their customers, each complete with multiple data streams collecting data from different platforms, and finally to provide their customers with a professional-looking interactive Looker Studio report from which to analyze their new data.

Become our next case study.

Tell us about your project and we’ll come up with a solution that gets you results.