UTM Parameters: Tag Links and Read Results
UTM parameters are labels added to a URL to identify the source, medium, and campaign behind a link. Google Analytics uses these labels as traffic-source information, allowing campaign traffic to be compared in reports.

UTM stands for Urchin Tracking Module, a name preserved in Google’s archived Urchin documentation.
The practical steps are to choose clear labels, build a valid destination URL, check that Analytics collects the visit, and read the appropriate acquisition report.
What each UTM parameter means
Google’s campaign parameter definitions distinguish these fields:
| Parameter | What it labels | Example value |
|---|---|---|
utm_source | Referring platform, publication, or sender | newsletter |
utm_medium | Marketing method | email |
utm_campaign | Promotion or campaign name | summer_sale |
utm_term | Paid keyword | running_shoes |
utm_content | Creative variation or link placement | header_link |
Google recommends using source, medium, and campaign together.
Two additional fields serve specific purposes in Google’s traffic-source definitions: utm_id identifies the campaign and should match the campaign ID used for data uploads; utm_source_platform identifies the referring platform at a broader level. A campaign ID belongs to the campaign, so choose a campaign-level identifier.
Google also lists utm_creative_format and utm_marketing_tactic, but its manual-tagging reference says these two parameters are not currently reported in Analytics properties.
How a tagged URL is structured
A tagged link keeps the destination address and adds a query string. In MDN’s URL anatomy reference, query parameters consist of names and values separated by =, with & between pairs.
Tagged URL syntax:
https://www.example.com/?utm_source=newsletter&utm_medium=email&utm_campaign=summer_sale&utm_content=header_link
The parts of this URL are:
https://www.example.com/: the destination.?: the start of the query string.utm_source=newsletter: a parameter name and its value.&: the separator before the next parameter.
The values are sample labels. They describe the link’s distribution and placement; they do not contain measured results.
Preserve any query parameters the destination already requires. When a URL already contains ?category=shoes, append UTM fields with &. Keep them before a # anchor, following MDN’s distinction between query parameters and fragments:
https://www.example.com/?category=shoes&utm_source=newsletter&utm_medium=email&utm_campaign=summer_sale#details
The category remains part of the query string, while #details remains the page anchor.
Build and test a campaign link
Use this sequence before distributing a tagged URL:
- Choose the destination. Start with the page that should receive the visit. Retain any product, language, or other query values the page needs.
- Choose the labels. Set source, medium, and campaign. Add content, term, campaign ID, or source platform when that information has a defined reporting purpose.
- Generate the URL. Enter the destination and labels in Google’s Campaign URL Builder, or append them using the syntax above.
- Open the exact link that will be distributed. Include any shortening or redirect step. Confirm that the page loads and the campaign values reach the landing page; Google documents redirects and server rewrites that can lose or reject campaign parameters.
- Confirm collection. Use Realtime or DebugView to inspect events and their parameters, enabling debug configuration for DebugView. Check the collected page location as well as the address visible in the browser.
Publish one value per UTM key. For software-generated links, URLSearchParams can encode query values and replace duplicates with set(). Pass unencoded values to the API: MDN explains that pre-encoded strings can be encoded again, and spaces serialize as +.
A short pre-distribution check is useful: correct destination, preserved query values, one value per UTM key, consistent spelling, and a collected test visit. Save the exact generated URL alongside its labels so it can be checked against later report rows.
Choose consistent names and recognizable media
UTM values are case sensitive in Google Analytics: Newsletter and newsletter are different values. Keep spelling and capitalization consistent across links that should appear together.
A practical naming convention is to:
- Use lowercase values and one separator, such as underscores.
- Keep one campaign name across the links promoting the same initiative.
- Put creative or placement differences in
utm_content. - Maintain a record of approved labels and finished URLs.
The medium also affects channel classification. Under GA4’s default channel rules, email is recognized for Email, social for Organic Social, and referral for Referral. Paid Social requires a recognized social source together with a matching paid medium; paid_social fits the documented paid-medium pattern.
Avoid using a placement name such as header_button as the medium. Traffic appears as Unassigned when no channel rule matches, even when raw source and medium values are present. Use content for the placement and a suitable medium for the distribution method.
Google’s channel definitions are case insensitive, while the underlying UTM values remain case sensitive. A shared channel classification therefore does not mean differently capitalized labels have been merged.
Where to find UTM results in GA4
Open the Traffic acquisition report under Reports > Acquisition > Traffic acquisition. If it is missing from the navigation, an Editor or higher role can add it back.
To inspect a campaign:
- Change the table dimension to Session campaign.
- Search for the campaign name used in
utm_campaign. - Add Session source / medium as a secondary dimension to separate its traffic sources.
- Select the campaign’s reporting period before comparing rows.
These session dimensions and the table search are described in Google’s Traffic acquisition guidance. For utm_content and utm_term, use Session manual ad content and Session manual term in a report or exploration rather than looking for them in the channel column.
Read the metrics according to their purpose. In Google’s report definitions, Sessions counts visits, Key events counts designated important actions, and Session key event rate measures the share of sessions containing a key event. Compare volume and outcomes together when assessing campaign traffic.
UTM tags label acquisition. Actions such as purchases and sign-ups depend on the separate event collection and configuration that supplies the outcome data.
Match the dimension to the question
Similar names can describe different scopes. Google’s traffic-source scope documentation distinguishes these views:
| Reporting question | Dimension scope | Meaning |
|---|---|---|
| Where did new users first come from? | First user source, First user medium, First user campaign | Initial acquisition of the user |
| Which source brought a session? | Session source, Session medium, Session campaign | Acquisition associated with the session |
| Which touchpoints receive credit for a key event? | Event-scoped Source, Medium, Campaign | Credit assigned under the reporting attribution model |
Use session dimensions to inspect campaign visits. Use first-user dimensions for initial acquisition and event-scoped dimensions for attribution questions.
Changing the reporting attribution model affects key event reports using event-scoped traffic dimensions, while user- and session-scoped source dimensions remain unchanged. Compare reports using the same scope before interpreting different campaign values as a tagging error.
How UTMs interact with advertising auto-tagging
Manual tags and advertising click identifiers are separate inputs. Google’s auto-tagging documentation describes identifiers such as GCLID and DCLID that supported advertising integrations add to destination URLs.
When auto-tagging functions, GA4 uses its values for traffic classification, while manually tagged content and term can still populate their manual dimensions.
Where click IDs cannot be used and UTMs are present, Google’s fallback guidance says cross-channel source values come from UTMs exclusively. Include all relevant fields, especially source, medium, campaign, campaign ID, and source platform, to avoid missing values.
For advertising traffic, check the linked account, click identifier, and selected report dimensions together. Manual campaign labels alone do not describe the entire integration.
Troubleshoot missing or unexpected campaign data
Check the collected URL and reporting context before changing the naming convention:
| Symptom | What to check |
|---|---|
| The destination fails or the tags disappear | Inspect the redirect chain and server rules; Google identifies URL rewrites and redirects as potential causes. |
| The page loads but a test visit is absent | Inspect collection through Realtime or configured DebugView and confirm the intended property receives the event. |
| Campaign labels appear in unexpected rows | Compare exact capitalization, report scope, and any auto-tagging input before regrouping the data. |
| Fresh traffic has not appeared in a standard report | Allow for processing; Google says reports may change during a 24–48-hour processing period. |
Omitted fields can produce (not set) values. Check which dimension is missing before treating that row as proof of a failed campaign.
Google notes that UTMs are omitted from two page-path dimensions and instead appear in Page location: Landing page + query string and Page path + query string. Use acquisition dimensions to inspect campaign labels.
Clicks and sessions are different metrics. Google’s click-versus-session troubleshooting guide lists repeated ad clicks and tracking code that fails to load among reasons their totals can differ. A gap between the two counts is a reason to investigate, not a measurement of UTM errors by itself.
Keep internal navigation and personal data out of campaign tags
Use UTM labels for campaign entry links. For ordinary navigation between pages on the same site, measure the interaction with events instead. Google’s campaign processing documentation explains that a new campaign value during an existing session does not start a new session: it can attach to collected events without replacing the session’s source. Tagging internal navigation can therefore complicate event attribution.
Keep campaign values free of names, email addresses, phone numbers, and other personal identifiers. Google’s PII guidance requires URL paths and parameters sent to Analytics to be free of personally identifiable information. Label the campaign, platform, or placement rather than a particular recipient. Check the complete destination URL as well as the UTM fields, because Analytics collects the page URL.