UTM Tracking for Email Campaigns
Overview
Adding UTM parameters to email CTAs transforms a basic open-rate metric into granular engagement data. Instead of knowing only that someone opened an email, UTM tracking tells you which email, which campaign, and which link drove a click — including clicks that happen weeks or months after the original send.
The core principle: every outbound email should contain exactly one trackable link. This creates a meaningful signal that differentiates genuinely interested prospects (openers who click) from passive openers.
See also: [1] for how click data feeds into multi-channel follow-up logic.
Why One Link Per Email
- One link keeps emails clean, avoids spam filter triggers, and makes the CTA unambiguous.
- Zero links means opens are your only signal — you can't distinguish curiosity from intent.
- Multiple links risk deliverability issues and dilute the tracking signal.
Keep the link subtle: hyperlink a single relevant word rather than using a button or "click here" language. Readers recognize hyperlinked text as a link without feeling sold to.
Step-by-Step Process
1. Choose a Destination URL
Pick a destination that adds value for the prospect:
- A relevant blog post or article
- A sitemap category page (e.g.,
asymmetric.pro/sitemap) that groups related articles by topic — useful when you want to offer a range of content rather than a single piece - A contact form or meeting booking link
Tip: Use Claude AI to analyze prospect context and suggest the most relevant blog content. Provide Claude with the prospect's industry/role and ask which articles are the best fit. See [2].
2. Build the UTM-Tagged URL
Go to Google Campaign URL Builder (search "Campaign URL Builder" — bookmark the Google result).
Paste your destination URL, then fill in the parameters:
| Field | Value | Notes |
|---|---|---|
| Campaign Source | email |
The channel delivering the message |
| Campaign Medium | intro_campaign or email_1, email_2, etc. |
Identifies the specific email in the sequence |
| Campaign Name | intro (or your campaign label) |
Groups all emails in a campaign together |
| Campaign Content | email_4 (optional) |
Useful for distinguishing individual sends within a medium |
The builder generates a long URL with all parameters appended as query strings.
3. Shorten with Bitly
The raw UTM URL is too long to embed cleanly. Paste it into Bitly to generate a short link.
- Asymmetric maintains a company Bitly account — use this rather than a personal free account so all links are tracked centrally.
- The shortened link preserves all UTM parameters when clicked.
4. Embed in the Email
Highlight a single relevant word in your email body, apply the Bitly link as a hyperlink, and save. Do not paste the raw URL as visible text.
Example placement:
"Given what you're working on, I thought this article might be worth a look."
What the Data Tells You
Once clicks start coming in, Google Analytics (or your CRM) will surface:
| Condition | Meaning |
|---|---|
| No open, no click | Email not seen — adjust subject line or timing |
| Open, no click | Aware but not engaged enough to act |
| Open + click, no reply | High interest — prioritize in follow-up |
| Open + click + reply | Fully engaged — move to active pipeline |
These conditions map directly to the conditional logic in your follow-up sequence. See [1].
Deliverability Notes
- One link per email does not harm deliverability.
- HTML-heavy emails, images, and multiple links increase spam risk.
- Some corporate firewalls will block or pre-click links — this can inflate click counts or suppress them. Nothing can be done about this; treat it as noise in the data.
- Bitly links are generally safe; they are widely recognized and do not trigger filters.
UTM Parameter Reference
utm_source=email
utm_medium=intro_campaign
utm_campaign=intro
utm_content=email_4
Full example (before shortening):
https://asymmetric.pro/blog/some-article?utm_source=email&utm_medium=intro_campaign&utm_campaign=intro&utm_content=email_4
Related
- [1] — 3-email + LinkedIn sequence that uses click data for conditional branching
- [3] — A/B testing title vs. no title in email signature
- [2] — Using Claude to select blog content and review email drafts
- [4] — Source meeting where this process was established