Where UTM tags fall short for events
UTM tags are text added to the end of a link: utm_source, utm_medium, utm_campaign. Google's URL builder help describes them as the way to see which campaigns send traffic, and they're the standard for good reason. But events spread in ways links with tags don't survive:
- People share the clean link. A registrant copies the URL from the address bar, or from the event page's own share button, and the tags are gone.
- People talk. A speaker mentions the event on a podcast; a colleague says "you should go to this" at lunch. No link, no tag.
- Print and slides. A QR code on a poster with a long tagged URL makes a dense code that's harder to scan, and can't be changed after printing.
- Tags get mistyped. Google's help notes that values are case-sensitive:
utm_source=LinkedInandutm_source=linkedinare reported as two sources. - Embedded forms may drop them, if the page doesn't pass them through to the registration.
The result is the same: registrations land as "direct" or "unknown", and the sources that grew by word of mouth (often the best ones) are invisible.
What's actually stripped, and what isn't
There's a common worry that privacy features now remove UTM tags. It's mostly about something else. Apple's Link Tracking Protection, introduced with iOS 17, removes "extra information" that "some websites add … to their URLs in order to track users across other websites" from links shared in Messages and Mail, and in Safari Private Browsing. That targets identifiers for individual people, such as ad click IDs.
Campaign tags that name a source, not a person, appear to be left alone: Validity, an email deliverability company, concluded that UTM parameters, "which don't contain user identifiers", appear to be unaffected. So privacy tools aren't the main reason tags go missing. People and copy-paste are.
Ways in: put the source in the thing itself
A way in is any route into registration that carries its own source, because the source is part of the address rather than a tag on it. There's nothing to strip and nothing to mistype.
| Way in | The source is… | Catches |
|---|---|---|
| A short link per channel or person | The link itself (/q/priya) | Copy-paste, chats, newsletters, podcasts read aloud |
| A QR code per placement | The short link inside it | Posters, slides, flyers, badges |
| A personal invite link | The invitation | People you invite one by one |
| A registrant's own share link | The person who shared it | Word of mouth, "bring a colleague" |
| A registration email address | The address written to | People who'd rather send an email than fill a form |
| A discount code per partner | The code typed at checkout | Paid events, partner promotions |
| "How did you hear about this?" | The person's own answer | Conversations, the things nothing else can see |
Short links are the workhorse. "programmable.talk/q/priya" is short enough to say on a podcast, survives being pasted anywhere, and makes a QR code that scans from the back of a room. Each one is counted as its own source, however it travels.
How to set it up
- List every place you'll promote: each newsletter, each speaker, each partner, each poster, each paid campaign.
- Give each one a way in: a short link for channels and people, a QR code for each printed placement, a code for each partner of a paid event.
- Add one optional question at registration: "How did you hear about this?"
- Count per way in: registrations, and then attendance. A source that brings many registrants who don't come is worth less than it looks.
Our guide to tracking where registrations come from has a tracking sheet you can copy.
Where UTM tags are still the right tool
This isn't an argument against UTM tags. They're the right choice in several places:
- Paid ads. Ad platforms and analytics tools are built around them, and nobody copies a link out of an ad.
- Your own newsletters and emails, where you control the link and readers click rather than copy.
- Reporting across your whole site. If your marketing team reports everything in Google Analytics, tags put the event in the same reports as everything else.
- When the registration tool stores them. If tags are read on the page and kept with each registration, they cost nothing to add.
Use both. Put UTM tags on links you control and send in bulk, and give ways in to the people, places and conversations that tags can't follow. Keep the tag values tidy and from a fixed list: Google's help points out that a different capital letter makes a different source.
Doing this without following people around
None of this needs tracking people. Ways in count how many registrations came through each route, not what any individual did on the way. You don't need tracking pixels, rewritten links or cookies across sites to learn which poster worked: a person chose to register, and the record says how they got there.
Doing this in Programmable Talk
Every way in (a page link, a short link with a QR code, a share card, a personal invite, a registrant's own share link, a speaker's or partner's kit, an email address people register by writing to, a webhook from Zapier or LinkedIn) carries its own code, and every registration records which one it came through. UTM tags on links are kept too, and can even be written into a registration email address. For paid events on Eventbrite or Luma you can tie a discount code to a way in. The Promote tab shows visits, scans, registrations and attendance per way in, as counts; scans keep no IP address. CRM exports carry the source to HubSpot or Salesforce.