How Our Radio Listener Analytics Work:

And Tips To Optimise Your Data Accuracy

How Our Radio Listener Analytics Work
May 22nd, 2025
Updates
Analytics
Explainer

We’re excited to announce that we’ve recently revamped how our analytics work. We’ve been doing a deep dive on everything related to radio analytics these past six months. We’d always heard that stations’ listenership stats vary drastically across different platforms. After getting our hands dirty and working through all the edge cases, it’s no surprise that each provider’s stats are so different, depending on whether they handle all (or, frankly, any) edge cases. We’re pretty confident that we now have one of the most accurate radio listenership analytics out there.

With all the changes we’ve made and the lessons we’ve learned, we thought it best to write this blog post. The goal is to help you understand how our listener analytics work and the how you can optimise the accuracy of your listeners' data.

So let’s begin!

How we collect analytics

Please indulge us here as we get a bit technical.

Our analytics system is event driven. What this means in practice is:

  1. When a user starts listening to your station, one of our streaming servers records the connection event and all associated data.

  2. The connection event is forwarded on to our main servers.

  3. Our main servers process the event and turn the resulting data to an actionable listening session in our database. The most important details we store for each session are:

  • The time and date the session began,

  • The city and country the user is listening from, and

  • The operating system, device type and application of the user’s listening device.

These details are primarily derived from the user’s IP address and the user agent of the listening device.

Please note: we never persist any IP addresses (or other personal identifiable information) in our database.

  1. When a user stops listening to your station, the disconnection event is recorded and forwarded on to our main servers.

  2. Our main servers process this even and update the session (created in step 3) with the following details:

  • The time and date the session ended, and

  • The total duration of the session.

This session data forms the basis of all listening analytics and metrics we display on the Radio Cult platform.

How we’ve improved your analytics

We’ve made a number of improvements to your station’s analytics. However, all radio analytics have some inherent limitations, which we’ll get into below. Let’s start with improvements.

With the inclusion of more data and a more event-driven system, we’re able to calculate the duration of each session. The resulting analytics now give you far more information about how long your listeners are locking in for and where from.

Storing more data let’s us work out more about the listener’s device and listening method. Allowing you to see what devices (e.g. desktop, laptops, mobile phones etc.) and applications (e.g. internet browsers, media players, mobile applications etc.) listeners are using to access your station’s stream.

Lastly (and this is a big one), we’ve improved bot detection massively. The internet is full of bots crawling the web’s many millions of website and this includes your station’s stream. These bots aren’t real people and they’re certainly not actual listeners. With this improved detection, we filter out the bots, so your listener analytics only includes actual listeners.

Building for scale and the future

More than just including more data and improving the accuracy of the who is listening, we’ve also made changes to how we store and deliver your analytics data. We want to scale as you do. Our analytics processing now runs on a new tech stack that can handle huge amounts of data. More importantly, it lets us store analytics data for a very, very long period of time.

A common complaint we would hear about other platforms was how short listener analytics would be stored for. Some platforms only store the data for a few months! To us, that’s just ridiculous. How can you see how your station has done over the course of the year if your data is being deleted every two months?

We’ve always had a big focus on storing your data for as long as possible and that hasn’t changed. With the improvements we’ve made, we can keep store your data for much longer than other platforms.

The limitations of our analytics system

As mentioned previously, every radio listener analytics system will have some limitations. We’ve spent a long time making sure that the limitations are minimal and that many of them can be overcome.

Determining location

The first limitation is determining a listener’s location (i.e. city and country). Location data is derived from the listener’s IP address. However, common methods like VPNs will alter and obfuscate the user’s IP address.

This is on purpose. One of the main use cases of VPNs is tricking streaming platforms, like Netflix, into thinking your in a different country. This is likely one of the reasons why the listener is using a VPN in the first place.

There’s really no way to get around this (unless you get all creepy like the software companies of the 2010s who would track GPS location via apps on phones) and all other analytic solutions will run into this limitation.

Connection behaviour

The second limitation is the how different listening applications (e.g. browser, media players etc) connect and disconnect from your stream. Specifically, this limitation relates to steps 1 and 4 mentioned at the start of this section.

Some listening applications may open up multiple connections when connecting to a radio stream, resulting in multiple connection events. This can lead to duplicate sessions being recorded on our end for a single listener session.

Now rest assured, for all common listening applications we’ve ensured that duplicated sessions don’t show up in your analytics. Almost all listeners will connect via browser, smart speaker, mobile or a few popular desktop apps like Apple Music, VLC and Windows Media Player and we have these use cases covered. However, there are a massive number of possible listening applications to access a stream. We’re working through each of them as they come up, but it’s almost impossible to account for all of them.

Pause behaviour

The third limitation is very similar to the above and relates to how pausing the stream is handled under the hood by different listening applications. When you pause an audio stream, certain applications (notably browsers) will not actually disconnect from the stream. They’ll stop the audio coming through, but they’ll keep the connection open to the stream.

Because the listening application never disconnected from the stream, it can lead to some incorrect data. For example, say a user listens for 20 minutes, then pauses the stream for 10 minutes, then resumes the stream for another 20 minutes and then exits the application. Because the user never disconnected from the stream, the resulting session duration will be 50 minutes, instead of two sessions of 20 minutes each.

However, this limitation can be overcome. We’ve made specific changes to the Radio Cult embeddable players and our mobile app to ensure that pausing the stream actually sends through the disconnection event.

Technical note: If you’re building your own web players, we recommend setting the src attribute of your audio tag to undefined when the stream isn’t playing to ensure the browser disconnects properly.

Unfortunately, we can’t implement these fixes in listening applications we have no control over or access. However, if you use our embeds or implement the technical note above on your custom websites then that will go a long way to making your data as accurate as possible.

Best ways to optimise data accuracy

Now with all the technical nitty gritty out of the way. Here are the concrete steps we would recommend to best optimise the accuracy of your listener data:

  • For listeners who enjoy accessing your stream via web browser (including on mobile devices), encourage them to use popular browsers e.g. Google Chrome, Safari, Edge and Firefox. Further, if possible, suggest they use these browsers in conjunction with one of our embeddable players.

  • For listeners who use a media player to connect to your station’s stream, encourage them to use the following players: VLC, Apple Music and Windows Media Player.

  • Lastly, for listeners who listen via mobile apps, encourage them to use the Radio Cult aggregator app.

Create your own online radio station and start streaming today!

Click here to try Radio Cult for free - the streaming platform designed for independent and community radio.

Download the Radio Cult app on iOS and Android to listen to that original pirate material 24/7.

Find us on Instagram, Twitter and join our Discord to follow along with our journey and suggest features.

Create your online station and
start streaming today

Try for free