// HOW-TO · MEASUREMENT

How to use UTM parameters to track content (2026)

Use UTM parameters to track which posts drive traffic and sales: tag links with the five utm_ codes, name them consistently, shorten them, read them in GA4.

Last verified · 2026-11-02 · by Moe Ameen

A UTM parameter is a short text code you append to the end of a link so your analytics tool can tell exactly where a click came from. The tags don't change the page the visitor lands on — they ride along in the query string and let Google Analytics group the traffic by the source, channel, and campaign you named. Without them, almost every click from a social post, email, or bio link collapses into a single undifferentiated 'social' or 'direct' bucket, and you can't tell which post, platform, or campaign actually moved anyone.

This is the practical build. It walks the workflow in order: decide what you're measuring, construct a tagged URL with the five parameters, lock a naming convention so the data stays clean, shorten the link, keep it off your internal pages, then read and act on the result in GA4. For the concept and the per-channel quirks, see [UTM parameters](/glossary/utm-parameters). If your specific goal is attributing AI-assistant referrals, [tracking Gemini traffic with UTM tags](/how-to/track-gemini-traffic-with-utm-tags) covers that edge case, and [measuring social media in GA4](/how-to/measure-social-media-with-ga4) is the broader reporting setup this feeds into.

The steps

  1. Decide what question each link has to answer. Before you tag anything, write down what you want the data to tell you: which platform drove the most signups, which campaign paid off, which ad creative out-pulled the others. That decision picks your parameters. Platform is always utm_source, channel type is utm_medium, the campaign name is utm_campaign — and if you're A/B testing creatives or links, utm_content separates them. Tagging without a question first is how teams end up with a thousand links and no answer.
  2. Build the tagged URL with the five parameters. Append the tags to your destination URL after a '?', separated by '&': ?utm_source=instagram&utm_medium=social&utm_campaign=spring_launch. Three are the working core — utm_source (the specific platform or partner, e.g. instagram), utm_medium (the channel category, e.g. social, email, cpc), and utm_campaign (the initiative, e.g. spring_launch). Two are optional: utm_term for a paid-search keyword or audience, and utm_content to distinguish two versions of the same link. Don't hand-type these — use Google's free Campaign URL Builder so the formatting is always valid.
  3. Lock a naming convention and keep a master sheet. UTM values are case-sensitive, so 'Instagram' and 'instagram' become two separate rows in your report and split your numbers. Pick one style and enforce it: all lowercase, underscores or hyphens instead of spaces, and a fixed vocabulary (is paid social 'paid-social' or 'cpc'? decide once). Keep every link you create in one shared spreadsheet with its source, medium, campaign, and the full URL. On a team, this sheet is the difference between clean data and a report nobody trusts.
  4. Shorten the link before you post it. A fully tagged URL is long and ugly, and some surfaces truncate or discourage long links. Run it through a shortener (ow.ly, Bitly, or your own branded domain) after you've built it — the short link still carries the UTM parameters through the redirect, so GA4 reads them exactly the same. Shorten last, never first, or you'll lose the ability to see what you actually tagged.
  5. Never put UTM tags on your own internal links. UTM parameters are for inbound links that bring someone to your site from outside. If you tag a link between two pages on your own domain, you start a brand-new session and overwrite the visitor's real original source — so a reader who arrived from Instagram and clicked an internal UTM-tagged button is now recorded as Instagram traffic a second time, or worse. Use internal-link tools, not UTMs, for on-site navigation.
  6. Read the data in GA4. In GA4, open Reports > Acquisition > Traffic acquisition and switch the primary dimension to Session source / medium to see your utm_source/utm_medium pairs, or Session campaign to roll up by utm_campaign. For creative-level or term-level detail, build a free-form view in Explore and add the campaign, content, or term dimensions. Note GA4's default data retention is two months — extend it to 14 months under Admin > Data Settings if you need longer trend lines.
  7. Act on it — feed the winners back into production. The point of tagging is the decision it unlocks. Once a few weeks of data is in, you'll see which platform, campaign, and creative actually drove the conversions you defined in step one. Shift effort toward what converted, cut what didn't, and use the pattern to brief your next content batch — the measurement only pays off if it changes what you make next.

Common gotchas

  • Case mismatches silently split your data. 'Facebook' and 'facebook' are two different rows to GA4, so a sloppy mix halves every campaign's apparent performance. Lowercase everything, always.
  • Spaces break the URL or encode into %20. Use underscores or hyphens in values; never a raw space.
  • Tagging internal links corrupts attribution. UTMs are for inbound traffic only — put them between your own pages and you overwrite the visitor's true source and start a phantom session.
  • In-app and privacy browsers strip parameters. Clicks from inside Instagram, TikTok, or Facebook's in-app browser — and some privacy tools — can drop the query string, so UTM data is a strong directional signal, not a perfect census. Expect a gap between tagged links and total clicks.
  • Inconsistent naming across a team. Three people inventing 'ig', 'insta', and 'instagram' for the same platform fragments the report. The master spreadsheet and a fixed vocabulary exist to prevent exactly this.
  • Expecting UTMs to track users across devices or sessions. They tag a click, not a person; downstream conversion attribution still depends on cookies, consent, and your analytics setup.
Legal note

UTM values are visible to anyone who sees the link and are logged in analytics and server access records, so never place personal, sensitive, or identifying information (names, emails, IDs) in a UTM parameter — doing so can leak personal data into third-party logs and create a privacy-compliance problem. Keep values to non-personal labels like platform, channel, and campaign names.

Where Kompozy fits

The hard part of UTM tracking is never building one link — it's keeping the convention consistent across every platform, every post, and every teammate, forever. The moment someone tags a link 'ig' instead of 'instagram', the report fragments. That discipline problem gets worse the more you publish, which is exactly where a generation-and-publishing engine changes the shape of the job. [Kompozy](/) isn't a UTM tool, but because it's the single surface that fans one piece of content to the eight social platforms plus blog and email, it's the natural place to apply a consistent source/medium/campaign scheme once instead of re-typing it per platform.

Here's the concrete workflow. A single source becomes [18 formats](/glossary/output-buckets) — a captioned short, a brand-exact carousel via [HyperFrames](/glossary/hyperframes), native text posts, a blog, a newsletter — and [Autopilot](/glossary/autopilot) schedules and publishes them across destinations. Every destination link in that fan-out can carry the same campaign tag and the correct per-platform utm_source (instagram, linkedin, youtube, and so on), so when the clicks land in GA4 they're already grouped the way step 1 of this guide wanted — without anyone hand-tagging a dozen links or splitting the data on a capitalization slip. One campaign name, one convention, applied at publish time.

The division of labor is the point: Kompozy standardizes the tagging and the publishing, and GA4 still owns the reading and the attribution. You decide what the campaign is called and what you're measuring; the engine makes sure every platform's link says the same thing so the numbers reconcile. Starter ($199/mo for 5,500 credits) suits a solo creator tracking one brand's campaigns; Pro ($499/mo for 18,000 credits, 9 platforms and full autopilot) fits a team running consistent tagging across every channel at once; Enterprise is available through Contact Sales for agencies standardizing conventions across many client accounts.

Frequently asked questions

What are the five UTM parameters?

utm_source (the specific platform, site, or partner sending the click, e.g. instagram), utm_medium (the channel category, e.g. social, email, cpc), utm_campaign (the initiative the link belongs to, e.g. spring_launch), utm_term (optional — a paid-search keyword or audience segment), and utm_content (optional — the specific creative or link variant clicked). Source, medium, and campaign are the working core; term and content add detail for paid search and A/B testing.

Which UTM parameters are required?

Technically none — GA4 will accept a link with any combination — but in practice utm_source, utm_medium, and utm_campaign are the core set you should always use together. Source and medium are what GA4 reads to classify the traffic channel, and campaign groups the clicks into a reportable initiative. utm_term and utm_content are optional and used mainly for paid-search keywords and creative-level testing.

Do UTM parameters hurt SEO?

No. Search engines ignore UTM parameters, and they don't change the page a visitor lands on, so they have no effect on rankings. To avoid any duplicate-URL concern, make sure your canonical tag points at the clean, parameter-free version of the page — which is standard practice anyway.

How do I build a UTM link without typing it by hand?

Use Google's free Campaign URL Builder: paste your destination URL, fill in the source, medium, and campaign fields, and it outputs a correctly formatted tagged link. Then run that link through a shortener before posting. Building the link in a tool rather than by hand eliminates the formatting and typo errors that quietly corrupt reports.

Where did UTM parameters come from?

UTM stands for Urchin Tracking Module, named after Urchin, a web-analytics company Google acquired in April 2005 and rebuilt into Google Analytics. The parameter scheme survived the transition and is now the de facto standard for campaign tagging across virtually every analytics platform, not just Google's.

Related tutorials

← All how-to guides · Get Started