Pick one case and never break it
GA4 is case sensitive, so Facebook and facebook become two rows that split your numbers. Lowercase everything and separate words with underscores.
Book a free audit call and we will tell you which lever moves your numbers first.
Book a free auditGenerate clean, consistent tracking links in seconds — so every click, lead and sale lands in the right row of your Google Analytics reports instead of getting lost in direct traffic.
The page visitors land on. Existing query parameters are kept.
utm_source — Where the traffic comes from — the referrer or platform.
utm_medium — The marketing channel type, e.g. cpc, email, paid_social.
utm_campaign — The specific promotion, launch, or offer this link belongs to.
utm_term — Optional. The paid keyword or audience you are targeting.
utm_content — Optional. Distinguishes creatives or placements for A/B tests.
utm_id — Optional. Ties the link to a campaign ID in GA4 reporting.
Add your landing page URL to get started.
Three parameters are required for attribution to work. The other three add detail once you need to compare keywords, creatives or campaign IDs.
| Parameter | What it records | Example |
|---|---|---|
utm_sourceRequired | The platform or referrer sending the traffic. | google, facebook, newsletter |
utm_mediumRequired | The type of channel, so you can group spend by tactic. | cpc, email, paid_social |
utm_campaignRequired | The specific promotion, launch or offer the link belongs to. | spring_sale, black_friday |
utm_termOptional | The paid keyword or audience segment being targeted. | running_shoes |
utm_contentOptional | Separates creatives or placements inside one campaign — the key to A/B testing. | hero_banner_v2 |
utm_idOptional | Ties the link to a campaign ID, used by GA4 campaign reporting. | sale_2026_01 |
Use the exact page you want visitors to reach, including https://. Any query parameters already on the URL are preserved.
These three answer where the traffic came from, what type of channel it was, and which promotion it belongs to. Use a preset to fill the common combinations instantly.
Use utm_content when two ads point at the same page and you need to know which creative actually drove the conversion.
Paste the generated URL straight into your ad platform, email tool or social post. Campaign data appears in GA4 under Traffic acquisition.
GA4 is case sensitive, so Facebook and facebook become two rows that split your numbers. Lowercase everything and separate words with underscores.
Agree on a handful of values such as cpc, email, paid_social and affiliate. Medium is what channel grouping keys off, so invented values fall into Unassigned.
Adding UTMs to links between your own pages starts a new session and overwrites the original source, erasing the campaign that actually earned the visit.
Keep a shared sheet of approved source, medium and campaign values. Most messy attribution comes from two people naming the same campaign differently.
A UTM parameter is a short tag added to the end of a URL that tells your analytics platform where a visitor came from. When someone clicks the link, Google Analytics reads those tags and files the session under the right source, medium and campaign instead of lumping it into direct or referral traffic.
utm_source, utm_medium and utm_campaign are the three that matter. Without them GA4 cannot attribute the session properly. utm_term, utm_content and utm_id are optional and are used for keyword tracking, creative-level A/B testing and campaign IDs respectively.
They do not harm rankings, but they do create multiple URLs that serve the same content. Set a self-referencing canonical tag on the page so search engines consolidate the ranking signals, and never use UTM links for internal navigation between your own pages.
GA4 treats values as case sensitive, so Facebook and facebook appear as two separate sources and split your reporting. Keeping every value lowercase with underscores instead of spaces keeps each channel on a single row. This builder formats values that way automatically.
Yes. This builder parses the existing query string and appends the UTM parameters alongside it, so parameters like product IDs or discount codes are preserved rather than overwritten.
Add a hidden field to the form for each parameter, then populate those fields with JavaScript that reads the values from the page URL on load. When the form is submitted the UTM data travels with the lead into your CRM, letting you attribute closed revenue back to the campaign.
Clean UTMs get the data in. Turning it into decisions about budget, creative and landing pages is where growth actually comes from — that is the part we handle for e-commerce and B2B teams.