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
- 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.
- Pick a channel preset (google/cpc, facebook/social, newsletter/email) or type your own source and medium. Name the campaign with hyphens.
- Leave Lowercase every UTM value on unless you have a documented reason not to. GA4 cannot rename mixed-case rows later.
- Copy the tagged URL. Check the channel badge and the encoded-parameter table before you paste it into ads, email, or social.
- 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.
Related Tools
URL Encoder / Decoder
Encode or decode percent-encoded URLs, or build and parse query strings from key/value pairs. encodeURIComponent, encodeURI, and parse-back - all in your browser.
Slug Generator
Turn any title or phrase into a clean, SEO-friendly URL slug. Lowercase, strip accents, and choose hyphen or underscore separators - free, instant, and private.
Open Graph Tag Generator
Generate Open Graph and Twitter Card meta tags from a title, description, URL, and image. Free OG tag generator with live HTML and a social preview.