Skip to main content
Back to Glossary
AI Analytics· Track

UTM Parameters

UTM parameters are five standard URL query tags (utm_source, utm_medium, utm_campaign, utm_content, utm_term) that travel with a click from a tagged link to the destination site, where analytics tools like Google Analytics 4, HubSpot, and Salesforce read them and label the session with its channel of origin. They are the foundational mechanic underneath most marketing attribution, platform-agnostic, and work on every channel that lets you set a custom destination URL, including ChatGPT Ads.

ByKevin O'ConnellAlso known asUTM codes, UTM tags, tracking parameters, Urchin Tracking Module, campaign tagging parametersUpdatedMay 13, 2026
Keep reading

UTM parameters are five standard URL query tags (utm_source, utm_medium, utm_campaign, utm_content, utm_term) that travel with a click from a tagged link to the destination site, where analytics tools like Google Analytics 4, HubSpot, and Salesforce read them and label the session with its channel of origin. They are the foundational mechanic underneath most marketing attribution. UTMs are platform-agnostic, manually added by the marketer, and work on every channel that lets you set a custom destination URL, including ChatGPT Ads.

What are UTM parameters?

UTM parameters are small pieces of text appended to a URL after a question mark that tell analytics tools where a click came from. The acronym stands for Urchin Tracking Module, named after Urchin Software Corp, the web analytics company Google acquired in 2005 and rebuilt into Google Analytics. The tags were originally Urchin's convention for cross-channel campaign tracking; Google kept the syntax when it folded Urchin into the new Google Analytics product, and the convention has been the de facto industry standard for two decades.

A tagged URL looks like this: https://example.com/landing?utm_source=chatgpt&utm_medium=cpc&utm_campaign=q2-launch. The question mark separates the page path from the parameters; the ampersand separates one parameter from the next. When a visitor clicks, the tags travel with them into their browser, then into the analytics tool that reads the URL on page load, then into a permanent label on that session in the analytics database.

UTM parameters are distinct from auto-tagging, which is what ad platforms do automatically with their own click identifiers (Google Ads gclid, Microsoft Ads msclkid, Meta fbclid). Auto-tagging is platform-specific and captures granular click-level data; UTMs are platform-agnostic and capture campaign-level attribution that every analytics tool can read. Most teams use both.

The 5 standard UTM parameters

Five tags are universally recognized. Three are required for any clean attribution setup; two are optional.

utm_source (required) - the channel

The platform or origin of the traffic. Values are typically short channel names: chatgpt, google, linkedin, newsletter, partner-site. One value per channel; consistency across campaigns is what makes channel-level reporting possible.

utm_medium (required) - the type of traffic

The bucket the traffic belongs in: cpc for cost-per-click ads, email for email campaigns, social for organic social posts, referral for partner links, display for display advertising. Google Analytics 4's default channel grouping uses utm_medium values to auto-classify traffic into named channels (Paid Search, Email, Organic Social, Referral). Pick values that match GA4's defaults if you want automatic classification.

utm_campaign (required) - the campaign name

The specific campaign the click belongs to: q2-launch, black-friday-2026, aeo-playbook-promo. Naming conventions matter here. Kebab-case-lowercase is the durable default; UTM values are case-sensitive in most analytics tools, so Q2-Launch and q2-launch become two separate campaigns in your reports.

utm_content (optional) - the creative variant

The specific ad, link, or button within a campaign. Useful for A/B testing two creative variants of the same campaign: headline-a vs headline-b, banner-300x250 vs banner-728x90. Without utm_content, you cannot tell which creative drove which conversions.

utm_term (optional) - the keyword or audience

Originally used for paid-search keywords; today often repurposed for audience segments, context-hint clusters in ChatGPT Ads, or LinkedIn audience IDs. Optional but useful when keyword-level or audience-level reporting matters.

How UTM parameters work

The mechanics are simple. The marketer constructs a tagged URL, places it as the destination on an ad, link, email, or social post. A visitor clicks; the browser navigates to the destination; the destination page's analytics tag (Google Analytics 4, HubSpot tracking script, Salesforce Web-to-Lead form, etc.) reads the query string and records the parameter values as session-level attributes. The session is now labeled with its source, medium, and campaign. Downstream reports, dashboards, and attribution models can filter on those labels.

UTM parameters persist for the life of the session in most analytics tools and are written into the contact record in most CRMs the first time a tagged visitor converts. After the conversion, the labels become permanent on the contact and can be used for cohort analysis, channel-level ROAS calculations, or paid-channel optimization decisions.

Three platform behaviors are worth noting. Google Analytics 4 reads UTM parameters automatically and maps utm_medium values to default channels (cpc → Paid Search, email → Email, etc.). HubSpot captures UTM parameters as contact properties named hs_analytics_source and Original Source Drill-Downs 1 and 2; the first-touch UTM is stored on contact creation. Salesforce ingests UTMs through Web-to-Lead form forwarding or Pardot/Marketing Cloud Account Engagement tracking; the destination field depends on which Salesforce form layer captures the lead.

UTM parameters vs auto-tagging

Two distinct mechanisms accomplish overlapping but different goals.

Auto-tagging is when the ad platform itself appends a unique click identifier to every outbound click: gclid for Google Ads, msclkid for Microsoft Ads, fbclid for Meta, li_fat_id for LinkedIn, wbraid and gbraid for app-tracking on Google. The identifier resolves to detailed click-level data inside the ad platform's reporting and unlocks offline-conversion uploads (you can send a closed-won opportunity back into Google Ads with the gclid, and Google credits the right keyword). It does not appear in third-party analytics tools as a named channel by default.

UTM parameters are platform-agnostic and human-readable. They travel into Google Analytics 4, HubSpot, Salesforce, Mixpanel, Segment, Amplitude, or any other tool that reads URL query strings. They do not unlock platform-side optimization features (you cannot import an offline conversion against a UTM the way you can against a gclid), but they let cross-platform attribution work without per-tool integration setup.

Most mature paid-marketing programs use both: auto-tagging on the ad platform's click for bid optimization and offline-conversion import, plus UTMs on the same destination URL for cross-platform reporting. The two coexist on the URL; nothing breaks when both are present. For platforms that have not yet shipped auto-tagging (ChatGPT Ads Manager Beta is one as of May 2026), UTMs are the only attribution layer available.

UTM parameters show up two different ways in the AI search era. Both use the same syntax; the responsibility for adding them differs.

Publisher-side (organic): AI platforms auto-append their own UTMs

Starting in 2025, ChatGPT began auto-appending utm_source=chatgpt.com to outbound citation links in its responses. Perplexity has experimented with similar tagging on some answer types. The parameter shows up in publishers' analytics as a clean signal that the visit came from an organic ChatGPT citation rather than a generic referral. This is the AI platform's auto-tagging on links it sends to publishers, not something the publisher controls. It partially closes the dark AI traffic blind spot for sites that previously saw AI referrals classified as (direct) / (none) in AI referral traffic reports.

Advertiser-side (paid): marketers tag their own destination URLs

Inside ChatGPT Ads Manager Beta, advertisers add UTM parameters to the destination URL of their ad the same way they would for any other paid platform. OpenAI's help center confirms: "Advertisers can also track traffic from ChatGPT Ads by adding static tracking parameters (e.g. UTM parameters) to landing page URLs. These parameters persist on ad clicks and can be used in existing analytics tools to understand traffic from ChatGPT Ads." For the operational walkthrough, see our guide on how to add UTM codes to ChatGPT Ads.

How to measure UTM-tagged traffic

Each major destination platform reads UTMs differently. Three quick orientation notes; full how-tos live in the linked guides.

Google Analytics 4

GA4 reads UTMs automatically. The utm_source and utm_medium values map to default channel groupings unless a custom channel group overrides them. Build a custom report filtered to session_source = chatgpt and session_medium = cpc to isolate ChatGPT Ads performance. UTM-driven channel reporting is one of the things the AI-Advisors GA4 integration overlays alongside AI bot traffic and AI referral data.

HubSpot

HubSpot captures UTMs as standard contact properties (hs_analytics_source, Original Source Drill-Down 1, Drill-Down 2). The first-touch UTMs are written on contact creation; subsequent visits do not overwrite them by default. Build a contact saved view filtered to Original Source Drill-Down 1 = chatgpt and pin it to the marketing dashboard.

Salesforce

Salesforce ingests UTMs through Web-to-Lead form mapping or Pardot/Marketing Cloud Account Engagement tracking. The destination field depends on which form layer captures the lead; common patterns map utm_source to LeadSource or a custom Campaign Source field. The CRM contact record becomes the source of truth for downstream pipeline-attribution work.

Common UTM mistakes

Case-sensitivity drift

utm_source=Chatgpt and utm_source=chatgpt are two different channels in most analytics tools. The cure is a written convention everyone tags against (kebab-case-lowercase is the safest default) and a URL builder that enforces it rather than ad-hoc typing.

Inconsistent values across campaigns

One campaign uses utm_source=chatgpt; the next uses utm_source=chatgpt-ads; the third uses utm_source=openai. Three campaigns end up reporting as three different channels. Lock the convention before the first campaign ships and audit it quarterly.

Encoding issues on URLs with special characters

Spaces, ampersands, and other special characters in UTM values can break the URL or get parsed inconsistently. Stick to URL-safe values (letters, numbers, hyphens, underscores). If a value has to contain a space, URL-encode it: q2%20launch, not q2 launch.

UTMs on internal links

Tagging internal links inside your own site overwrites the original source attribution when the visitor clicks through. A visitor arrives from ChatGPT Ads with utm_source=chatgpt, then clicks an internal CTA tagged with utm_source=blog. Most analytics tools now read the second UTM as the new source, and the original attribution is lost. Reserve UTMs for external links only.

Frequently asked questions

#What are UTM parameters in simple terms?

UTM parameters are short tags you stick on the end of a web link so your analytics tool can tell you exactly where a visitor came from. The five standard tags are utm_source (the channel), utm_medium (the type of traffic), utm_campaign (the campaign name), utm_content (the specific creative or link variant), and utm_term (the keyword or audience). You add them yourself to any link you control. Once a visitor clicks, the parameters travel with them to your site, get read by Google Analytics, HubSpot, Salesforce, and other tools, and become a permanent attribution label on that session.

#Are UTM parameters case-sensitive?

Yes. Google Analytics 4 treats utm_source=Chatgpt, utm_source=chatgpt, and utm_source=CHATGPT as three separate channels. That fragments your reporting and breaks any rolled-up analysis. The fix is a written convention everyone tags links against, ideally enforced through a URL builder or shared spreadsheet rather than ad-hoc typing. Lowercase, hyphen-separated values are the safest default (utm_source=chatgpt, utm_medium=cpc, utm_campaign=q2-launch).

#Do UTM parameters work on ChatGPT Ads?

Yes. OpenAI's help center confirms that static tracking parameters such as UTM parameters persist on ad clicks and can be used in existing analytics tools to understand traffic from ChatGPT Ads. You add them to the destination URL of your ad in ChatGPT Ads Manager Beta the same way you would for a Google Ads or LinkedIn Ads destination URL. They flow through to your landing page, get parsed by your analytics stack, and let you attribute conversions back to specific ChatGPT Ads campaigns, ad groups, and creatives.

#How are UTM parameters different from auto-tagging?

UTM parameters are manual tags you write into the URL yourself. Auto-tagging is when an ad platform appends its own click identifier automatically: Google Ads adds gclid, Microsoft Ads adds msclkid, Meta adds fbclid. Auto-tagging captures more granular data (every click gets a unique ID, useful for offline-conversion imports and bid-side optimization) but only works inside that platform's reporting and a few partner integrations. UTMs are platform-agnostic and work everywhere any analytics tool reads URL parameters. Most advertisers use both: auto-tagging for the ad platform's own optimization, UTMs for cross-platform reporting.

#Why do AI platforms append utm_source=chatgpt.com to citations?

That parameter is on the publisher side, not the advertiser side. As of 2025, ChatGPT started auto-appending utm_source=chatgpt.com to outbound citation links so publishers can identify organic ChatGPT referrals in their analytics. It is the AI engine's own auto-tagging on links it sends out. Advertiser-side UTMs (the ones you put on ChatGPT Ads destination URLs) are different: they belong to you, the advertiser, and travel from your ad to your landing page. Both can coexist in the same analytics view: organic ChatGPT visits show utm_source=chatgpt.com; paid ChatGPT Ads visits show whatever utm_source value you set yourself.

Kevin O'Connell
Kevin O'Connell
Founder & AEO Consultant, AI-Advisors.ai

20-year B2B SaaS marketer. 3x Head of Marketing. One company exit (Sapling HR acquired by Kallidus, 2021). Now building AI-Advisors.ai to give mid-market B2B teams the AI visibility tools enterprise brands get. Writing about Answer Engine Optimization, ChatGPT Ads, Microsoft Copilot SEO, and the 5 A's of AI Marketing framework.

Ready to put this into practice?

Run a free AEO audit across 29 checks, track AI bot activity, and see how AI platforms treat your brand. Start with a 7-day free trial.

Start Free

Keep exploring

Related terms

Related reading

Free tools

Platform module

Explore AI Analytics