Subscribe by email, free
Bryan Barletta’s podcast adtech weekly from Podnews

You’re incorrectly identifying up to 50% of your user agents

· By · Editors: Evo Terra, James Cridland · 6.6 minutes to read

Chances are you’ve seen a podcast download report showing podcast players like Chrome and Safari. But those aren’t the players, just the way some episodes are being streamed. Device user agent gets you 50% of the way toward correctly identifying your audience. That other 50%? It requires a little more effort for a lot more results.

The Pitfall of Device User Agents

Last week we dug into the Open Podcast Analytics Workgroup (OPAWG), specifically to focus on their completely open and free to use database of device user agents. OPAWG also offers a repository for RSS user agents.

User agents, for podcast audio, tell the podcast host what player you’re using. That could be Spotify, Apple Podcasts… or Chrome. Yes, even web browsers are considered players.

So, while you may be listening to Spotify through Chrome, the user agent your podcast host sees just tells your podcast host that you’re using Chrome.

Knowing you’re using Chrome to play the audio is fine - but knowing that this play is really coming from Spotify, or Castbox, or RadioPublic, is better for marketing as well as targeting.

It also means that some platforms show inaccurate numbers in many podcast host dashboards. Google Podcasts, for example, has a much higher than average amount of web plays since play buttons for it appear in standard Google searches: but they’ll just appear as a browser, too.

Not to mention that whenever you “stream” a podcast (not download or subscribe, just hitting play) on any iOS/iPadOS device, the default device user agent shows as AppleCoreMedia. This is a streaming library that developers can choose to use if they want to, or they can choose to build their own.

For some shows or ad campaigns, streams from Apple devices or web plays might not be much more than 10% of their traffic. For others, it can be as high as 50%.

So how do we solve it?

Enter: RSS User Agents

Apart from Apple Podcasts, most major podcasting players have a central server that checks all the RSS feeds in their podcast directory of choice, at a set frequency (hourly, daily, set time of day, etc). When that server identifies that there’s an update on the RSS feed, it communicates with the player on your device to let you know there’s new content available.

A hosting provider can look at who the RSS request is coming from. by using the RSS user agent, and respond to the request in a more customised way.

Maybe one platform only allows HTML in the 'description’ field, so you can get the episode notes to display better if you tweak that. Maybe you normally send AAC files, but one platform only accepts MP3. Maybe the display of your show notes on one app would look better with double line-spaces between paragraphs. Maybe one platform would prefer much lower bitrate files.

Many hosts already use different RSS feeds for different platforms - but the trouble with this is that you don’t always have that control. Some platforms take feeds from the iTunes API; and by producing many different URLs for your RSS feed, you break a central idea behind the internet - that of canonical links: one URL for each piece of content.

Tagging the RSS Request

If you can identify who the RSS request is coming from, you can respond back to the request in a tailored way for each app - and get a better understanding of the consumption in that app’s entire ecosystem.

Our own James Cridland of Podnews started cataloguing RSS user agents in OPAWG, where much of this data is available for exactly this reason.

Most RSS user agents seem to follow standard best practices which mean that you’ll see a clear URL identifying who is making the request. When the host gets an RSS request, all they have to do is look for the RSS user agent, and attach that service’s name to each episode’s audio URL. They can add a simple querystring to the audio - /audio/example.mp3?from=overcast.

Now every single time that audio is downloaded or streamed, regardless of whether it’s in-app or on a web player, the episode is marked with which platform requested it; in addition to the player’s user agent.

If a play happens on a web player, the user agent might say “Chrome”, but the audio file is still marked with the Overcast service name, so we can be sure it was played on the Overcast platform.

Running the numbers

One of the advantages of working with James Cridland is that he likes to host everything himself, which means he has access to all of his own data.

James has started using RSS user agents to tag the audio as discussed above, using the OPAWG database to identify them. The results were pretty fantastic.

Of a sample of 3,880 total podcast plays:

If we just narrowly look at AppleCoreMedia and web browsers alone, Podnews is now able to identify 16% more of their users listening platforms than before. And that’s just the start.

Sharing the data down the line

To make sure we’re all using the same data, prefix URL partners like Chartable and Podtrac will need to ensure that these values are taken into account when matching episode audio URLs.

Podcast hosts will need to provide that value to tracking and attribution partners like Podsights and Claritas, as they’ll be completely blind to it unless it’s shared. As most tracking partners already have “ua=“ in their tag, it would make sense for them to add “rua=“ for the RSS user agent and for the hosting providers to include a macro to populate the value from the audio episode url.

One thing we absolutely need to ensure is that podcast hosting platforms don’t alter any part of the audio URL. In Podnews’s tests, two podcast platforms were altering audio query strings; another removed them altogether.

Growing the space

There are over 105 identified RSS user agents in the OPAWG repository at the time of writing this article. The more people exploring this method of identification, the faster and more accurately we can all identify all the RSS user agents correctly, and request the value is correctly set by podcast apps and directories.

Most of these RSS user agents are going to be easily identifiable, but we’ll definitely see some questionable requests. The more we identify the RSS and device user agents correctly, the more the outliers stick out. As a community, we can ask those seeing odd values to improve their feed or identify.

We can and should begin to use our new-found targeting power to give different audio to our listeners, encouraging them to find another podcast platform if those platforms are bad actors.

Increasing visibility into what player the user is actively engaging with in both web and streaming, where we were previously blind, is a massive win.


The goal of Sounds Profitable is to educate and empower each of you. If we’ve had a chance to talk directly, you know that I am truly passionate about both adtech and podcasting. We learn through asking tough questions and discussing the answers. Armed with today’s new knowledge, I want to help you ask more questions. Please consider supporting Sounds Profitable through our Patreon.

New Sponsors!

It’s our goal to highlight the amazing people and companies that are helping Sounds Profitable grow. This week marks our third mailer, and we’d like to personally thank our first sponsor, Midroll Media, a leader in the podcast advertising network space.

We’d also like to thank our first three individual contributors:

It costs $5k a year for a “startup” to join the IAB, so our goal is to join in 2021 as Sounds Profitable, in an attempt to provide an unbiased opinion in the audio tech lab meetings. Every sponsorship helps us get one step closer to that goal!


Our sponsors support a collaborative and educated podcasting space and are committed to raising up the whole industry together. Find out how you can become a sponsor today

Bryan Barletta (He/Him) is the voice behind Sounds Profitable. He started in the adtech industry so long ago that they used to ask, “Mobile advertising? Like on taxis?” (2008) before shifting into podcasting in 2015. His goal is to make in-depth adtech more accessible for readers and listeners. And, yes, it is sunny and warm in Austin today.

Get the latest from podcasting's adtech world with our free weekly newsletter

Get the weekly newsletter by email, free