UTM Parameters: A Practical Guide for Paid Ads
UTM tags are the cheapest measurement upgrade you can make. Here is a naming system that stays clean, templates for each ad platform, and the errors that quietly ruin your data.
UTM parameters are five small tags you add to the end of a URL. They cost nothing, take seconds to add, and tell your analytics tool exactly where each visitor came from. Yet most ad accounts are full of missing tags, inconsistent capitalization and campaign names nobody can decode six months later.
This guide gives you a naming convention you can adopt today, ready-to-use templates for the major ad platforms including ChatGPT ads, and a checklist of the mistakes that quietly break reports.
What UTM parameters are
A UTM-tagged URL looks like this:
https://example.com/kit?utm_source=meta&utm_medium=paid_social&utm_campaign=spring_kit_launch&utm_content=ugc_video_01Everything after the ? is a query string. Analytics tools such as Google Analytics read these tags and attribute the session accordingly. The name comes from Urchin, the analytics company Google acquired in 2005, but every major analytics platform supports them.
The five parameters
| Parameter | Answers | Example values | Required? |
|---|---|---|---|
utm_source | Which site or platform sent the visit? | meta, google, chatgpt, newsletter | Yes |
utm_medium | What type of channel? | paid_social, cpc, paid_ai, email | Yes |
utm_campaign | Which campaign or promotion? | spring_kit_launch | Yes |
utm_content | Which ad or creative? | ugc_video_01, card_gift_angle | Recommended |
utm_term | Which keyword or targeting? | running_shoes, broad | Optional |
Source, medium and campaign are the core. Content is what lets you compare individual ads, so for paid media treat it as required too.
A naming convention that stays clean
The value of UTMs comes from consistency. "Facebook", "facebook", "fb" and "meta" will show up as four separate sources in your reports. Set rules once and enforce them.
Rules to adopt
- Lowercase everything. Most analytics tools treat
Metaandmetaas different values. - Use underscores, not spaces. Spaces turn into
%20and look messy. - Keep a fixed list of sources and mediums. Write them down and only use those.
- Make campaign names readable. A good pattern is
product_or_offer_goal_date, for examplekit_prospecting_2026q2. - Use content to identify the creative. Include the angle or format so you can analyze without opening the ad, for example
gift_angle_static_01. - Never put personal data in UTMs. No email addresses or names; they end up in analytics and logs.
A source and medium list to start from
| Channel | utm_source | utm_medium |
|---|---|---|
| Facebook and Instagram ads | meta | paid_social |
| Google Search ads | cpc | |
| Google Shopping / Performance Max | paid_shopping | |
| TikTok ads | tiktok | paid_social |
| ChatGPT ads | chatgpt | paid_ai |
| Pinterest ads | paid_social | |
| Email newsletters | klaviyo (or your ESP) | |
| Influencers | creator name | influencer |
| Affiliates | partner name | affiliate |
Some analytics tools group traffic into default channels based on medium, so check how your tool categorizes values like paid_ai and create a custom channel group if needed. Otherwise ChatGPT ad clicks may land in an "Unassigned" bucket.
Platform templates
Most ad platforms support dynamic parameters, which fill in campaign or ad names automatically. That saves time and prevents typos, but check what each platform supports before relying on it.
Meta ads
Meta lets you add URL parameters at the ad level, with dynamic values for campaign, ad set and ad names. A common template:
utm_source=meta&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}If you use dynamic names, your ad names in Meta need to follow the same naming rules, because they will flow straight into analytics.
Google Ads
Google Ads auto-tagging with the gclid parameter handles Google Analytics attribution natively, so many advertisers use auto-tagging for GA and add manual UTMs only for other analytics tools. If you do add them, use a tracking template at the account level.
ChatGPT ads
Each ChatGPT chat card has a landing URL, and that is where your UTMs go. Because the channel is new, the safest approach is to write static UTMs per ad rather than relying on dynamic values. Check OpenAI's current Ads Manager documentation for any macro support. A template:
https://example.com/desk-mat?utm_source=chatgpt&utm_medium=paid_ai&utm_campaign=deskmat_launch_2026q3&utm_content=back_pain_angle_01Tagging ChatGPT ads separately matters more than usual. Attribution for AI channels is still maturing, and many buyers who see a chat card come back later through another route. Clean UTMs at least ensure every direct click is credited correctly. Our guide to attribution for AI channels covers what to do about the rest.
Use the free UTM builder to generate consistent tagged links for any platform.
Using utm_content to learn about messages
The most underused parameter is utm_content. If you name each ad by its angle, you can analyze performance by message across platforms, not just by individual ad.
Say you test three angles for a pet supplement brand on both Meta and ChatGPT ads:
joint_mobility_anglevet_formulated_anglepicky_eater_angle
Name every ad with one of those prefixes plus a format and number, like joint_mobility_angle_static_02. In your analytics tool, filter by content containing the angle. Now you can see whether one message wins everywhere or only on one platform. That insight is far more valuable than knowing ad 47 beat ad 52. For more on testing angles, see 35 ad angle ideas.
Common mistakes that break reports
Inconsistent capitalization and spelling
Meta, meta and facebook fragment one source into three. Lowercase rules and a fixed list prevent this.
Tagging internal links
Never put UTMs on links within your own site, such as a homepage banner linking to a product page. Doing so starts a new session attributed to that fake source and overwrites the real one.
Redirects that strip parameters
Some link shorteners, landing page tools or redirects drop query strings. Click every tagged link before launching and confirm the UTMs survive to the final page.
Forgetting the landing page has its own query string
If your landing URL already contains a ?, add UTMs with & instead of a second ?. Two question marks will break the parameters.
Mismatched campaign names across tools
If Ads Manager calls it "Spring Launch" and your UTMs say spring_kit_launch, reconciling costs with sessions becomes manual work. Keep a shared naming document.
Relying on UTMs alone
UTMs only describe the click. They do not capture view-through impact, cross-device journeys or people who return later by typing your URL. Combine UTM data with platform pixels, server-side conversion tracking and blended metrics like MER. Our article on ROAS vs MER vs CAC explains how these fit together.
A pre-launch UTM checklist
Run through this before every campaign goes live:
- Source and medium come from your approved list.
- All values are lowercase with underscores.
- Campaign name matches the naming document.
- Every ad has a unique content value that includes its angle.
- The landing URL loads correctly with parameters attached.
- Parameters survive any redirects.
- No personal data in any parameter.
- The landing page matches what the ad promises.
That last point is not strictly a UTM issue, but it is the most common reason tagged traffic fails to convert. Our guide to landing page message match covers it.
How SecondWin handles tracking for ChatGPT ads
When SecondWin launches ChatGPT ads for you, each ad gets a landing link, and campaigns run in your own OpenAI ad account alongside OpenAI's pixel and Conversions API. You keep full access to the account and your analytics, so you can see exactly what ChatGPT traffic does on your site. Plans and what each includes are on our pricing page.
To see which buyer questions and ad angles we would test for your store, start with a free website analysis.
FAQ
Do UTM parameters affect SEO?
UTM parameters on ad links generally have no effect on organic rankings, because they are used on paid traffic rather than on links search engines rely on. To be safe, make sure your pages use a canonical tag pointing to the clean URL so any tagged versions that get shared or indexed consolidate to the main page. Never add UTMs to internal links on your own site.
What utm_medium should I use for ChatGPT ads?
There is no official standard yet. A clear, consistent option is utm_source=chatgpt with utm_medium=paid_ai or cpc. Using a distinct medium makes it easy to separate paid ChatGPT traffic from organic referrals that come from people clicking links in ChatGPT answers. Whatever you pick, document it and check how your analytics tool groups it into channels.
Are UTM parameters case sensitive?
In most analytics tools, yes. Google Analytics, for example, treats Meta and meta as different values, which splits your data into separate rows. The simplest fix is a strict rule that every UTM value is lowercase. If your historical data is already inconsistent, many tools let you create filters or custom channel groups to clean it up retroactively.
Should I use UTMs if the ad platform already tracks conversions?
Yes. Platform tracking tells you what that platform believes it drove, using its own attribution rules. UTMs feed your independent analytics tool, which applies the same rules to every channel and lets you compare them side by side. Using both gives you a cross-check, and differences between them are often the most revealing part of your reporting.