Skip to content
ToolsMinify logo
SEO Tools
Popular

UTM Campaign URL Builder

Build a tagged campaign URL for Google Analytics 4 without sending the link anywhere.

About UTM Campaign URL Builder

Build a tagged campaign URL for Google Analytics 4 without sending the link anywhere. Paste a landing page, fill utm_source, utm_medium, and utm_campaign (plus optional utm_term and utm_content), and copy a correctly encoded query string. This page does not replace Google's official Campaign URL Builder - it exists for two jobs that builder skips: parse a tagged URL back into fields, and lowercase every value because GA4 treats google and Google as two sources. Existing query params stay. The hash stays after the query. A live GA4 Default Channel Group prediction shows whether cpc, social, or email will land in Paid Search, Organic Social, or Email.

How to Use UTM Campaign URL Builder

  1. Paste the destination URL. Bare hosts such as example.com/sale are accepted. Existing query keys are kept; old utm_source through utm_content are replaced.
  2. Pick a channel preset (google/cpc, facebook/social, newsletter/email) or type your own source and medium. Name the campaign with hyphens.
  3. Leave Lowercase every UTM value on unless you have a documented reason not to. GA4 cannot rename mixed-case rows later.
  4. Copy the tagged URL. Check the channel badge and the encoded-parameter table before you paste it into ads, email, or social.
  5. To audit a live link, switch to Parse a tagged URL, paste it, and Load into builder to fix one value.

UTM Campaign URL Builder Examples

Google Ads (Paid Search)

https://example.com/sale plus google / cpc / spring-sale becomes https://example.com/sale?utm_source=google&utm_medium=cpc&utm_campaign=spring-sale. GA4 Default Channel Group: Paid Search.

Newsletter with an existing query and a hash

https://example.com/sale?ref=partner#pricing plus newsletter / email / q1-launch keeps ref=partner, appends the three UTM tags, and leaves #pricing at the end. GA4 still reads the query because it sits before the hash.

Parse a mixed-case Facebook link

Paste https://example.com/?utm_source=Facebook&utm_medium=social&utm_campaign=Launch. Parse fills the fields, flags mixed case, and Load into builder plus the lowercase toggle rebuilds utm_source=facebook so reports do not split.

UTMs stuck after the hash

https://example.com/page#pricing?utm_source=google is a common paste mistake. GA4 never sees tags in the fragment. Parse flags it and Move UTMs before # yields https://example.com/page?utm_source=google#pricing.

A/B content on the same campaign

Same source, medium, and campaign, then utm_content=hero-cta on one button and utm_content=footer-link on the other. Session manual ad content in GA4 Explorations tells you which placement won.

Frequently Asked Questions about UTM Campaign URL Builder

How do I build a UTM campaign URL?
Paste the website URL, add utm_source, utm_medium, and utm_campaign (optional utm_term and utm_content), keep lowercase on, then copy the tagged link. This UTM campaign URL builder encodes values with %20, merges existing query strings, and keeps the hash after the query. Everything runs in your browser.
Does this replace Google's Campaign URL Builder?
No. Google's ga-dev-tools Campaign URL Builder owns the head term and is the official tagging form. Use this page when you need to parse a link back, enforce lowercase (GA4 values are case-sensitive), or see which Default Channel Group a source/medium pair will hit.
Why lowercase UTM parameters?
GA4 stores utm_source, utm_medium, and utm_campaign as exact strings. google and Google are two rows in Acquisition reports. Default Channel Group regexes are mostly case-insensitive, so CPC may still group as Paid Search while Source/Medium reports split. You cannot rename historical values. Lowercase at link creation.
Which UTM parameters are required?
Always set utm_source, utm_medium, and utm_campaign. Missing source or medium is how sessions fall into Direct or (not set). utm_term is for paid keywords. utm_content differentiates two links to the same URL. utm_id (cost-data import) on the destination is preserved but not edited here.
Can I parse UTM parameters from an existing URL?
Yes. Switch to Parse a tagged URL, paste the link, and read the five builder fields. Non-UTM query keys stay on the base URL. Load into builder to change one value and rebuild. Build and parse are inverses: a link generated here re-parses to the same values.
Will UTM tags break my existing query string or hash?
No. ref, gclid, and similar keys are kept in their original order. Old utm_source through utm_content are replaced so you never get duplicates. The fragment stays after the query. If someone put UTMs after #, GA4 will not see them - use Move UTMs before #.
Is my campaign URL uploaded?
No. Building, parsing, encoding, and channel prediction run only in your browser. Safe for unpublished landing pages and internal campaign names.