Newsroom live
Knowledge base9 min read

UTM Tagging Explained: UTM Parameters and Naming Conventions

What UTM parameters are, how to build a tagged link, a naming template for media buyers, and how UTMs differ from click IDs and affiliate sub-IDs.

Brown suitcase with five coloured luggage tags on its handle, one with a brand plate

UTM tagging means adding short labels such as utm_source, utm_medium and utm_campaign to a link, so your analytics can tell which site, channel and creative sent each visit. These UTM parameters change nothing on the page. This guide covers the five parameters, a naming convention for affiliates and how UTMs differ from click IDs.

What are UTM parameters?

UTM parameters are name=value pairs added to the end of a URL after a question mark. UTM stands for Urchin Tracking Module, after Urchin, the web analytics company Google bought in 2005 whose product became the basis of Google Analytics.

Take a landing page you control:

https://www.example.com/nj-sportsbook-offer

Tagged for a Google search ad, it becomes:

https://www.example.com/nj-sportsbook-offer?utm_source=google&utm_medium=cpc&utm_campaign=nj_sports_welcome_202611

The visitor sees the same page; your analytics tag files the session under source google, medium cpc and that campaign. The labels only count if something on the landing page reads them, such as GA4, a tracker or your own server.

The five UTM parameters

Three parameters describe where a visit came from; two optional ones add detail. Google's GA4 documentation says to always set utm_source, utm_medium and utm_campaign; anything you leave out shows up as "(not set)".

ParameterAnswersExample valueUse
utm_sourceWhich site or platform sent the click?google, facebook, newsletterAlways
utm_mediumWhat type of traffic is it?cpc, paid_social, email, affiliateAlways
utm_campaignWhich campaign or offer?nj_sports_welcome_202611Always
utm_contentWhich creative, link or variant?video_oddsboost_v2A/B tests, several links in one email
utm_termWhich paid keyword?sportsbook+promoPaid search

utm_content and utm_term are the two you will mostly see on paid traffic: the first separates creatives, the second carries search keywords. GA4 also accepts utm_id, a campaign ID that should match the IDs you use when you import campaign cost data, and utm_source_platform for the buying platform.

Source vs medium. Medium describes the kind of traffic; the source names the place. A paid Facebook ad and an unpaid post on your page share utm_source=facebook, but one is utm_medium=paid_social and the other utm_medium=social. Writing utm_source=cpc leaves you with a channel and no platform.

The syntax rules:

  1. Start from the clean final URL of the page.

  2. Add ? before the first parameter. If the URL already has a query string (?state=nj), add yours with & instead.

  3. Join each pair with &. Use each parameter once.

  4. Put any anchor last: ...&utm_content=hero_cta#signup.

  5. No spaces. Encode special characters such as &, # or ? inside a value.

Google's Campaign URL Builder, a free tool linked from GA4 help, handles the punctuation and encoding. Whether fb or facebook is your standard is a team decision no builder can make.

Macros: tagging hundreds of ads at once

Ad platforms fill in dynamic values at click time, so one template can tag every ad in an account (in Google Ads, via the final URL suffix or tracking template). A link copied into a browser still contains the braces, so check values through the ad preview or a live test click.

ValueGoogle Ads (ValueTrack)Meta
Campaign ID{campaignid}{{campaign.id}}
Ad group / ad set ID{adgroupid}{{adset.id}}
Ad ID{creative}{{ad.id}}
Ad namenone{{ad.name}}
Matched keyword{keyword}none

Two catches: Google's {keyword} is blank for keywordless matching such as Performance Max, and Meta's name macros keep the name an ad had when first published.

UTM naming conventions that survive a team

A UTM naming convention is a short written rule set that makes every link comparable. Without one, five people produce five spellings of one source. Best practices worth writing down:

  • Lowercase only. GA4 treats google and Google as different values.

  • One separator. Underscores inside values, for example; never spaces.

  • One spelling per source and medium. facebook, not fb, enforced by validation in your link sheet.

  • Most general to most specific in campaign names, with dates in one format.

  • Stable names. Renaming a live campaign gives you two report rows from the switch date; log both values.

  • Treat every value as public. It shows in the address bar, browser history and partner screenshots, so no personal data or internal audience labels.

If you run paid traffic as a media buyer across several sources, a workable template is:

  • utm_campaign = geo_vertical_offer_yyyymm

  • utm_content = format_hook_version

Placementutm_sourceutm_mediumutm_campaignutm_contentutm_term
Google search adgooglecpcnj_sports_welcome_202611rsa_{creative}{keyword}
Meta feed videofacebookpaid_socialnj_sports_welcome_202611video_oddsboost_v2_{{adset.id}}none
TikTok in-feedtiktokpaid_socialpa_sports_welcome_202611ugc_parlay_v1none
Native networkthe network's namedisplaymi_casino_welcome_202611native_headline_v3none
Email newsletternewsletteremailnj_sports_welcome_202611header_buttonnone
Partner site linkpartner nameaffiliatenj_sports_welcome_202611review_tablenone

Keep utm_term for paid-search keywords ({keyword} works in search campaigns only); elsewhere, leave it out. GA4's default channel rules have no "native" medium, so utm_medium=native lands in Unassigned without a custom channel group; display keeps it in Display.

Log every live link in a shared sheet with an owner and a launch date, so a campaign name can always be traced to a person and a placement.

UTMs vs click IDs vs affiliate sub-IDs

Three kinds of parameters can ride on one URL. UTMs are your labels for your analytics. Click IDs belong to ad platforms. Sub-IDs belong to the tracker-to-program link where commissions are counted.

Click IDs. With auto-tagging on, platforms append their own unique identifier to each ad click: gclid for Google Ads, msclkid for Microsoft Advertising, fbclid for Meta, ttclid for TikTok. The platform uses it to join the click with cost and conversions. Leave auto-tagging on and don't let redirects strip these values; the Meta Conversions API relies on the fbclid value when the browser loses it.

Google Ads auto-tagging vs UTM. You can run both. When both are present, GA4 uses the auto-tagged values for source, medium and the other traffic dimensions. Your manual utm_content and utm_term still fill two separate dimensions, Manual Ad Content and Manual Term, so creative-level UTMs on Google Ads are not wasted.

Sub-IDs. When you send a visitor to an operator, your tracker gives the click its own ID and passes it in the parameter the program reserves for it, often sub1 or clickid. The program stores it against the registration and returns it in a postback when the player registers or deposits. That ID is what the payout is matched to.

So which one carries the money? In a typical tracker-plus-program setup, the sub-ID. The program credits the click ID your tracker passed on and returns it in the postback, not the utm_campaign you chose. Check your program's tracking guide for the exact parameter names, and to see a creative's deposits in the program report, pass the creative into a free sub-ID slot as well. Before launch, click through from ad to operator page and confirm every hop keeps the query string.

Programs also treat UTMs as self-reported: anyone can type utm_source=google, so fraud teams often judge traffic on click IDs, logs and player behaviour instead.

Where to see UTM data in GA4

In GA4, UTM values appear as traffic-source dimensions, mainly in the Traffic acquisition report (Reports > Acquisition > Traffic acquisition). Switch the primary dimension to session source / medium or session campaign to see your values row by row.

For utm_content and utm_term, use an Exploration with the manual content and term dimensions. The default channel depends on source and medium together: a medium such as cpc, ppc, retargeting or anything starting with paid, combined with a recognised search or social source, goes to Paid Search or Paid Social; with an unknown source it falls into Unassigned. email goes to Email and affiliate to Affiliates. How credit is then shared across visits is a separate question, covered in attribution models.

To test a link before launch, open it in a private window and check the Realtime report: source and medium should appear within a minute or two. To inspect individual events, turn on debug mode with Google Tag Assistant first, since DebugView only lists events from debug sessions. (Channel rules and menu names change; checked against Google Analytics Help in October 2026.)

Common UTM tagging mistakes

Most mistakes come down to a handful of repeat errors:

  • Tagging internal links. A tagged banner on your own review page overwrites the Google Ads session that brought the visitor.

  • Inconsistent spelling or case. fb, facebook and Facebook become three rows.

  • Per-click values in campaign fields. A timestamp in utm_campaign gives every click its own row; per-click values belong in sub-IDs or your tracker.

  • Tagging Google Play links with UTMs alone. For Android apps, Google points to its Play Campaign URL Builder instead.

  • Losing UTMs before the conversion. Carry values through lead forms in hidden fields or store them server-side.

  • Untagged offline and social links. Give each QR code and bio link its own tagged URL before print.

FAQ

What are UTM parameters used for?

UTM parameters attribute visits to a source, channel, campaign and creative, so paid, email, social and partner traffic can be compared in one report.

What is the difference between utm_source and utm_medium?

utm_source names where the click came from, such as google or newsletter; utm_medium names the type of traffic, such as cpc, email or affiliate. One source can carry several mediums.

Which UTM parameters are required?

None is technically required, but Google's GA4 guidance says to always set utm_source, utm_medium and utm_campaign; a missing one shows as "(not set)". utm_content and utm_term are optional and mostly used on paid campaigns.

How do you remove UTM parameters from a URL?

Delete everything from the ? onward, or just the utm_ pairs if other parameters must stay. On your own site, point the canonical tag at the clean URL; scripts that rewrite the address bar must run after analytics has read the values.

What does utm_source=chatgpt.com mean?

It means the visit came from a link clicked inside ChatGPT. OpenAI's publisher FAQ says ChatGPT adds this tag to referral links from its search results; links a user copies or pastes elsewhere may not keep it. See our guide to ChatGPT SEO.

Do UTM parameters hurt SEO?

UTM parameters on external campaign links do not hurt SEO when the page has a canonical tag pointing at the clean URL. The real risk is analytical: UTMs on internal links corrupt your source data, so keep them off your own navigation.

Sources