Brandwave
Creator marketing measurement

How to Track Influencer Sales with Promo Codes and UTM Links in GA4

To track influencer sales in GA4, give each creator a unique promo code and a UTM-tagged link. Tag links with utm_source, utm_medium, utm_campaign, and utm_content, and send the coupon parameter on your purchase event so GA4's coupon dimension populates. This guide covers the full setup, where the data appears in GA4, and how to connect each code and link back to the creator or campaign behind it.

The Brandwave team

Published Last updated 11 min read

On this page
  1. Why creator sales end up credited to organic search
  2. What is UTM tracking?
  3. How to create UTM tracking links
  4. How to set up promo code tracking in GA4
  5. Where the data shows up in GA4
  6. Connect each signal back to the marketing behind it
  7. Troubleshooting checklist
  8. FAQ

What is UTM tracking?

UTM parameters are five query-string fields that Google Analytics reads from any URL a visitor arrives on. UTM stands for Urchin Tracking Module, named after Urchin, the analytics product Google acquired in 2005. Add the parameters to a link and every session that starts from it carries the values you set.

utm_source

What it records
Where the traffic came from
Creator marketing example
instagram, youtube, the-daily-podcast

utm_medium

What it records
The type of channel
Creator marketing example
social, podcast, print, qr

utm_campaign

What it records
The initiative the link belongs to
Creator marketing example
summer-launch

utm_content

What it records
The specific creator or placement
Creator marketing example
maya-rivers-reel-2

utm_term

What it records
Paid search keyword (rarely needed here)
Creator marketing example
usually left empty

GA4 exposes these as session-scoped dimensions such as "Session manual source" and "Session manual ad content". For creator and partner marketing, utm_content is usually where the individual creator or placement lives. Source, medium, and campaign are usually shared across a wider initiative. Ideally, try to be as detailed as possible with these fields because in the long term you'll end up with richer data for analysis.

How to set up promo code tracking in GA4

GA4 has a dedicated coupon dimension called "Order coupon" (orderCoupon in the API), and this sometimes trips people up because it stays empty by default. It only populates when your purchase event includes the coupon parameter. If your reports show "(not set)" for every order, check if the coupon parameter is missing from the event.

A purchase event that feeds the coupon dimension looks like this:

gtag('event', 'purchase', { transaction_id: 'T1023', value: 64.00, currency: 'USD', coupon: 'MAYA20', items: [...] })

Where that parameter comes from depends on your tech stack. Most plugins, like Shopify's plugin for Google and Youtube, and Woocommerce's GA4 plugin, send the redeemed discount code automatically. If you have a custom checkout, you'll need a developer to add coupon to the purchase event. Whichever applies to you, verify it the same way by placing a test order with a code applied, opening GA4's DebugView, selecting the purchase event, and confirming the coupon parameter carries the code.

The next step is to make the discount codes themselves attributable. SAVE20 handed to eight creators tells you nothing about any of them. One code per creator, ideally their name or handle (MAYA20), gives the creator something natural to share with their audience and gives you a clean per-partner row in the data. Keep those codes out of your email blasts and paid ads, because the moment a code finds its way onto a coupon aggregator site, its redemptions become less inaccurate for attribution.

Where the data shows up in GA4

Tagged link sessions appear under Reports → Acquisition → Traffic acquisition. The default view groups sessions by channel, so switch the primary dimension to "Session source / medium" and add "Session manual ad content" as a secondary dimension to see individual utm_content values. Redeemed codes appear under Reports → Monetization → Ecommerce purchases with "Order coupon" as the dimension.

Two things to know when reading these reports. GA4 has cardinality limits, so once a report exceeds them, low-volume rows collapse into "(other)", which hits long-tail utm_content values first. And standard reports can lag by 24 to 48 hours, so DebugView and Realtime are the places to verify a fresh setup.

The bigger limitation is that GA4 attribution stops at the discount code or tracking link itself. It can show you that MAYA20 was redeemed 16 times and maya-rivers drove 422 sessions, but it doesn't know those two rows belong to the same person, what her posts cost, which campaign she was part of, or what else was live that week. Answering "was this partnership worth it?" means putting the data somewhere that holds the rest of your marketing picture.

Connect each signal back to the marketing behind it

This is the part Brandwave handles. Connect your GA4 property in Workspace settings → Integrations, then open Outcomes → How customers found you. The Promo codes and tagged links section lists the promo-code and tagged-link evidence recorded in GA4, with sessions, users and your chosen outcome events.

From there you map each signal to the creator, campaign, or activity that produced it. MAYA20 and maya-rivers both link to Maya's profile, so her code redemptions, link sessions, content performance, and costs sit in one place instead of three exports. Signals from a podcast sponsorship or a print run map to those activities the same way.

Mapped signals become one layer of evidence among several that help you to triangulate what is really happening in your marketing program. Brandwave shows them next to self-reported attribution and your GA4 success metrics, such as sign ups and purchases. So when a creator's discount code redemptions spike, you see a lift in "heard about you from a creator" survey answers, and get a lift in sign-ups, all over the same period of time, you can observe that pattern in one view and draw inferences and conclusions from a clearer picture. The influencer marketing measurement framework covers how this evidence layer fits with creators, activities, and costs, and your AI assistant can query all of it through the MCP server or the API.

Brandwave Codes and links table showing promo codes and tagged links, which creator or activity each is linked to, and their sessions, users and purchases
Link codes and tagged links to the relevant marketing activity, then review their sessions and outcomes.

Troubleshooting checklist

  • Coupon shows "(not set)": the purchase event is missing the coupon parameter. Fix the event; check a test order in DebugView.
  • Duplicate coupon rows like MAYA20 and maya20: GA4 stores codes as sent. Standardize casing at the checkout level, or group the variants when you map them in Brandwave.
  • Tagged link traffic shows as direct: a redirect or shortener is stripping the query string. Click the link and check the final URL still carries the UTMs.
  • UTM values landing under "(other)": you hit GA4's cardinality limits. Trim unused parameter variants and lean on fewer, more consistent values.
  • A creator's link works but the code doesn't (or vice versa): each signal travels a different path (links through sessions, codes through purchase events). Verify them independently.
  • Signals missing in Brandwave: confirm the connected GA4 property is the one receiving the traffic, then allow for GA4's reporting delay of up to 48 hours.

If you get stuck wiring any of this up, email hello (at) gobrandwave.com and one of the team will help you get the data flowing.

FAQ

Yes, when the checkout passes the redeemed code into your analytics. In GA4 that means the purchase event must include the coupon parameter, which populates the Order coupon dimension. Give each creator or placement a unique code and every redemption becomes attributable to them.

The purchase event is arriving without a coupon parameter. GA4 only fills the Order coupon dimension from that parameter, so add it to the event (Shopify's Google & YouTube channel plugins and most WooCommerce GA4 plugins do this automatically) and verify a test purchase in DebugView.

An affiliate link routes through an affiliate network that handles tracking and commission payouts, and the data lives in that network. A UTM link is a plain URL with parameters your own Google Analytics reads, with no network, no fees, and the data in your property. Many teams run UTMs on every partnership and reserve affiliate infrastructure for partners paid on commission.

Give each creator a unique promo code and a UTM-tagged link, with the creator identified in utm_content. GA4 records sessions from the link and redemptions of the code. Add a "How did you hear about us?" question at sign-up or checkout to catch the people who watched the content but arrived by searching.

Yes. Encode a tagged URL in the QR code, or print a short memorable URL that redirects to one. Anyone who scans or types it starts a session carrying your UTM values, which makes billboards, packaging, print ads, and event materials measurable in GA4.

Use utm_content. Source, medium, and campaign are usually shared across a whole initiative, so utm_content is the conventional slot for the individual creator or placement. Brandwave reads it the same way when it builds tagged-link signals from your GA4 data.

Sources

Get the next article by email

Drop us your email and we'll let you know when we publish a new article.

By continuing you'll get an email for each new article and occasional product news from Brandwave. Unsubscribe any time. Privacy

Creator with pink hair and a pink jacket

See which creators actually drive action

Connect promo codes, tagged links, creator activity, and campaign costs so every conversion has the marketing context behind it.