A founder's guide to UTM parameters that actually work

If you can't tell which channel, campaign, or ad generated a lead , you can't make good decisions about where to spend next. UTM parameters are the simplest way to fix that. Here's the exact system we use across every paid campaign we manage.

27 Apr 2026

Wilfred Vivek

Wilfred Vivek

CEO, Mrktrs

You run an ad. Someone clicks it. They fill out a form. Your CRM records a lead. But when you ask "which ad generated this lead?" , you get a shrug. The UTM parameters were missing, or broken, or inconsistent across campaigns. So you're making budget decisions based on total lead volume instead of lead-by-lead attribution. That's how you end up doubling down on the channel that feels right instead of the one that's actually working.

UTM parameters are small additions to your URLs that carry tracking data into your analytics. They cost nothing to implement. They take about an hour to set up properly the first time. And they're the difference between knowing which ads are working and guessing.

// what this guide covers

The five UTM parameters, what each one means, a naming convention that scales across channels, complete URL examples for ChatGPT Ads / Google Ads / LinkedIn / email, the six most common mistakes (with fixes), and where to find UTM data in GA4. By the end, you'll have a system you can use for every campaign going forward.

The five UTM parameters

There are five standard UTM parameters. Three are essential. Two are optional but recommended for paid campaigns.

// Table 01 · UTM parameter reference
ParameterRequired?What it tracksExample value
utm_sourceYesWhere the traffic came from (which platform or site)chatgpt / google / linkedin
utm_mediumYesThe type of marketing channelcpc / email / social
utm_campaignYesThe specific campaign name , your primary segmentation levercrm_adoption_apr2026
utm_contentRecommended for paidWhich specific ad, email, or varient generated the clickheadline_v1 / v2
utm_termGoogle Ads onlyWhich keyword triggered the ad (use {keyword} dynamic value){keyword}

The naming convention that scales

The biggest UTM problem at most B2B companies is not the implementation , it's the inconsistency. One person tags utm_source=ChatGPT, another uses utm_source=chatgpt, a third uses utm_source=chat-gpt. GA4 treats these as three different sources. Your data is fragmented.

Rule 1: Always lowercase

UTM values are case-sensitive in most analytics tools. Google and google will appear as two different sources. Pick lowercase for everything and enforce it.

Rule 2: Underscores, not spaces or hyphens

Spaces get URL-encoded as %20 and break readability. Hyphens create ambiguity (is google-ads one word or two?). Use underscores for compound values: google_ads, crm_adoption, may_2026.

The standard source/medium values we use

// Table 02 · Standard source and medium values
Channelutm_sourceutm_medium
ChatGPT Adschatgptcpc
Google Search Adsgooglecpc
Google Displaygoogledisplay
LinkedIn Adslinkedincpc
LinkedIn organiclinkedinsocial
Newsletter / emailnewsletteremail
Cold outreach emailoutreachemail
Partner referralpartner_[name]referral

Campaign naming structure

Use this format for utm_campaign: [topic]_[funnel_stage]_[mmyyyy]. This gives you three layers of segmentation in a single field.

  • Topic: the ad theme or product area being promoted (crm_adoption, pipeline_visibility, itsm_speed)
  • Funnel stage: where in the buyer journey this campaign targets (awareness, consideration, conversion)
  • Date: the month it launched, so you can track performance over time (apr2026, may2026)

Example: crm_adoption_conversion_may2026 , a bottom-funnel campaign targeting CRM adoption pain points, launched in May 2026.

Complete UTM URLs by channel

ChatGPT Ads

// ChatGPT Ad URL · CRM adoption theme
https://yourcrm.com/lp/crm-adoption?utm_source=chatgpt&utm_medium=cpc&utm_campaign=crm_adoption_conversion_may2026&utm_content=headline_stop_chasing_v1

Google Ads (with dynamic keyword insertion)

// Google Search Ad URL · keyword dynamically inserted
https://yourcrm.com/lp/crm-software?utm_source=google&utm_medium=cpc&utm_campaign=crm_general_consideration_may2026&utm_term={keyword}&utm_content=rsa_v2

LinkedIn Ads

// LinkedIn Sponsored Content URL
https://yourcrm.com/lp/pipeline?utm_source=linkedin&utm_medium=cpc&utm_campaign=pipeline_visibility_awareness_may2026&utm_content=vp_sales_audience_v1

Email newsletter

// Newsletter CTA link
https://yourcrm.com/blog/chatgpt-ads-guide?utm_source=newsletter&utm_medium=email&utm_campaign=weekly_teardown_may2026&utm_content=cta_primary

The six most common UTM mistakes

These are the exact mistakes we find when auditing paid campaigns for new clients. Each one causes data loss or data corruption.

<strong>Mistake 1: Mixed case.</strong> GA4 treats "Google" and "google" as different sources. Standardise lowercase across every person and channel, every time.

utm_source=Google&utm_source=google

utm_source=google (consistently)

<strong>Mistake 2: Spaces in values.</strong> Spaces encode as %20 in URLs, break GA4 grouping, and make reports hard to read. Use underscores instead.

utm_campaign=CRM Adoption Campaign May 2026

utm_campaign=crm_adoption_conversion_may2026

<strong>Mistake 3: Untagged email links.</strong> Email traffic without UTMs shows up as "direct" in GA4. You lose all visibility into which newsletters or outreach sequences drive web traffic and conversions.

Newsletter email links with no UTMs at all

Every link tagged: utm_source=newsletter&utm_medium=email&utm_campaign=[name]

<strong>Mistake 4: Wrong source naming for ChatGPT.</strong> Use a short, consistent, lowercase value. "chatgpt" is cleaner than "chatgpt_ads" or "openai" for cross-channel comparisons in GA4.

utm_source=ChatGPT%20Ads or utm_source=openai

utm_source=chatgpt

<strong>Mistake 5: Not using utm_content for varient tracking.</strong> If you're testing two ad headlines, you need different utm_content values to know which one drove conversions. Same campaign, different content.

Running 3 ad variants with the same utm_content value

utm_content=headline_v1, utm_content=headline_v2, utm_content=headline_v3

<strong>Mistake 6: Tagging internal links.</strong> If you add UTMs to links between your own pages, GA4 will reset the session source and misattribute the visit. UTMs are for external sources only.

Adding UTM parameters to internal page links

Only tag external sources , ads, emails, social posts, partner links

Finding UTM data in GA4

Once your UTMs are in place, here's where to find the data in Google Analytics 4.

Traffic Acquisition report

Go to Reports → Acquisition → Traffic Acquisition. By default, this shows sessions by channel. Change the primary dimension to "Session source / medium" to see your UTM sources broken out. This is where you'll see chatgpt / cpc, google / cpc, and linkedin / cpc as separate rows.

Campaign report

Go to Reports → Acquisition → Traffic Acquisition and change the primary dimension to "Session campaign." This shows you your utm_campaign values and their associated metrics , sessions, engaged sessions, conversions. Filter by source to see campaigns within a specific channel.

Content varient performance (Explorations)

The standard reports don't show utm_content by default. To analyse ad varient performance, go to Explore, create a free-form exploration, and add "Session manual ad content" as a dimension. This is where you'll see whether headline_v1 or headline_v2 drove more conversions.

UTM parameters don't improve your marketing. They tell you which parts of your marketing are already working , so you can stop guessing and start repeating.

The UTM template to use right now

Copy this and fill it in before launching any new campaign. Every link in that campaign should use these values consistently.

// UTM template structure
https://[your-domain]/[landing-page-path]
?utm_source=[chatgpt | google | linkedin | newsletter | outreach]
&utm_medium=[cpc | email | social | display]
&utm_campaign=[topic]_[awareness|consideration|conversion]_[mmyyyy]
&utm_content=[ad_name or variant_v1]
&utm_term={keyword} [Google Ads only]

Keep this in a shared doc or spreadsheet so every person who launches a campaign uses the same naming convention. One person using "chatgpt" and another using "ChatGPT_Ads" costs you weeks of clean data.

// the 15-minute implementation plan

1. Create a UTM naming doc with your approved source, medium, and campaign naming rules. 2. Audit your three most recent campaigns , are UTMs present? Correct? Consistent? 3. Go to GA4 Traffic Acquisition and verify "chatgpt / cpc" and "google / cpc" appear as distinct rows. If they don't, your tagging is broken. Fix it before spending another dollar on ads.

Written from real campaign data, April 2026.