Promo Code Attribution: How It Works and When to Use It
Promo code attribution is the oldest form of creator attribution — it predates the internet. Radio advertisers were using unique coupon codes in the 1950s to measure which stations drove sales.
In 2025, it's still one of the most reliable signals you can use for podcast attribution. Here's why, and exactly how to use it correctly.
Why Promo Codes Work So Well
Unlike tracking links, promo codes don't require the listener to do anything digitally before purchasing. They just need to remember three to five characters at checkout.
This means promo code attribution captures:
- Listeners who heard the ad but never clicked any link
- Listeners who typed a URL but converted on a different device
- Listeners who bought days or weeks after the ad without any prior digital interaction
- Listeners in any country, on any device, in any browser
The one requirement is that the customer actively uses the code. Buyers who heard the ad and intended to use the code but forgot to enter it at checkout aren't captured.
How the Matching Works
When a customer places an order and uses a promo code, your ecommerce platform records the order with the code attached. Castlytics then matches that code against the campaigns in your workspace.
The matching is:
- Case-insensitive.
PODS15andpods15are treated identically. - Exact match. The full code must match a campaign's registered code.
- Deduplicated. If a customer both clicked the tracking link and used the promo code, they're counted once — the link click takes precedence (last-touch), and the promo code is used as a fallback only when no link or path attribution exists.
This deduplication is critical. Without it, brands would double-count customers who both clicked a link and used a promo code — inflating their attributed revenue and making campaigns look better than they are.
Setting Up Promo Code Attribution
Step 1: Create a unique code per campaign
Every campaign must have its own unique promo code. This is non-negotiable.
Good: LEVER25 for The Leverage Pod, FOUND20 for Founders Podcast
Bad: PODS15 shared across three different shows
If two campaigns share a code, you can't tell which show drove any individual sale. The attribution data becomes worthless.
Code naming conventions that work well:
- Host-based:
TIM20,ALEX15 - Show abbreviation:
FOUND15,HOW10 - Campaign-specific:
LEVER_Q1,SAASP25
Avoid codes that could accidentally match something on your store (like a general discount code you run across all channels).
Step 2: Register the code in Castlytics
When creating a campaign, enter your promo code in the "Promo Code" field. Castlytics will then match incoming conversions with that code to the campaign.
Step 3: Connect your promo code data source
Castlytics needs to receive order data including promo codes. There are two ways this happens:
Shopify integration: Connect your Shopify store in Settings → Integrations. Orders sync automatically, including all promo code data. This is the recommended approach for Shopify stores.
Webhook/API: For other platforms, send order data to the Castlytics conversions endpoint when a purchase is completed. Include the promo code in the request.
Client-side conversion event: If you fire a conversion event client-side on your order confirmation page, include the promo code:
castlytics.conversion({
type: 'purchase',
revenue: 99.00,
currency: 'USD',
promoCode: 'LEVER25' // include the actual code used
});
Step 4: Verify matching
After setup, test with a real order using your campaign promo code. Check your Castlytics campaign dashboard to confirm the conversion appears under "Promo Conversions".
Promo Codes vs. Tracking Links: Understanding the Difference
| Signal | What It Captures | Requires | Reliability | |---|---|---|---| | Tracking link | Show notes clicks → conversions | Same-device session | Good for same-device buyers | | Vanity path | Direct URL navigation | URL typed or remembered | Captures URL typers | | Promo code | Any purchase with the code | Code entered at checkout | Very high — explicit intent |
Promo codes are the most reliable because they require an explicit action from the customer. There's no ambiguity: if someone used code LEVER25, they were told about that code by the campaign it belongs to.
This is also why promo codes are the most important fallback signal. When link and path attribution can't connect a conversion to a campaign, the promo code often can.
When to Use Promo Codes
Always, when running podcast ads with a discount offer. If you're willing to give listeners a discount, there's no reason not to make it campaign-specific.
For "free trial" or "bonus" offers. Promo codes aren't just for discounts. They can unlock free shipping, a free trial extension, a bonus product. Any offer that requires a code at checkout creates an attribution signal.
When your audience is likely to switch devices. If your listeners are mobile but your store converts better on desktop, promo codes are essential for capturing cross-device attribution.
For longer-tail conversions. Promo codes capture buyers who converted 60, 90, even 180 days after the ad. No attribution window setting is needed — the code-to-campaign match is permanent.
When Promo Codes Have Limitations
When your brand doesn't offer discounts. Some luxury brands or premium products avoid discounting as a policy. In this case, promo codes for attribution don't work well — "use code PODS for... no discount" isn't compelling.
When your audience is very online-native. For hyper-digitally-engaged audiences, link clicks are higher and promo code usage is relatively lower. You'll still get promo code attribution, but the signal is weaker relative to link attribution.
When promo codes are shared publicly. If your campaign promo code ends up posted in deal-sharing communities or affiliate sites, you'll start seeing promo code conversions that aren't podcast-driven. Monitor your promo code sources and investigate unusual spikes.
Combining Promo Codes with Other Signals
The most complete attribution setup uses all four signals with a clear hierarchy:
-
Last-touch link attribution takes priority. If a customer clicked the campaign tracking link within the attribution window, that takes precedence.
-
Vanity path attribution is second. If a customer was detected arriving via the vanity path but without a link click, path attribution applies.
-
Promo code is the fallback. If no link or path attribution exists, but the customer used the campaign promo code, promo code attribution applies.
-
Post-purchase survey as supplementary signal. Buyers who answer "How did you hear about us?" and cite the campaign provide an additional data point that can surface dark funnel conversions none of the first three signals captured.
This hierarchy prevents double-counting while ensuring that every attributable conversion gets credited.
With this setup, you capture:
- Same-device show notes clickers (link attribution)
- URL typers (vanity path attribution)
- Cross-device and delayed buyers (promo code attribution)
- Dark funnel buyers who left no digital trace (post-purchase survey)
The combination typically captures 2–3x more conversions than any single signal alone.
Measuring Promo Code Performance
In your Castlytics campaign dashboard, you'll see:
- Promo conversions: Number of orders that used the promo code (raw count)
- Promo revenue: Total revenue from promo code-attributed orders
- Total conversions: Combined last-touch + promo code fallback (deduplicated)
Compare "promo conversions" to "total conversions" to understand what proportion of your attribution is promo code-based. A healthy mix for most podcast campaigns is:
- 40–60% link attribution
- 20–30% promo code fallback
- 10–20% vanity path attribution
- 10–20% overlap/deduplication
If your promo code conversions are significantly higher than your link conversions, your show notes links may not be prominent enough — or your audience is less likely to engage with digital links (common for older demographics or less tech-savvy niches).
If your promo code conversions are near zero, either the code isn't being offered correctly in the ad, or your Shopify/webhook integration isn't passing the promo code data correctly.
The Bottom Line
Promo code attribution is the most robust single signal in podcast advertising because it requires no client-side tracking and captures behaviour that no cookie or visitor ID can detect.
The setup takes five minutes. The payoff is accurate attribution for every customer who heard your ad and decided to use the code you gave them — regardless of when, on what device, or via what path they eventually made their purchase.
Ready to track your podcast ad ROI?
Castlytics gives you per-campaign attribution, real-time ROI, and listener journey analytics — free to get started.
Start free — no credit card