Your files never leave your device. All processing happens locally in your browser.
How do I build a UTM tracking link for a campaign?
Enter your landing-page URL, then set utm_source (where the traffic comes from, e.g. newsletter), utm_medium (the channel, e.g. email) and utm_campaign (the promotion name) — utm_term, utm_content and GA4’s utm_id are optional. The UTM Link Builder assembles a properly URL-encoded tracking link you can copy, save to a local library and export as CSV — 100% in your browser, nothing uploaded.
Use lowercase and hyphens — UTM values are case-sensitive, so “Email” ≠ “email” and splits your reports
Only tag external / campaign links — never internal links between your own pages (it resets GA sessions)
Values are URL-encoded and appended correctly, preserving any existing query string and #fragment
100% client-side — links and the saved library live only in your browser’s localStorage; nothing uploaded
What is
UTM Parameters
UTM (Urchin Tracking Module) parameters are tags added to a URL’s query string — utm_source, utm_medium, utm_campaign, utm_term and utm_content — that let analytics tools like Google Analytics 4 attribute a click to a specific marketing campaign, source and channel.
utm_source, utm_medium and utm_campaign are required; utm_term and utm_content are optional. GA4 also supports utm_id.
The five classic UTM parameters are utm_source (where the traffic comes from — google, newsletter, facebook), utm_medium (the channel type — cpc, email, social), utm_campaign (the promotion name — spring-sale-2026), utm_term (the paid-search keyword) and utm_content (differentiates A/B variants or two links in the same message). The first three are required; utm_term and utm_content are optional. Google Analytics 4 additionally supports utm_id (a campaign ID to tie manual tags to imported data), plus utm_source_platform, utm_creative_format and utm_marketing_tactic.
Yes. UTM values are case-sensitive, so “Facebook” and “facebook” become two different rows in your reports — always use lowercase.
UTM values are case-sensitive, which means “Email” and “email”, or “Facebook” and “facebook”, are recorded as separate sources in Google Analytics and fragment your campaign reports. The fix is to pick one convention — lowercase everywhere, with hyphens instead of spaces (spaces encode to %20 and look broken) — and use it every single time. This tool has a lowercase-normalize toggle on by default and warns you when a value contains uppercase letters or spaces.
No — never tag links between pages of your own site. A tagged internal click starts a new GA session and overwrites the visitor’s real source.
You should never add UTM parameters to internal links (links between pages of your own website). When a visitor clicks a UTM-tagged internal link, Google Analytics treats it as a brand-new session from that source/medium, wiping out where the visitor actually came from and corrupting your attribution. Only tag external / campaign links — ads, email links, social posts, QR codes and anything that brings people to your site from elsewhere.
No. It only builds and validates the URL. Your own analytics (GA4 etc.) reads the utm_* tags; the tool tracks nothing and uploads nothing.
This UTM Link Builder simply assembles and URL-encodes the tracking link and validates it against best practices — it does not collect, store or track any traffic itself. The utm_* parameters are read later by your own analytics platform (Google Analytics 4, for example) to attribute the click. Everything runs in your browser: the URL is built with plain JavaScript, and the saved link library is kept only in your browser’s localStorage — nothing is uploaded and we don’t track your links or campaigns.
Detailed Explanation
📖How It Works
UTM Parameters and How the Builder Assembles Them
A UTM (Urchin Tracking Module) link is a landing-page URL with campaign-tracking tags appended to its query string. AnyTool’s UTM Link Builder takes a base URL plus utm_source, utm_medium and utm_campaign (required) and utm_term, utm_content and GA4’s utm_id (optional), URL-encodes every value, and appends the parameters correctly — using “?” when the base URL has no query string and “&” when it already does, while preserving any existing parameters and #fragment. The five classic parameters describe where the traffic came from (source), the channel type (medium), the promotion (campaign), the paid keyword (term) and the creative variant (content).
GA4 also supports utm_id, plus utm_source_platform, utm_creative_format and utm_marketing_tactic
Values are percent-encoded with encodeURIComponent; existing query string and #fragment are preserved
A lowercase-normalize toggle and datalists of common medium/source values reduce typos
⚙️Methodology
Best-Practice Validation Built In
UTM values are case-sensitive, so “Email” and “email” — or “Facebook” and “facebook” — are recorded as separate sources and fragment campaign reports. The builder’s live lint flags a missing or invalid base URL, missing required parameters, uppercase letters and spaces (spaces encode to %20 and look broken), and reminds the user to keep naming consistent. It also warns never to tag internal links, because a UTM-tagged click between pages of your own site starts a new analytics session and overwrites the visitor’s original source, corrupting attribution.
Case-sensitivity is the top cause of fragmented UTM reports — lowercase everything
Use hyphens, not spaces (spaces encode to %20/+)
Never tag internal links — it resets the GA session and attribution
Consistent controlled vocabulary for source and medium keeps reports clean
🔒Privacy & Security
Private by Design — and It Does Not Track
The tool builds and validates the URL entirely in the browser with plain JavaScript; nothing is fetched, uploaded or sent to a server. The saved link library is persisted only to the browser’s localStorage, never to the cloud, and can be exported to CSV locally. Honesty matters here: UTM parameters are read by your own analytics platform (Google Analytics 4, for example) to attribute a click — this builder only creates the link, it does not itself collect, store or track any traffic.
URL assembly and CSV export run 100% client-side; nothing is uploaded
Saved links live only in localStorage — clearing browser data removes them
The tool builds the URL; your analytics (GA4 etc.) does the tracking
No accounts, no telemetry, works offline once cached
UTM link building: in-browser (AnyTool) vs typical online UTM builders
AnyTool builds and validates UTM tracking links locally and uploads nothing, keeping the saved library in your browser’s localStorage. It supports the classic five UTM parameters plus GA4’s utm_id, URL-encodes values, and warns about the two most common mistakes — case-sensitivity (which fragments reports) and tagging internal links (which resets sessions). The tool builds the URL; your own analytics does the attribution. Comparison as of July 2026.