UTM Parameter
A UTM parameter is a tagged key-value pair added to a URL's query string that tells analytics tools the source, medium, or campaign behind a click.
Key takeaways
- Five reserved keys each map to one named dimension in analytics reports.
- Source and medium are grouping dimensions and need closed vocabularies; campaign and content tolerate variety.
- Parameter order is irrelevant because tools look keys up by name, not position.
- Copy each parameter into its own hidden quiz field to get a filterable CRM field.
- Values are visitor-editable free text, so they can never gate access or carry personal data.
In depth
A parameter lives in the query string, the part of a URL after the question mark, written as a key, an equals sign and a value, with ampersands separating one pair from the next. Order does not matter, because analytics tools look the keys up by name rather than by position. Each of the five reserved keys feeds a specific report dimension: source becomes the referrer name, medium the channel type, campaign the initiative, term the keyword and content the creative variant.
What decides whether the field is useful is the vocabulary you allow in its value. Source and medium are grouping dimensions, so they need closed lists; every extra spelling creates a new row that splits volume. Campaign, term and content are labels rather than groups, so they tolerate more variety. There is a trade-off in how much you encode: a long descriptive value is readable in a report but brittle to typos, while a short code is robust but needs a lookup table nobody maintains.
In practice teams keep a parameter dictionary that states the allowed values per key and a fixed structure for campaign names, often a date, an offer and a region joined by hyphens. Content is reserved for creative variants so two ads in the same test can be compared, and term is kept for keyword data. In a lead-qualification funnel each parameter is copied into its own hidden field on the quiz form, which turns it into a CRM field you can filter and group on later.
The field is free text controlled by whoever holds the link, which sets the limits. Anyone can edit a value in the address bar, so parameters describe what a link claimed, not what verifiably happened, and they must never gate access or carry personal data. Only five keys are recognised, so extra information needs custom parameters that most reporting tools quietly ignore. Very long values also get truncated by some tools and clipped when links are copied into messaging apps.
Example in practice
How to measure it
Audit the values, not the traffic. Pull a list of distinct values for each key over the last quarter and read it as a vocabulary. Medium should show a handful of entries, source a small stable set, campaign a controlled but growing list. Entries that differ only by case, spacing or punctuation are duplicates in disguise and each one is silently splitting a channel across two rows.
Then check completeness per link. For a sample of live campaign links, confirm that source, medium and campaign are all present, since a missing medium usually pushes the visit into a referral bucket rather than the intended channel. Comparing the number of sessions holding a full parameter set against those holding only some shows how much of your reporting rests on partial tagging.
Common mistakes
The most common error is packing several facts into one value, such as a campaign name that contains the channel, the region and the offer with no consistent delimiter. Six months later nobody can split it back apart, and filtering by region means writing string matches by hand. Give each fact its own parameter where a key exists, and where it does not, agree one delimiter and one field order for campaign names and never vary it.
The second error is inconsistent casing and spacing. Analytics treats values as case-sensitive strings, so Spring-Sale and spring-sale become two campaigns, and a space encoded as %20 in one link and a plus sign in another produces a third. Standardise on lowercase with hyphens, forbid spaces entirely, and validate values at the point the link is created rather than cleaning them in the report afterwards.
Frequently asked questions
What does a UTM parameter look like in a URL?
It appears after a question mark as a key=value pair, such as ?utm_source=newsletter&utm_medium=email. Multiple parameters are chained with ampersands in the query string.
Are UTM parameters case sensitive?
The values are, and the keys generally are not. Analytics tools recognise utm_source regardless of how you capitalise the key, but they treat Email and email as two different values, producing two rows in the same report. Standardise every value as lowercase, use hyphens instead of spaces, and enforce the rule in your link builder rather than fixing it later.
What is the difference between utm_term and utm_content?
Term carries the keyword that triggered the ad, while content identifies which version of a creative or link was used. Content is what you need for split tests: two ads in one campaign share source, medium and campaign but differ in content, so their results can be compared. Term is mostly relevant for paid search and is often left empty elsewhere.
Which UTM parameters are required?
Source and medium are the pair that matters, because most channel reports group by them and a missing medium usually sends the visit into an unhelpful referral bucket. Campaign is strongly recommended so spend can be tied to an initiative. Term and content are optional and should be added only when you actually intend to compare keywords or creative variants.
Can I create custom UTM parameters?
You can append any key you like to a URL, but only the five reserved ones are mapped to dimensions automatically. A custom key is just text unless you configure your analytics tool to read it, or capture it with a script and store it yourself. Where the goal is passing extra data to your own form, reading it in JavaScript is usually simpler.
How do I handle spaces and special characters in UTM values?
Avoid them. Spaces have to be percent-encoded or replaced with a plus sign, and different tools decode the two differently, so the same campaign can appear twice. Restrict values to lowercase letters, digits and hyphens. Accented characters and symbols survive encoding but make values hard to type consistently, which is where most duplicate entries originate.
Are UTM parameters a privacy risk?
They can be, because the values are visible in the address bar, stored in browser history and passed on whenever someone shares the link. Never put an email address, a customer name or an internal identifier in a parameter. Keep values generic enough to describe a campaign rather than a person, and remember that anyone can edit them before loading the page.