How to add UTM tracking to cold email campaigns

UTM tracking adds a short label to the end of every link in a campaign's emails, so the visits those emails produce show up in your website analytics as their own clearly-named source instead of anonymous traffic. You switch it on per campaign, fill in a few boxes once, and every link in every email of that campaign is tagged for you from then on.

What a UTM tag actually is:

A UTM tag is nothing more than a little extra text on the end of a web address. If your email links to https://acme.com/pricing, the tagged version looks like this:

https://acme.com/pricing?utm_source=warmysender&utm_medium=email&utm_campaign=q3-agencies

The page your prospect lands on is exactly the same. Your website ignores the extra text; your analytics tool reads it. Google Analytics and virtually every other analytics tool recognise these names, so instead of that visitor being filed under 'Direct' with no explanation, you can see they arrived from your q3-agencies cold email campaign — and follow them through to a signup, a booked call or a sale.

Why tag centrally instead of by hand:

You can always paste a tagged link into an email yourself, and plenty of people start that way. It stops scaling quickly:

Tagging centrally means you describe the campaign once. Every link the campaign sends — including links you add to a step later, and links inside follow-ups — carries the same tags, spelled the same way.

Where to find it:

Open the campaign, go to Sending Settings, and scroll to the Tracking section. Under 'Track opens' and 'Track link clicks' you will see 'UTM tracking'. Switch it on and the fields appear.

The fields, and what to put in them:

Only Source, Medium and Campaign matter for most campaigns. Anything you leave empty is simply left off the links — nothing is invented for you, with the single exception of the campaign name filling in a blank Campaign box.

Step by step:

  1. Open the campaign you want to tag and go to Sending Settings.
  2. Scroll to the Tracking section.
  3. Switch 'UTM tracking' on. It is off by default on every campaign, so nothing changes anywhere until you do this.
  4. Fill in Source and Medium — for example warmysender and email.
  5. Leave Campaign blank to use the campaign's own name, or type the name you would rather see in your reports.
  6. Open 'Advanced' and add Term or Content only if you have a real use for them.
  7. Save. Every email the campaign sends from that moment on carries the tags.

Worked example:

Campaign name: Q3 Outbound — Agencies. In the Tracking section you set Source to warmysender, Medium to email, leave Campaign blank, and under Advanced set Content to step-1.

A link in your first email written as https://acme.com/pricing goes out as:
https://acme.com/pricing?utm_source=warmysender&utm_medium=email&utm_campaign=q3-outbound-agencies&utm_content=step-1

The prospect clicks it, lands on your pricing page as normal, and your analytics records the visit under warmysender / email, campaign q3-outbound-agencies.

Links you tagged yourself are never overwritten:

This is the rule worth remembering. If a link in your email already carries a tag of its own, that tag stays exactly as you wrote it. Say one link in the sequence points at https://acme.com/demo?utm_campaign=webinar-followup because you deliberately want those clicks reported under a different campaign — that link keeps utm_campaign=webinar-followup, and only the tags it was missing (source, medium) are filled in. Your deliberate choice always wins over the campaign-wide default, so switching this feature on can never quietly rewrite attribution you set up on purpose.

It works whether or not click tracking is on:

UTM tagging and 'Track link clicks' are two independent switches that do different jobs. Click tracking tells YOU, inside WarmySender, that a prospect clicked. UTM tags tell YOUR analytics tool where a visitor came from. You can run either, both, or neither.
• Both on: the click is recorded in WarmySender and the prospect arrives at the tagged address, so it shows up in your analytics too.
• UTM tagging on, click tracking off: links go straight to your site, untouched apart from the tags. Your analytics still sees the campaign; WarmySender simply does not count the click.

What does not get tagged:

Only ordinary web links (http and https) are tagged. Your unsubscribe link is deliberately left alone, and so are email addresses, phone numbers and in-email jump links. Nothing you have to think about — it just means your opt-out link never picks up marketing tags.

Use plain, fixed text — not merge tags:

The values here describe the campaign, not the person, so personalisation tags like {{firstName}} do not belong in them and will not be filled in. A value containing one is left off the links entirely rather than sent out with the raw text showing. There is a good reason beyond tidiness: a per-person value would create thousands of one-off entries in your analytics reports and make the campaign impossible to total up — which is the opposite of what UTMs are for. Keep values short, plain and the same for the whole campaign.

How to read the results in Google Analytics 4:

  1. Go to Reports > Acquisition > Traffic acquisition.
  2. Change the dimension dropdown at the top of the table from 'Session default channel group' to 'Session source / medium'. Your campaign traffic appears as a row reading warmysender / email.
  3. For the per-campaign breakdown, switch that dropdown to 'Session campaign' — you will see q3-outbound-agencies and any other campaigns you have tagged.
  4. To go further, use Explore > Blank (Free form): add Session source, Session medium and Session campaign as rows, and Sessions plus your key events (signups, purchases) as values. That gives you a single table showing how many people each campaign brought and how many of them converted.

A quick way to check it is working: switch tagging on, send yourself a test email from that campaign, click a link in it, then open Reports > Realtime in GA4. Your own visit should appear against the source you configured within a minute or so. Ordinary reports are not instant — allow up to a day before judging the numbers.

Naming conventions worth adopting on day one:

Good to know:

Frequently asked questions:

Do I need click tracking switched on for UTM tagging to work?
No. They are independent. UTM tags are added whether 'Track link clicks' is on or off — with it off, links go straight to your site and still carry their tags.

What happens if I leave the Campaign box blank?
WarmySender uses the campaign's own name, tidied into a web-safe form (lowercase, spaces and punctuation turned into hyphens). 'Q3 Outbound — Agencies' becomes q3-outbound-agencies. Type your own value any time you want the reporting name to differ.

Will this overwrite tags I already put on a link myself?
Never. A tag you wrote on a specific link is kept exactly as-is, and only the tags that link was missing are added.

Can I use {{firstName}} or other personalisation tags in the values?
No. These values describe the campaign rather than the person, so a value containing a personalisation tag is left off the links rather than sent out raw. Per-person values would also fragment your analytics into thousands of unusable one-off entries.

Does switching it on change my past emails or past analytics?
No. Only emails sent after you save are tagged, and your existing reports stay exactly as they are.

Is my unsubscribe link tagged too?
No. Unsubscribe links are deliberately left alone, as are email addresses and phone numbers in your message. Only ordinary web links are tagged.

Where do I actually see the results?
In your own analytics tool, not in WarmySender. In Google Analytics 4: Reports > Acquisition > Traffic acquisition, then switch the dimension dropdown to 'Session source / medium' or 'Session campaign'.

Do I have to set this up on every campaign?
Yes — it is a per-campaign setting, which is the point: it is how each campaign gets its own name in your reports. Duplicating a campaign carries the settings over, which is the quickest way to reuse a setup you like.

Will UTM tags hurt my deliverability?
UTM parameters are standard on marketing links across the whole internet and are not a spam signal in themselves. Keep the values short and plain, as you would anywhere else.

What if I only fill in some of the fields?
Only what you filled in is added. Empty fields are simply left off — nothing is guessed on your behalf, apart from a blank Campaign box falling back to the campaign name.

Related reading: see who opened and clicked at /documentation/see-who-opened-your-emails, and personalisation tags for your message text (a different thing entirely) at /documentation/merge-tags.

Still stuck? Contact us at [email protected] with the campaign name. For instant answers, you can also open warmysender.com/documentation, click 'Copy Prompt to Clipboard,' and paste it into an AI assistant like Claude or ChatGPT along with your question — for example: 'In WarmySender, how do I make one campaign's clicks show up under their own campaign name in Google Analytics, without changing links I already tagged myself?'

Related guides in Campaigns

Back to all documentation | Contact support