How to Use UTM Parameters for Podcast Sponsorships and Guest Slots
You drop $4,000 on a host-read ad. The episode goes live. Signups tick up that week. But when you open GA4, the traffic is sitting in “Direct” like it wandered in off the street. You cannot tell the podcast from a forgotten newsletter.
I see this constantly. Podcasts are the hardest channel to track because they are audio first. Someone hears “go to yourbrand dot com slash growth” while driving or doing dishes. They cannot click anything. There is no referrer to pass. So the most expensive, most trusted ad format you run is also the one your analytics understands the least.
Here is the fix in one line. You give listeners a short, speakable web address that redirects to a fully tagged link behind the scenes. The listener types something easy. Your analytics receives the full campaign detail. This guide covers the whole setup: the parameters, the vanity URL trick, the three different podcast scenarios, and how to make podcasts actually show up in GA4.
Real talk, I built linkutm because I got tired of fixing this exact attribution mess. So I have opinions. I will flag the trade-offs as we go.
Why Podcast Traffic Disappears in Your Analytics
Podcast traffic vanishes for two reasons: the click never happens, and even when it does, GA4 has no idea what a podcast is.
Start with the audio gap. Most podcast listening happens in apps like Apple Podcasts or Spotify, often offline, often hands-free. A host reads your URL out loud. The listener has to remember it, then type it later. No click means no referrer. GA4 sees a visitor with no origin and files them under (direct) / (none), the same bucket as someone typing your homepage from memory.
Then there is the show-notes link. That one is clickable. But fewer than one in five listeners ever opens the episode description. So even a perfect UTM parameter link in the notes captures a sliver of the real audience.
The second problem is GA4 itself. There is no “podcast” channel in the default setup. Tag a link with utm_medium=podcast and GA4 dumps it into “Unassigned” because it does not match any built-in channel rule. Your data is technically correct and still useless until you fix the grouping. I will show you that later.

The Two-Layer Fix: A Speakable URL That Carries UTMs
The whole system rests on one idea. Separate what the listener says from what your analytics reads.
Layer one is the spoken address. It has to be short, brandable, and easy to remember. Something like yourbrand.com/marketingschool. No question marks. No utm_source. Nobody can speak a query string, and nobody will type one.
Layer two is the redirect. That short address points to your real landing page with every tracking tag attached. The listener never sees it. When they hit the vanity link, they get bounced to the tagged URL in a fraction of a second.
Here is what that looks like in practice:
Spoken on the show: yourbrand.com/marketingschool
Redirects to:
https://yourbrand.com/welcome?utm_source=marketing_school&utm_medium=podcast&utm_campaign=q3_sponsorships&utm_content=ep_142
This is exactly what a vanity URL is built for. A branded short link sits on your own domain and 301-redirects to the tagged destination. The UTMs ride along invisibly, so GA4 gets the full picture while the listener gets something they can actually remember. Tools like linkutm’s branded domains let you put these redirects on yourbrand.com instead of a generic shortener, which matters when a host is saying your domain out loud.
One honest limitation. A vanity URL only captures people who act on the spoken prompt. Someone who hears your name, forgets the slug, and Googles you later still lands in organic or direct. No link system catches that person. Promo codes and surveys help, and I cover both near the end.
The 5 UTM Parameters Mapped to Podcasts
Use the five standard parameters, but assign them podcast-specific meanings. Three are essential. Two add episode and segment detail.
| Parameter | Use it for | Podcast value example |
|---|---|---|
utm_source | The specific show | marketing_school |
utm_medium | The channel type | podcast |
utm_campaign | The deal or flight | q3_sponsorships |
utm_content | The episode | ep_142 |
utm_term | The read or segment | mid_roll |
A few rules I will not bend. Keep utm_source lowercase and use the show name, not “podcast.” GA4 treats Marketing_School and marketing_school as two different sources, so casing chaos splits one show into several rows. Set utm_medium to podcast for every podcast link, no exceptions, because that consistent value is what powers your channel grouping.
Use utm_content to separate episodes when a single show runs your ad multiple times. That tells you episode 142 pulled while episode 150 flopped. Use utm_term for the read type if you test pre-roll against mid-roll, or different host scripts.
Build these with a UTM builder so the formatting stays clean and the naming matches across every show you sponsor. Manual tagging in a spreadsheet is where casing errors and typos creep in, and one bad link fragments a whole campaign.

Scenario 1: Tracking a Podcast Sponsorship You Bought
When you sponsor a show, you control the link, so tag it tightly. The show name goes in utm_source and your deal goes in utm_campaign.
Give every show its own vanity URL. If you sponsor five podcasts this quarter, that is five distinct slugs, each redirecting to a tagged page. This is the only way to compare shows against each other. One shared link for all five tells you “podcasts worked” and nothing more useful than that.
Here is a clean setup for two shows in one campaign:
yourbrand.com/marketingschool
->...? utm_source=marketing_school&utm_medium=podcast&utm_campaign=q3_sponsorships&utm_content=ep_142
yourbrand.com/growthlab
->...? utm_source=growth_lab&utm_medium=podcast&utm_campaign=q3_sponsorships&utm_content=ep_88
For host-read ads, hand the host the spoken vanity URL and nothing else. For dynamically inserted ads (the kind the platform serves programmatically), put the vanity URL in the ad audio and the full tagged link in any companion show-notes slot you get.
Send the traffic to a dedicated landing page, not your homepage. A page that echoes the offer the host just described converts far better, and it gives you a clean conversion event to measure per show. This is the same discipline I push for influencer campaign tracking, because a podcast sponsorship is really a creator partnership with a microphone.
The trade-off: dedicated pages and per-show links are more setup work upfront. For a one-off $500 sponsorship, a single vanity URL to an existing page is fine. Scale the rigor to the spend.
Scenario 2: Tracking Your Guest Appearance
When you are the guest, you usually get one call-to-action slot, so make it count with a memorable URL and a guest-specific campaign tag.
You do not control the host’s show notes, and you cannot assume they will link you correctly. So lean even harder on a speakable vanity URL you fully own. Pick something tied to the appearance, like yourbrand.com/joespod, and say it twice during the episode.
Tag it so you can separate guest spots from paid sponsorships:
yourbrand.com/joespod
->...? utm_source=joe_show&utm_medium=podcast&utm_campaign=guest_appearances&utm_content=2026_06
Notice utm_campaign=guest_appearances. That keeps your earned guest traffic in its own bucket, away from the paid q3_sponsorships flight. When you do ten guest spots in a year, you can rank which shows actually sent people, then prioritize pitches to the ones that converted.
Point the link at a relevant page, ideally one that references the conversation. If you talked about a specific tool or framework on the show, send listeners to that exact resource, not a generic landing page. Relevance between what they heard and what they see drives the signup.
The limitation here is honesty about volume. Guest spots usually drive smaller, spikier traffic than paid reads. Do not judge a single appearance by a slow first week. Audio downloads, and the actions that follow, trickle in for weeks as people catch up on episodes.

Scenario 3: Podcast Affiliate Link Tracking for Your Own Show
If you run your own podcast and promote affiliate or sponsor offers, you are on the other side of the deal, and you need links that prove the traffic you send.
Two things to track here. First, the affiliate links you read out to your audience. Second, the value you deliver to sponsors who pay you. Both rely on the same vanity-plus-UTM pattern, just pointed at someone else’s site.
For affiliate offers, the merchant usually gives you a tracking link or an affiliate code. Wrap their link in your own readable vanity URL so you can say it on air, and add UTMs if the merchant accepts them:
yourshow.com/getbrand
-> https://partner.com/offer?ref=yourshow&utm_source=your_show&utm_medium=podcast&utm_campaign=affiliate
Use a dedicated affiliate setup so commission attribution and your own click data stay separate from your editorial links. The clean approach is one vanity slug per offer, tracked in one place, reconciled against the merchant’s affiliate dashboard at month end.
For podcast affiliate link tracking, expect two numbers that never match perfectly: your click count and the merchant’s recorded conversions. Cookie windows, cross-device journeys, and ad blockers all eat into the merchant side. That gap is normal. Track the trend, not the exact reconciliation, and use your click data to prove you sent qualified traffic even when their attribution drops some of it.
How to Make Podcasts Show Up in GA4
By default, utm_medium=podcast lands in GA4’s “Unassigned” channel. Fix it once with a custom channel group, and every podcast link reports cleanly forever after.
GA4’s default channel grouping only recognizes mediums it knows, like email, cpc, and organic. Your podcast medium matches none of them, so it falls through to Unassigned. This is the same root cause behind most unassigned traffic in GA4: a medium GA4 was never taught to bucket.
Here is the setup:
- In GA4, go to Admin, then Channel groups, under the property column.
- Create a new custom channel group, or copy the default one to edit.
- Add a new channel called “Podcast.”
- Set the rule: Session medium exactly matches
podcast. - Order it above “Unassigned” so it catches your traffic first, then save.
After that, open Reports, then Acquisition, then Traffic acquisition, and switch the dimension to your new channel group. Podcast traffic now shows as its own line. Drill into Session source to compare shows, and into Session campaign to split sponsorships from guest slots.
One caveat. Channel group changes are not retroactive in standard reports the way you might hope, and processing can take 24 to 48 hours to settle. Set this up before your campaign launches, not after, so the first episode reports correctly from day one.

Promo Codes and Surveys: The Offline Safety Net
UTM links catch the listeners who act online. Promo codes and a one-question survey catch the rest, and you want both because no single method sees the whole audience.
A spoken promo code works where a URL fails. The listener hears “use code GROWTH at checkout,” and even if they buy three weeks later on a different device, the code ties the sale back to the show. Give each show its own code, the same way you give each show its own vanity URL. GROWTH for one podcast, SCALE for another.
The second safety net is the post-purchase survey. A single “How did you hear about us?” question on your thank-you page catches the people who heard your name, Googled you days later, and converted with no trackable link at all. That bucket is bigger than most marketers admit for audio channels.
Read together, these three signals triangulate the truth. UTM clicks show immediate online response. Promo codes capture delayed and cross-device buyers. Survey answers reveal the brand-search tail. No single number is complete, but the three together get you close enough to decide which shows deserve next quarter’s budget.
The limitation is obvious: this is more work, and the numbers will not reconcile to the decimal. That is fine. You are trying to rank shows confidently, not audit a bank.

Mistakes I See With Podcast Tracking
Most podcast tracking fails on small, avoidable errors. Here are the ones that cost people the most.
- Speaking a raw UTM link. Nobody types
? utm_source=. Always front it with a vanity URL. - One link for every show. You lose the ability to compare shows. One vanity slug per show, minimum.
- Forgetting the channel group. Tagged traffic still rots in Unassigned until you teach GA4 the
podcastmedium. - Inconsistent casing.
Podcastandpodcastsplit your data. Lowercase everything, every time. - Homepage as the destination. A generic homepage wastes the intent. Send listeners to a page that matches the read.
- Judging too fast. Podcast traffic trickles in for weeks. Give a campaign 30 days before you call it.
Fix those six and you are ahead of almost every brand buying podcast ads right now.
Frequently Asked Questions
What UTM parameters should I use for a podcast sponsorship?
Use utm_source for the show name, utm_medium=podcast, and utm_campaign for the deal or quarter. Add utm_content for the specific episode and utm_term for the read type if you want that detail. Keep every value lowercase with underscores instead of spaces, since GA4 treats different casing as different sources.
How do I track a spoken podcast URL that listeners can’t click?
Use a short, branded vanity URL that redirects to your fully tagged landing page. The host says something memorable like yourbrand.com/showname, and that link 301-redirects to a destination carrying all your UTM parameters. The listener types something easy while your analytics still receives the full campaign detail.
Why is my podcast traffic showing as direct or unassigned in GA4?
Two causes. Spoken URLs get typed by hand, so there is no referrer and GA4 files them as direct. Tagged links using utm_medium=podcast land in Unassigned because GA4’s default channel grouping does not recognize “podcast.” Fix the second one by creating a custom channel group with a rule that matches Session medium to podcast.
What should utm_medium be for a podcast?
Use utm_medium=podcast. It is a custom medium, so it will sit in Unassigned until you add a matching custom channel group in GA4. Keep the value identical across every podcast link, because that consistency is what lets GA4 group all podcast traffic into one clean channel.
How do I track a podcast guest appearance?
Create a vanity URL tied to the appearance and tag it with utm_source as the show, utm_medium=podcast, and utm_campaign=guest_appearances. Say the URL at least twice during the episode and point it at a page related to what you discussed. The separate campaign value keeps earned guest traffic distinct from paid sponsorships.
Are promo codes or UTM links better for podcast tracking?
Use both, because they catch different listeners. UTM links capture people who act online right after the episode. Promo codes capture delayed and cross-device buyers who convert weeks later at checkout. Add a “How did you hear about us?” survey to catch the brand-search tail that neither method sees.
How do I track podcast affiliate links?
Wrap the merchant’s tracking link or affiliate code inside your own readable vanity URL so you can say it on air, and add UTM parameters if the merchant accepts them. Expect your click counts and the merchant’s recorded conversions to differ because of cookie windows and cross-device gaps. Track the trend rather than chasing an exact match.
Start Tracking Your Podcast Campaigns
Podcast advertising is too expensive to run blind. The setup is simple once you split the spoken URL from the tagged destination: a memorable vanity link out front, full UTMs behind it, a custom channel group in GA4, and promo codes plus a survey to catch the offline tail.
Pick your next sponsorship or guest spot and build one vanity URL today. Create your tagged destination with the free UTM builder at linkutm, point a branded short link at it, and you will finally know which shows are worth the spend.