How to track podcast ads in GA4 and Shopify, step by step
Build one tagged link per show with utm_medium=audio and put a short Shopify redirect in front of it. Give the show its own code. After each episode, read GA4's Audio channel, Shopify's code report and new customers against the week before.
By Joris van Huët, Founder & CEOUpdated 8 min read
Run the numbers for your store: the free discount and promotion profit calculator.
To track podcast ads in GA4 and Shopify, you usually build one tagged link per show, with utm_medium=audio. Put a short, sayable address in front of it and give the show its own code. After each episode, read the Audio channel, the code report and new customers against the week before.
Step by step
- Pick one naming scheme before you book a spot. Use utm_source=podcast and utm_medium=audio for every show, and put the show's name in utm_campaign. GA4's UTM best practice asks for one source value per platform and one medium per channel, so every show lands in one tidy bucket. Path: GA4 help, URL builders, UTM best practices.
- Build the landing link. Point it at the page the host will talk about, not your homepage, and add the tags, such as
?utm_source=podcast&utm_medium=audio&utm_campaign=runclub&utm_content=spoken. Keep every value lowercase, because GA4 treats Meta and meta as different values. The UTM builder glues it together for you. Path: GA4 help, URL builders, Manual set up. - Give the link a short address the host can say. From your Shopify admin, go to Content > Menus, click View URL Redirects, then Create URL redirect. Enter a path such as /runclub in Redirect from, paste the tagged link into Redirect to and click Save redirect. Skip paths that start with /shop, /cart or /apps, which Shopify won't redirect. Path: Content > Menus > View URL Redirects > Create URL redirect.
- Test it before the episode airs. Type the short address into a private browser window and check that the address bar still shows the tags. Shopify redirects only from broken URLs and warns that query strings might not work as expected. GA4 adds that redirects can strip UTM parameters. Path: Shopify help, Creating and managing URL redirects, Troubleshooting.
- Add a tappable link for the show notes. In Shopify, go to Growth > Campaigns and click Create campaign, then click + under Shareable links and add utm_content=notes under Additional UTM parameters. Shopify lists radio ads among the uses for these links. A campaign's link also comes with a short link and a QR code, handy for video episodes. Campaigns need the Basic plan or higher and a desktop. Path: Growth > Campaigns > Create campaign > Shareable links.
- Create a code only that show uses. Go to Discounts, click Create discount and choose Amount off orders. Under Method, select Discount code, name it after the show, and tick Limit to one per customer under Maximum discount uses. Under Active dates, click Set end date so the code stops when the run does. Path: Discounts > Create discount > Amount off orders.
- Ask where buyers heard about you. On a free Shopify theme, open the theme editor, pick Cart, click Sections, then Subtotal, tick Enable cart note and save. Relabel it under Online Store with Edit default theme content, in the Cart section's Note field. Only buyers who pass through the cart page see it, and Shopify Plus stores can add a checkout field with the Checkout Blocks app instead. Path: theme editor > Cart > Sections > Subtotal.
- Mark each air date in Shopify. Go to Analytics > Reports, open Total sales over time, click Annotations and add the episode with its date. Time has to be the report's first dimension, and annotations stay out of exports. Path: Analytics > Reports > Total sales over time > Annotations.
- Read the Audio channel in GA4. Go to Reports > Acquisition > Traffic acquisition and find the Audio row under Session default channel group, the report's default dimension. Switch the dimension drop-down to Session campaign to split it by show. Path: Reports > Acquisition > Traffic acquisition.
- Read the code sales in Shopify. Go to Analytics > Reports, click the Category filter, choose Sales and open Sales by discount codes. It counts only the line items a code touched, and with stacked discounts one order can show on more than one row. Path: Analytics > Reports > Sales > Sales by discount codes.
- Compare the week after each episode. In Shopify, open New vs returning customers under the Customers category, group it by week, then click Compare to and choose Comparison to past. In GA4, use the date picker's Compare with Previous period (match day of week). Path: Analytics > Reports > New vs returning customers; GA4 date picker > Compare.
- Check brand searches in Google Ads. If you bid on your brand, select Campaigns, then open Search terms in the Insights and reports sub-menu. Look for your brand next to the show's name or the word code. Path: Campaigns > Insights and reports > Search terms.
A worked example
Start with the bar the show has to clear. One store's Break-even sheet works it out: at a 40% margin, break-even ROAS is 2.5x, because 1 divided by 0.40 is 2.5. That row is arithmetic, not that store's results, so it holds for any store with the same margin.
For illustration, say you pay €1,000 for one host-read spot on a running podcast, at that same 40% margin. In this worked example, the episode has to cause €2,500 in sales to pay for itself.
Say the code report shows €600 two weeks after the episode, and the Audio row another €300 in purchases. On those numbers alone, the worked example returns €900 on €1,000, or 0.9x. The cart note names the show on a few orders that used neither, which you would add on top.
Now check the lift. Say the new-customer sales in the week after the episode came to €1,800 more than in the same weekdays the week before. If the lift came from the show, it caused about €1,800, or 1.8x, double what the tags and the code caught. In this worked example, 1.8x is still below the 2.5x bar, so the show does not pay for itself at this price yet.
That leaves two honest moves. Ask the show for a lower rate or a second episode on the same terms, and measure again. Or, if you can, move the €1,000 to a channel where the next euro pays.
What should I check when the numbers look wrong?
- The Audio row is empty. Check the medium on the landing link. GA4's channel rules aren't case sensitive, so Audio works, but audio-ads or podcast does not.
- Visits land in Unassigned. No channel rule matched the source and medium. That usually means a medium other than audio, so fix the link before the next episode.
- Visits land in Direct. The redirect dropped the tags, or the listener typed your homepage. Retest the short address in a private window.
- The redirect stopped working. Shopify only redirects from URLs that are broken. If someone later creates a page or product at that path, the redirect stops firing.
- Code sales dwarf tagged visits. Expect it. A code is one word, while an address has to be typed letter by letter.
- A code keeps selling after the run ended. It has probably escaped to a coupon site. Set an end date and give the next run a fresh code.
- Shopify credits the show more than GA4 does. Shopify's marketing reports default to last non-direct click, which skips direct visits when it hands out credit. GA4 applies its own model, so compare trends, not totals.
What to do this week
- Create one redirect and test it. In Shopify, go to Content > Menus > View URL Redirects and add the first show's path. Pass: typing it in a private window lands on the tagged page with the tags intact. Fail: the tags vanish, so lean on the code and the campaign link until a redirect keeps them.
- Check that GA4 can see the channel. After your test visit, open Reports > Acquisition > Traffic acquisition and type Audio into the search above the table. Pass: an Audio row appears. Fail: your visit sits in Unassigned or Direct, so fix the medium or the redirect before the episode airs.
- Give the code an end date. In Discounts, open the show's code and click Set end date under Active dates. Pass: the code expires shortly after the last episode you booked. Fail: it never expires, and it keeps collecting credit long after the run.
Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework
Sources, 1 October 2026: URL builders: Collect campaign data with custom URLs (Google); Default channel group (Google); Understand (direct) / (none) traffic (Google); Traffic acquisition report (Google); Change and compare date ranges in reports (Google); About the search terms report (Google); Creating and managing URL redirects (Shopify); Creating campaigns (Shopify); Understanding Campaigns (Shopify); Amount off discounts (Shopify); Add order notes on your cart page (Shopify); Checkout Blocks app (Shopify); Annotations in your Shopify reports (Shopify); Sales reports (Shopify); Customers reports (Shopify); Setting and comparing time ranges for your reports (Shopify); Marketing reports (Shopify)
Related answers
Frequently asked questions
Can a Shopify URL redirect carry UTM parameters?
It can, but test it before the episode airs. Shopify warns that URLs with query strings might not work as expected with redirects, and GA4 says redirects can strip UTM parameters. Type the short address into a private window and check that the tags survive.How do I split podcast results by show in GA4?
Name each show in utm_campaign. Then open Reports, Acquisition, Traffic acquisition and switch the dimension drop-down from Session default channel group to Session campaign. Each show then gets its own row.Should each episode get its own code?
Usually one code per show is enough, as long as it has an end date. A new code per episode splits the same audience into smaller rows that are harder to read. Issue a fresh code when you book a new run with the show.
Go deeper: Causal attribution, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Keep reading
Terms in this article
- AnalyticsAnalytics is the systematic computational analysis of data. It reveals customer behavior and measures campaign performance.
- AttributionAttribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
- CausalityCausality is the relationship where one event directly causes another, essential for identifying specific actions that drive desired outcomes in marketing.
- Google AdsGoogle Ads is an online advertising platform where advertisers bid to display ads, service offerings, and product listings.
- IncrementalityIncrementality measures the true causal impact of a marketing campaign. It quantifies the additional conversions or revenue directly from that activity.
- Incrementality TestingIncrementality Testing measures the additional impact of a marketing campaign. It compares exposed and control groups to determine causal effect.
- PodcastA Podcast is a digital audio file available online for download. Brands use podcasts for content marketing and to establish thought leadership.
- UTM ParametersUTM Parameters are URL tags marketers use to track campaign effectiveness across traffic sources. They provide data for accurate campaign tracking and attribution in analytics platforms.