UTM Link Builder
Build UTM links that GA4 reads cleanly — case checks, valid characters, parameter order, and a one-click copy.
Examples
Newsletter launch
example.com/post + newsletter / email / spring-launchhttps://example.com/post?utm_source=newsletter&utm_medium=email&utm_campaign=spring-launchEmail medium maps to GA4's Email default channel, so the traffic lands in the right acquisition row.
Paid social with creatives
example.com/landing + meta-ads / cpc / summer-sale / content sidebar…?utm_source=meta-ads&utm_medium=cpc&utm_campaign=summer-sale&utm_content=sidebarOne link per placement — utm_content keeps A/B results separated inside the same campaign.
Case-check rescue
utm_source = Newsletterwarning + one-click fix to newsletterGA4 would otherwise split Newsletter and newsletter into two source rows; the builder catches it before the link ships.
About this tool
UTM parameters are the five query values — utm_source, utm_medium, utm_campaign, utm_term and utm_content — that tell analytics tools where a visit came from. The UTM Link Builder attaches them to your destination URL in GA4's conventional order (source → medium → campaign → term → content), encodes everything correctly, and validates as you type, so the link you copy is one that Google Analytics 4 files under the right channel instead of (Other).
The builder is opinionated where GA4 is strict. GA4 is case-sensitive: a link tagged Newsletter and another tagged newsletter create two separate source rows that split your reporting, so capitalized values trigger a warning with a one-click lowercase fix. Spaces are legal but ugly — they become %20 in the URL — so spaced names like "spring sale" get a hyphen suggestion: spring-sale. The base URL must carry http:// or https://, and if it already contains utm parameters, the builder replaces them rather than stacking duplicates — and tells you it did.
Validation goes beyond syntax. Medium presets (cpc, email, social, organic, referral, affiliate, display, video) match GA4's default channel grouping, so your campaign lands in Email or Paid Search instead of the (Other) bucket that swallows unknown mediums. A length check warns past 1,900 characters — the point where some messaging platforms truncate URLs and silently drop parameters. Existing query parameters and #fragments on the destination URL survive the build untouched.
Everything happens on your device: campaign names, sources and links never leave the browser and are never sent to a server, and only the destination URL persists locally between visits so you can rebuild without retyping. When the link is ready it copies in one click — and if you want it scannable on a flyer or slide, hand it to the QR Code Generator; to inspect exactly how a value was encoded, the URL Encoder/Decoder sits one click away.
What this tool does not do
- Builds links only — it cannot verify that the destination URL resolves or that GA4 property access is configured.
- utm_id (GA4 campaign grouping import) is not a builder field; standard reporting uses the five text parameters.
- Link data stays local: nothing is registered in any ad platform or analytics account for you.
How to use this tool
Paste the destination URL
Enter the landing page with its protocol — https://example.com/landing. The builder checks the protocol and parses the address live.
Fill source, medium and campaign
utm_source names the traffic source, utm_medium picks how it arrived (use a preset chip), and utm_campaign names the push. Term and content stay optional.
Clear the warnings
Follow the inline GA4 checks: apply lowercase fixes, swap spaces for hyphens, and resolve any existing-utm conflict on the destination URL.
Copy the link
The final URL appears in GA4 parameter order — copy it once and paste it into the ad, email or post.
Use cases
Attributing campaigns in GA4
Tag every ad, email and social post so Acquisition reports show which push drove traffic instead of lumping it into direct or (Other).
Standardizing team naming
Inline lowercase and hyphen suggestions enforce a naming convention across everyone who builds links, keeping report rows merged.
Linking print and slides
Build the campaign URL, then turn it into a QR code so offline placements carry the same attribution as digital ones.
The six GA4 UTM parameters
| Parameter | What it records |
|---|---|
| utm_source (required) | The referrer: newsletter, google, instagram, partner-name |
| utm_medium (required) | The channel: cpc, email, social, organic, referral, affiliate |
| utm_campaign (required) | The specific push: spring-sale, black-friday, product-launch |
| utm_term (optional) | Paid-search keyword for manual keyword tagging |
| utm_content (optional) | Creative or placement: header-banner, sidebar, version-a |
| Parameter order | source → medium → campaign → term → content (builder default) |
GA4 also accepts utm_id for campaign grouping imports — advanced usage not required for standard reporting.
Common mistakes
Mistake:Mixing capitalization across links.
Fix:GA4 treats Newsletter and newsletter as different sources and splits your rows. Keep every value lowercase — the builder's one-click fix makes it mechanical.
Mistake:Inventing mediums that GA4 can't classify.
Fix:Unknown mediums fall into the (Other) channel bucket. Use the default-channel values — cpc, email, social, organic, referral, affiliate, display, video — or configure a custom channel group first.
Mistake:Building on a URL that already has utm parameters.
Fix:Stacked parameters double-count the visit or keep stale values. The builder replaces existing utm_* keys and warns you — verify the notice before copying.
Frequently asked questions
What are the required UTM parameters for GA4?
Three: utm_source (where the click came from, e.g. newsletter or google), utm_medium (the channel, e.g. email or cpc) and utm_campaign (the specific promotion name). utm_term and utm_content are optional refinements for paid-search keywords and creative variants respectively. Without a source or medium, GA4 cannot attribute the visit, and without a campaign name your reporting loses the ability to separate one push from another.
Does capitalization matter in UTM links?
Yes — GA4 is case-sensitive. utm_source=Newsletter and utm_source=newsletter create two separate rows in your reports, splitting the same channel's traffic. The same applies to mediums and campaign names. Pick lowercase for every value and never vary it; this builder warns on capitalized values and offers a one-click lowercase fix before you copy the link.
What is the difference between utm_source and utm_medium?
utm_source answers "who sent the visitor" — the specific referrer like google, instagram or your newsletter platform. utm_medium answers "what kind of channel it was" — the general category like cpc for paid clicks, email, social, organic or referral. A practical pattern: source names the platform, medium names the category — utm_source=instagram&utm_medium=social for organic posts versus utm_source=meta-ads&utm_medium=cpc for paid ones.
Where do I see UTM data in GA4?
Open Reports → Acquisition → Traffic acquisition. The session source/medium and session campaign dimensions carry your utm values once visits start arriving. If tagged traffic shows up under (Other), the medium didn't match GA4's default channel definitions — use recognized mediums like cpc, email, social, organic or referral so rows land in the expected channels.
Can I use UTM links in email?
Yes, and you should — email is one of the classic UTM use cases. Use utm_medium=email so GA4 routes the traffic to the Email channel, and add utm_content per link placement (header button, footer link) to see which position earns the clicks. Watch two things: some spam filters are suspicious of long, heavily-parameterized URLs, and Outlook clients break on links split across lines — keep the link on one line when pasting.
Is there a character limit for UTM links?
There is no official GA4 limit, but practical limits exist: some social and messaging platforms truncate long URLs — anything past roughly 1,900 characters risks losing trailing parameters — and browsers handle multi-thousand-character URLs inconsistently. The builder warns beyond 1,900 characters; if you hit it, shorten the campaign name or move long parameter sets behind a redirect.
References & standards
Related tools
Code Snippet to Image
Convert code snippets into beautiful, high-resolution images for sharing
Creator Tax Form Guide
Build a privacy-first checklist for creator payout tax setup across TikTok, YouTube, Twitch, Patreon, Meta, X, Substack, Spotify and app stores.
Freelance Invoice Generator
Create and download professional invoices as PDF directly in your browser
Golden & Blue Hour
Twilight, golden hour and blue hour windows for any date and place.
Hourly Rate Calculator
Calculate your minimum freelance hourly rate based on income goals and expenses
Social Frame Studio
Convert screenshots into social media ready posts with backgrounds and frames