PRX uses Kevel to scale their homegrown podcast ad platform
Public Radio Exchange Logo

PRX uses Kevel to scale their homegrown podcast ad platform

Public radio's largest podcast marketplace uses Kevel to augment their internal ad server


More ad revenue


Average response time


Faster launch vs from scratch

What PRX Wanted

Public Radio Exchange (PRX) operates public radio’s largest podcast distribution marketplace, and they already had a homegrown ad server that enabled podcasters to monetize by inserting audio ads into episodes.

As they scaled, however, their advertisers and podcasters starting asking for more features, and PRX didn't have the engineering resources needed to make these improvements.

So PRX turned to Kevel's ad serving APIs to augment their in-house ad product and quickly add new features and functionality.

Within a few weeks, PRX had upgraded their system - making their podcasters happy while also driving new revenue for themselves.

prx ads

PRX upgrades their ad platform from hardcoded ads to dynamically-inserted ones

Before, PRX ads were hardcoded to each episode, so PRX and their hosts couldn't monetize old podcasts. Now, when a user downloads any episode, PRX pings Kevel with targeting data like the podcast name. Kevel then picks the right audio ads, stitches them into the podcast, and PRX hosts that file on their server.

  • 4x more revenue since old podcasts could now be monetized
  • Increased ad relevance thanks to contextual targeting

We've quickly scaled our podcast ad platform using Kevel - allowing us to create a growing line of business.


Server-side integration makes dynamic insertion possible

All of the ad decisions are requested server-side — giving PRX the ability to host the compiled audio file on their own servers. This wouldn't be possible with a standard JavaScript ad serving solution.

  • Ad response times as low as 50ms, even at scale
  • PRX built this bespoke, complex platform in just weeks
curl -H 'Content-Type:application/json' \
  -X POST \
  -d '{"placements":[{
  "user":{"key":"abc"}}' \
{ "user": { "key": "abc" },
  "decisions": {
    "div1": {
      "adID": 1234567,
      "creativeID": 7654321,
      "flightID": 9876543,
      "campaignID": 3456789,
      "clickURL": "",
      "imageURL": "",
      "height": 250,
      "width": 300,

If you are looking for API-level ad integration, I haven't found anything that holds a candle to them.


Kevel App

Automation makes managing these ads easy

Having access to UI and Management APIs makes it easy for PRX to set-up campaigns and manage what promotions are live. This automation ensures that PRX doesn't promote old offers - without having to manually pause them.

Watch our product deep dive with PRX's CTO.

Want to build something similar?

Start now