UTM Builder
NewBuild trackable campaign URLs with utm_source, medium, campaign and more.
No history yet — built URLs will appear here.
Runs entirely in your browser. Nothing is uploaded.
What is a UTM builder and why do you need one?
A UTM builder adds tracking parameters to any URL so analytics tools like Google Analytics and GA4 can tell you exactly which campaign, channel and creative drove each visit. Without UTM tags, traffic from a paid ad, an email newsletter or a social post often lands in 'Direct' with zero attribution — leaving you unable to measure what's actually working.
This free, browser-based campaign URL builder lets you paste in any destination URL, fill in the UTM fields, and instantly get a properly-encoded tracking URL ready to copy. Platform presets pre-fill the correct source and medium for Google Ads, Facebook, LinkedIn, email and more. Everything runs locally — no sign-up, no server, no data ever sent anywhere.
The 5 UTM parameters explained
Every UTM URL is built from up to five parameters. utm_source identifies who sent the traffic — a search engine (google), a social network (facebook), or an email provider (mailchimp). utm_medium names the channel — cpc for paid ads, email for newsletters, social for organic posts. utm_campaign is your marketing initiative name (summer-sale, product-launch, black-friday).
utm_term captures the paid search keyword that triggered the ad (running-shoes). utm_content differentiates two links or creatives in the same campaign — header-banner vs sidebar-link — essential for A/B testing and multi-link emails. Source, medium and campaign are the practical minimum for clean GA4 attribution; term and content add precision for paid and split-tested campaigns.
Platform presets for Google Ads, Facebook, LinkedIn and email
Different platforms use conventional source/medium pairs that analytics dashboards expect. Paid search from Google should be tagged google / cpc; Facebook organic social uses facebook / social; LinkedIn paid uses linkedin / cpc; email campaigns use the provider name (mailchimp, klaviyo) with email as the medium. Deviating from these conventions fragments your traffic across mismatched sources in GA4.
The quick-preset buttons pre-fill the right source and medium for Google Ads, Google Organic, Facebook, Instagram, LinkedIn, Twitter/X, Pinterest, YouTube, Newsletter and Mailchimp. Add your campaign name, hit Copy, and the URL is ready. The history panel stores your last ten built URLs in localStorage — copy any of them as a starting point for a new campaign without retyping from scratch.
Best practices: lowercase, naming conventions, and validation
Google Analytics 4 is case-sensitive: utm_source=Google and utm_source=google appear as two separate sources in your reports, fragmenting your campaign data. The Enforce lowercase toggle converts all parameter values automatically — turn it on and leave it on. Replace spaces with hyphens in campaign names (summer-sale not summer sale) so URLs stay clean and human-readable.
Agree on a fixed set of medium values with your team before your first campaign: cpc, email, social, display, affiliate. Stick to them across every channel. The more consistent your UTM tags, the cleaner your GA4 acquisition reports and the more reliable your channel-attribution data when making budget decisions.
How this compares to Google's Campaign URL Builder
Google maintains its own Campaign URL Builder at ga-dev-tools.google.com. It's a bare-bones form with no presets, no lowercase validation, and no history. You type every field from scratch on every URL, and nothing stops a team member from entering 'Google' with a capital G — which creates a separate source in GA4 from 'google' (lowercase), splitting your data without warning.
This tool adds platform presets that auto-fill source and medium for the most common channels, enforces lowercase on all parameter values, and saves your last ten URLs in localStorage so you can duplicate a previous campaign's structure without retyping. There's also required-field validation so you can't accidentally generate an incomplete UTM URL.
How UTMs work in Google Analytics and GA4
When a visitor clicks a UTM-tagged link, GA4 reads the utm_* parameters from the landing-page URL and stores them as session-level attributes. They surface under Reports → Acquisition → Traffic Acquisition as Source / Medium / Campaign dimensions. You can build Explorations that slice by utm_content or utm_term to see which creative or keyword drove conversions — data no ad platform can give you with the same cross-channel consistency.
GA4's data-driven attribution model uses UTM source/medium/campaign signals to distribute credit across the full customer journey. Without UTM tags, GA4 falls back to 'Direct' or '(other)', obscuring the real value of your newsletters, social posts and paid campaigns. Consistent UTM tagging is one of the highest-ROI disciplines in digital marketing analytics.
Free, private and instant
There's nothing to install and no account required. Every tracking URL is assembled locally in your browser — your destination URL, campaign name and parameter values never leave your device. The built-in history panel stores your last ten campaign URLs in localStorage, so you can adapt a previous URL for a new campaign without retyping every field.
Bookmark this UTM builder and share it with your marketing team as your standard tool for campaign URL generation. Consistent UTM tagging starts with every link you send — and this tool makes it fast enough that there is no excuse to skip it.
The history of UTM parameters: from Urchin to Google Analytics
Urchin Software Corporation was founded in 1998 and built one of the first commercial web analytics platforms. Urchin introduced the five query-string parameters now known as UTM tags — naming them Urchin Tracking Modules — to let marketers pass campaign metadata through any inbound URL so the analytics engine could segment visits by source, channel and initiative. When Google acquired Urchin in 2005 and relaunched the product as Google Analytics, the UTM parameter schema came with it and became the de-facto standard for the entire digital marketing industry.
The five parameters that shipped with Urchin remain unchanged today. utm_source records who sent the traffic — the referring platform or publisher (facebook, newsletter, google). utm_medium classifies the marketing channel — the mechanism of delivery (cpc, email, social, display, affiliate). utm_campaign names the specific marketing initiative (black-friday-2024, product-launch). utm_term captures the paid search keyword that triggered the ad (running-shoes, cheap-flights) and was designed specifically for search advertising. utm_content differentiates creatives or links within a single campaign — the field where a header banner and a sidebar banner carrying identical source, medium and campaign values can still be told apart in reports.
The data flow from URL to report works through a simple browser mechanism. When a visitor lands on a UTM-tagged page, the analytics tag reads the utm_* parameters from the URL on page load and stores them in a first-party cookie on the visitor's browser — typically with a 30-day expiry in Universal Analytics and a session-scoped copy in GA4. Every subsequent event and conversion in that session is associated with those stored campaign values, so a purchase completed three days after the original ad click still credits the correct source, medium and campaign in your acquisition reports.
Naming conventions: preventing data chaos before it starts
Google Analytics 4 is case-sensitive for UTM values. utm_source=Facebook and utm_source=facebook are stored as two distinct sources and appear on separate rows in every acquisition report. A single email campaign where five team members each typed the source slightly differently — Mailchimp, mailchimp, MailChimp, mail-chimp, mc — produces five rows in GA4 instead of one, making campaign performance impossible to read at a glance. The single highest-value UTM discipline is enforcing consistent lowercase with hyphens as the universal separator: not underscores, not spaces, not camelCase. Spaces in URLs get percent-encoded into %20, making links look messy and increasing the chance of link-breaking in certain email clients.
The underlying cause of most UTM chaos is the absence of a campaign taxonomy document — a shared spreadsheet that lists every permitted value for utm_source, utm_medium and common utm_campaign prefixes, agreed on before the first link is built. The medium dimension in particular needs discipline: utm_medium should always name the channel category (email, social, cpc, display, affiliate, referral), never the specific platform. The platform belongs in utm_source. A common mistake is setting utm_medium=instagram — which creates a new medium alongside email and cpc in your channel groupings — when the correct pair is utm_source=instagram&utm_medium=social.
One frequently misunderstood GA4 phenomenon is the 'direct / none' mystery. Sessions where GA4 shows source=direct and medium=none are not necessarily users who typed your URL. A significant share are dark social visits: links shared through mobile messaging apps (WhatsApp, iMessage, Telegram), desktop chat apps (Slack, Teams), or email clients that strip the HTTP Referer header. Because no referrer is passed and there is no UTM tag on the link, GA4 has no attribution data and defaults to direct. Adding UTM tags to any link you share in dark-social channels — even a casual Slack message to a prospect — converts unattributed direct sessions into trackable campaign traffic.
UTMs across advertising platforms: Google Ads, Meta, and the click ID ecosystem
In Google Ads, marketers choose between manual UTM tagging and auto-tagging. Auto-tagging appends a gclid (Google Click Identifier) parameter to every ad click automatically. The gclid carries richer data than UTMs — including match type, keyword variant and device — but it only integrates natively with Google Analytics 4 and Google's own measurement products. Manual UTM tagging works in every analytics platform and is the right choice for teams using a third-party analytics stack (Mixpanel, Amplitude, Heap, Segment) alongside or instead of GA4. Many teams run both: auto-tagging for the native Google Ads ↔ GA4 integration and manual UTMs as a universal fallback.
Meta (Facebook and Instagram) Ads append fbclid — the Facebook Click Identifier — for cross-device attribution within Meta's own reporting. The fbclid was introduced in part to compensate for the cross-device and cross-browser attribution gaps that exist when tracking relies purely on browser cookies. However, fbclid is only readable by Meta's pixel; your own GA4 instance cannot decode it. For this reason, Meta's own ads manager recommends adding UTM parameters alongside fbclid — utm_source=facebook, utm_medium=cpc or paid-social, utm_campaign=your-campaign-name, and utm_content to distinguish ad creatives. Similarly, TikTok appends ttclid, Microsoft Advertising appends msclkid, and Pinterest appends epik — each designed for attribution fidelity within their respective platform ecosystems. UTM parameters remain the only cross-platform attribution layer that works consistently regardless of which ad network sent the click.
For email marketing platforms, most mature ESPs — MailChimp, Klaviyo, SendGrid, HubSpot — offer automatic UTM appending in campaign settings. The standard convention is utm_source=mailchimp (or whichever platform), utm_medium=email, utm_campaign=your-email-name. utm_content is particularly valuable in email because a single message might contain a hero CTA, a secondary button and three inline text links all pointing at the same URL. Tagging each with a distinct utm_content value (hero-cta, secondary-button, inline-link-1) reveals which link placement drives the most clicks in GA4 — actionable insight for improving email layout in future sends.
Attribution models, GA4, and UTMs in a post-cookie world
Attribution models determine how credit for a conversion is distributed across the marketing touchpoints in a customer's journey. Last-click attribution — the default in most analytics platforms for years — assigns 100 percent of the conversion credit to the final touchpoint before the sale. This systematically overvalues bottom-funnel channels like branded paid search and direct, and undervalues the awareness and consideration channels — paid social, display, email — that introduced the customer to the brand earlier in their journey. First-click attribution makes the opposite error, awarding all credit to the first touchpoint and inflating the apparent value of prospecting campaigns. Linear attribution spreads credit equally across every touchpoint; time-decay weights touchpoints more heavily the closer they are to the conversion. Data-driven attribution, available in GA4 and Google Ads for accounts with sufficient conversion volume, uses machine learning to estimate the incremental contribution of each touchpoint — currently the most accurate single-model approach for most advertisers. A brand whose Meta awareness campaigns introduce users who later convert via branded Google search would see Meta's attributed value nearly double when switching from last-click to data-driven attribution, often reversing channel budget decisions that last-click data had suggested.
Universal Analytics was sunset by Google in July 2023, replaced by GA4 as the default Google Analytics product. GA4 uses a fundamentally different data model: every user interaction is an event, and sessions are a derived concept built from groups of events rather than a primary data container. UTM parameters in GA4 associate with the session_start event, and their values are attached as session-scoped custom dimensions to all subsequent events in the session. The acquisition reports in GA4 expose the same source / medium / campaign taxonomy as UA did, but the underlying event model makes UTM data more flexible — you can segment any event or conversion by the utm_content or utm_term value from the session that drove it, using Exploration reports.
The decline of third-party cookies — driven by Safari's ITP (Intelligent Tracking Prevention), Firefox's ETP, and the eventual deprecation roadmap for Chrome — has made UTM tracking more important, not less. Because UTM parameters travel in the URL itself, they are first-party data that survives cookie-blocking, browser privacy restrictions, and ad blocker interference. A UTM-tagged link works regardless of whether the visitor has cookies enabled. This makes UTMs significantly more reliable post-iOS 14 than any tracking approach that depends on third-party cookie persistence. For brands investing in server-side tagging — sending analytics data from a server they control rather than from the visitor's browser — UTM parameters are typically forwarded from the browser to the server-side endpoint as the most stable attribution signal, bypassing ad blockers and browser ITP rules entirely. Finally, UTM parameters in QR codes extend campaign tracking into the physical world: the full UTM URL is encoded inside a QR code printed on a product package, in-store signage, or a magazine ad. When a customer scans the code and lands on your site, GA4 captures the utm_source, utm_medium and utm_campaign values exactly as it would from a digital ad click — giving you a reliable offline-to-online attribution signal that would otherwise be invisible in your analytics data.
Frequently asked questions
What does UTM stand for?
UTM stands for Urchin Tracking Module — named after Urchin Software, the analytics company Google acquired in 2005 and turned into Google Analytics. UTM parameters are query-string tags appended to URLs so analytics tools know exactly where a visitor came from. Example: https://example.com/page?utm_source=newsletter&utm_medium=email&utm_campaign=june-launch.
What are UTM parameters?
UTM parameters are five URL query-string tags — utm_source, utm_medium, utm_campaign, utm_term and utm_content — that tell analytics tools like Google Analytics and GA4 which campaign, channel, and creative drove a visit. Without them, traffic from emails, paid ads or social posts often lands in 'Direct' with no attribution, hiding the real value of your campaigns.
What are the most common UTM parameters?
The three most common are utm_source (who sent the traffic — google, newsletter, facebook), utm_medium (the marketing channel — cpc, email, social) and utm_campaign (the initiative name — summer-sale, product-launch). utm_term captures the paid keyword and utm_content differentiates two ads or links pointing at the same page, making it essential for A/B testing.
What are the 5 UTM parameters?
The five standard UTM parameters are: (1) utm_source — who sent the traffic (google, mailchimp, facebook); (2) utm_medium — the marketing channel (cpc, email, social, display); (3) utm_campaign — the campaign name (summer-sale, black-friday); (4) utm_term — the paid search keyword (running-shoes); (5) utm_content — to distinguish two creatives or links in the same campaign (header-cta vs sidebar-link).
Which UTM parameters are required?
All five parameters are optional from a URL standpoint, but utm_source, utm_medium and utm_campaign are treated as required in practice. GA4 uses them to populate the Source / Medium / Campaign dimensions under Acquisition reports. Without at least utm_source, sessions typically roll into 'Direct' traffic, hiding your campaign's real impact on your analytics data.
How to write a UTM parameter?
Add UTM parameters to the end of your URL as a query string. Start with ? after the page URL, then write each parameter as key=value, separated by &. Example: https://example.com/page?utm_source=google&utm_medium=cpc&utm_campaign=summer-sale. Values should be lowercase with hyphens instead of spaces. This builder generates the correctly encoded string automatically — fill in the fields and click Copy.
What is an example of a UTM?
Here's a complete UTM URL for a Google Ads campaign: https://example.com/landing?utm_source=google&utm_medium=cpc&utm_campaign=summer-sale&utm_term=running-shoes&utm_content=blue-banner. In GA4 this visit appears under Traffic Acquisition as 'google / cpc', inside the campaign 'summer-sale', with keyword 'running-shoes' and content variant 'blue-banner'.
What is a campaign URL?
A campaign URL (also called a tracking URL or UTM link) is any web link with utm_* parameters added so your analytics tool can identify which marketing campaign, channel and creative drove the click. The destination page loads normally — UTM parameters are invisible to the visitor but captured by GA4 before the page finishes loading.
What's the difference between utm_source, utm_medium and utm_campaign?
utm_source is WHO sent the traffic (google, facebook, mailchimp). utm_medium is HOW the traffic arrived — the marketing channel (cpc for paid ads, email for newsletters, social for organic posts). utm_campaign is the name of your initiative (summer-sale, black-friday). A helpful mental model: [source] sent visitors via [medium] as part of the [campaign] campaign.
How do UTMs work with Google Analytics / GA4?
When a user clicks a UTM-tagged link, GA4 reads the utm_* parameters from the landing-page URL on load and stores them as session-level attributes. They surface under Reports → Acquisition → Traffic Acquisition as Source / Medium / Campaign dimensions. GA4 also uses UTM signals for attribution modelling — without UTMs, sessions default to 'Direct' or '(other)', obscuring the real value of your campaigns.
Should UTM values be lowercase?
Yes — always. Google Analytics 4 treats UTM values as case-sensitive strings. 'Google' and 'google' appear as two separate sources in your reports, fragmenting your campaign data. Enable the 'Enforce lowercase' toggle in this builder to convert all parameter values automatically. Consistent lowercase is the single easiest UTM discipline to maintain across a team.
How does this compare to Google's Campaign URL Builder?
Google's own Campaign URL Builder at ga-dev-tools.google.com/campaign-url-builder is functional but minimal — it has no platform presets, no lowercase enforcement and no saved history. You have to type source and medium values from scratch every time, and there's nothing stopping you from accidentally entering 'Google' (capital G) and creating a split in your reports. This tool adds presets for Google Ads, Facebook, LinkedIn, email and more, enforces lowercase automatically, and stores your last ten URLs so you can adapt a previous campaign without retyping every field.
How do I track an email campaign with UTMs?
Set utm_medium=email and utm_source to your email platform (mailchimp, klaviyo, sendgrid). Name the campaign with utm_campaign (june-newsletter). Use utm_content to tag different links in the same email — utm_content=hero-cta vs utm_content=text-link. Full example: ?utm_source=mailchimp&utm_medium=email&utm_campaign=june-newsletter&utm_content=hero-cta. Use the Newsletter or Mailchimp preset in this builder to pre-fill the source and medium instantly.
How do I keep UTMs consistent across a team?
Agree on a naming convention before your first campaign: always lowercase, hyphens instead of spaces, and a fixed set of medium values (cpc, email, social, display, affiliate). Document the convention, share this builder with your team as the standard tool, and use the history panel to copy and adapt previous URLs as starting points for new campaigns. Inconsistent UTM casing is the leading cause of messy GA4 acquisition reports.
Does UTM tracking affect SEO?
UTM parameters themselves have no negative SEO impact — search engines canonicalize UTM-tagged URLs back to the base page. However, avoid sharing UTM-tagged URLs as internal links on your own site; internal UTM tags can pollute your analytics by making internal navigations look like external campaign sessions. Use UTM tags only on external links you share in ads, emails and social posts.
Does it require a login or account?
No. This UTM builder requires no account, no sign-up and no email address. Open it, fill in the fields, and copy your URL. The history panel saves your last ten URLs in your browser's localStorage — so they stay on your device and are never uploaded anywhere. Close the tab and reopen it, and your recent URLs are still there.
Related tools
View all toolsSlug Generator
Turn any title into a clean, SEO-friendly URL slug — bulk and accent-aware.
Meta Tag Generator
Generate SEO, Open Graph and Twitter Card meta tags with a live preview.
SERP Snippet Preview
Preview how your title and description look in Google, desktop and mobile.
Robots.txt Generator
Build a valid robots.txt with allow/disallow rules and a sitemap line.
Unit Price Calculator
Compare products by price per unit and find the best value.
HTTP Status Codes
Searchable reference of HTTP status codes with plain-English meanings.