UTM URL Generator
Build a GA4 campaign URL from a landing page, keep or replace existing UTM tags, and catch missing fields, channel mismatches, and long links.{{ campaignUrl }}
| Parameter | Value | Role | Status | Copy |
|---|---|---|---|---|
{{ row.key }} |
{{ row.displayValue }} | {{ row.role }} | {{ row.status }} |
| Check | Status | Detail | Copy |
|---|---|---|---|
| {{ row.check }} | {{ row.status }} | {{ row.detail }} |
Introduction:
A campaign link has to do two jobs at once. It must take the visitor to the right landing page, and it must carry enough attribution labels for analytics reports to explain where that visit came from. When those labels are inconsistent, the landing page still loads, but the traffic can fragment across several source, medium, or campaign rows.
UTM parameters are ordinary query-string values added to a URL. They sit after the question mark, travel with the click, and describe the marketing context rather than the page content. Analytics tools use those labels to group visits from newsletters, paid ads, partner links, QR codes, social posts, and other campaign placements.
utm_source- The sender, platform, publication, list, or partner that produced the click, such as
newsletterorfacebook. utm_medium- The channel type that should group the click, such as
email,cpc,paid_social,referral, orsms. utm_campaign- The named promotion, launch, sale, or initiative that should collect related traffic under one reporting label.
The useful habit is not adding every possible tag. It is choosing stable labels before the link is shared. Spring Sale, spring_sale, and spring-sale may describe the same promotion to a person, yet analytics can treat them as different values. A small naming rule, such as lowercase words joined by underscores, prevents avoidable cleanup later.
- Use one source value for the same sender or platform instead of switching between brand names, abbreviations, and ad-account labels.
- Reserve medium for the channel family, not the campaign theme, creative name, or audience segment.
- Keep campaign names stable across creative variants, then use content or term values for the narrower split.
- Test redirects and shortened links because any system in the click path can preserve, rewrite, or drop query parameters.
Optional labels add detail when the reporting plan has a real place for them. A campaign ID can connect a link to uploaded cost or campaign data. A source platform can separate the traffic sender from the buying or sending platform. Term and content values are usually better for keyword, audience, creative, placement, or link-variant questions than for broad campaign names.
A tagged URL is still only one part of attribution. Ad platforms may add their own identifiers, consent settings can change what analytics receives, and custom channel groups can classify traffic differently from the raw labels. Build clean UTM values first, then check a real click path before treating early campaign data as settled.
How to Use This Tool:
Start with the landing page, then add the labels that should appear in campaign reports.
- Enter
Destination URL. Use an HTTP or HTTPS landing page. If you paste a host without a protocol, the URL is parsed as HTTPS. Existing non-UTM query values, such asref=partner, stay on the generatedCampaign URL. - Fill
Campaign source,Campaign medium, andCampaign name. Until all three have values, the summary showsNeeds UTM fieldsand the result tabs stay hidden. - Add
Campaign IDandSource platformwhen your GA4 setup, cost import, ad platform, or campaign spreadsheet uses those fields. AddCampaign termandCampaign contentwhen keyword, audience, creative, placement, or link-variant detail would help later analysis. - Choose
Existing UTM handlingbefore copying a previously tagged link.Replace standard UTM valuesrefreshes supported UTM fields,Keep existing values, fill missingleaves existing supported fields alone, andStrip all existing utm_*removes stale or unknown campaign labels before adding the current set. - Use
Advancedwhen names need cleanup.Value formattingcan preserve text, lowercase words, convert values tolowercase_snake_case, or convert values tolowercase-kebab-case.Normalize valuesapplies the selected format to the visible fields. - Read
UTM Parameter Ledgerto confirm which keys were included, recommended, omitted, or missing. Then checkGA4 Hygiene Auditfor channel, naming, recommended-field, existing-UTM, and URL-length review notes. - Copy
Campaign URLonly after the ledger contains the required trio and theGA4 channel hintmatches the channel you expect to review later.
If the Fix campaign URL inputs alert appears, correct the named problem first. The common blockers are a blank destination, a non-HTTP destination, or a missing source, medium, or campaign value.
Interpreting Results:
The summary is a launch check, not proof of attribution. It shows the destination host, the number of included UTM parameters, the GA4 channel hint, the existing-UTM policy, the formatting mode, and the final URL length. A clean summary means the generated URL is structurally ready; it does not mean GA4 has received traffic.
| Result Cue | What It Means | What To Check |
|---|---|---|
Included |
The parameter is present in the final campaign URL. | Compare spelling, case, and separators against your campaign naming rule. |
Recommended |
A recommended field such as utm_id or utm_source_platform was not added. |
Add it when cost import, campaign upload, or platform reporting depends on that field. |
Unassigned risk |
The source, medium, and campaign text did not match the built-in channel patterns. | Change the medium or source if the traffic should land in a known GA4-style channel family. |
URL length |
The audit flags URLs longer than 2000 characters for review. | Shorten labels before using the link in emails, ads, QR codes, printed materials, or partner handoffs. |
The main false confidence is treating the GA4 Hygiene Audit as a live analytics test. The audit checks the generated URL and naming hygiene. After launch, click the link through the same redirect path users will take, confirm the landing page still contains the UTM query values, and compare early traffic-source rows with the UTM Parameter Ledger.
Technical Details:
A campaign URL is a normal HTTP or HTTPS URL with campaign labels written into the query string. The question mark starts the query string, ampersands separate key-value pairs, and URL encoding represents spaces or punctuation safely inside the address. Existing non-UTM parameters can coexist with UTM parameters because each query key keeps its own name.
Manual UTM tagging works by passing plain text values to analytics. GA4 guidance emphasizes the required trio of utm_source, utm_medium, and utm_campaign, while also recognizing fields such as utm_id, utm_source_platform, utm_term, and utm_content. The values are case-sensitive reporting text, so consistent naming is a data-quality rule rather than a style preference.
Transformation Core:
| Stage | Rule | Result |
|---|---|---|
| Destination parsing | Only HTTP and HTTPS destinations are accepted; a missing protocol is interpreted as HTTPS for parsing. | Invalid or non-HTTP destinations block the result. |
| Required labels | utm_source, utm_medium, and utm_campaign must have nonblank values. |
The generated URL is withheld until the required trio is present. |
| Existing UTM policy | Supported UTM keys can be replaced, existing supported keys can be kept while missing keys are added, or every existing utm_* key can be stripped first. |
Pasted links can be refreshed without losing unrelated query values. |
| Value formatting | Values can be preserved, lowercased, converted to snake case, or converted to kebab case before URL encoding. | Reports are less likely to split one campaign across accidental spelling variants. |
| Optional blanks | Blank optional fields are normally omitted, but optional blank UTM keys can be included when fixed columns are needed. | Most campaign URLs stay compact; fixed-schema workflows can still include empty optional keys. |
Supported UTM Fields:
| Parameter | Role | Use When |
|---|---|---|
utm_source |
Required | The sender, publication, platform, or list must be identified. |
utm_medium |
Required | The channel type must be grouped, such as email, paid social, paid search, referral, SMS, or display. |
utm_campaign |
Required | Related clicks should roll up under one named campaign. |
utm_id |
Recommended | A stable campaign identifier is needed for cost upload, platform matching, or internal joins. |
utm_source_platform |
Recommended | The buying, sending, or traffic-management platform should be recorded separately from source. |
utm_term |
Optional | Keyword, audience, or targeting detail needs its own field. |
utm_content |
Optional | Creative, placement, button, message, or link variant should be compared inside the same campaign. |
Rule Core:
The channel hint is a local pattern check over source, medium, and campaign text. It is useful for catching obvious naming mistakes, but it is not a copy of a live GA4 property configuration.
| Hint Family | Typical Matching Text | Review Risk |
|---|---|---|
| Email, SMS, affiliate, audio, mobile push | Direct medium or source values such as email, sms, affiliate, audio, mobile or notification wording, or firebase. |
Misspellings can move a familiar channel into Unassigned risk. |
| Paid search, paid social, paid shopping, paid video | Paid markers such as cpc, ppc, paid, or platform and campaign clues that point to social, shopping, or video. |
Paid traffic can be mislabeled if source and medium disagree. |
| Organic social, organic video, organic search, referral | Mediums such as social, video, organic, referral, app, or link. |
Broad labels may not match a team's custom channel-group rules. |
Unassigned risk |
No supported source, medium, or campaign pattern is recognized. | Review the naming convention before the link is distributed. |
Formula Core:
The numeric summary values are counts over the generated URL and its parameter ledger.
Review conditions are deterministic: missing required fields block output, uppercase letters or spaces in included UTM values trigger a naming review, missing recommended fields trigger a recommended-field review, existing UTM keys produce an informational policy row, and generated URLs above 2000 characters trigger a length review.
Privacy Notes:
The campaign URL is assembled in the browser from the values you enter. Copying, downloading, and table exports use the generated text, and the typed values may also appear in the browser address for reloads or sharing.
- Do not put secrets, personal data, private offer rules, or customer identifiers in UTM values.
Open URLsends the finished URL to the destination site, including every query parameter in the generated address.- Any redirect, analytics tag, consent setting, or destination-site log that receives the URL may also receive the campaign labels.
Worked Examples:
Newsletter Launch:
A landing page such as example.com/launch?ref=footer under HTTPS with source newsletter, medium email, campaign spring_sale, campaign ID spring_2026_email_01, source platform mailchimp, and content hero_cta keeps ref=footer and adds the UTM labels. UTM Parameter Ledger should show the required trio as Included, and GA4 channel hint should read Email.
Paid Social Creative Split:
A Meta ad can use source facebook, medium paid_social, campaign spring_sale, source platform meta_ads, and content carousel_card_2. The generated Campaign URL keeps the campaign name stable while utm_content separates this creative from another ad in the same campaign. The expected GA4 channel hint is Paid Social.
Long QR Code Handoff:
A QR campaign with a very long destination path and several long label values can still produce a valid URL, but GA4 Hygiene Audit changes URL length to Review when the generated address is above 2000 characters. Shortening campaign, term, and content values makes the code easier to scan and safer to hand to a printer or partner.
Existing UTM Cleanup:
A pasted HTTPS link for example.com/pricing?utm_source=old&utm_medium=social&ref=partner can use Replace standard UTM values. The final Campaign URL preserves ref=partner, refreshes supported UTM keys, and records the selected policy in the Existing UTM policy audit row.
Invalid Destination:
If the destination uses an FTP scheme for example.com/file, Fix campaign URL inputs reports that the destination must be a valid HTTP or HTTPS URL. Changing the destination to HTTPS clears the blocker so the source, medium, and campaign values can be checked.
FAQ:
Which UTM fields are required?
Campaign source, Campaign medium, and Campaign name are required. They become utm_source, utm_medium, and utm_campaign in the generated URL.
Why does uppercase or spaced text get a review note?
UTM values are case-sensitive reporting text. Use Value formatting and Normalize values when uppercase letters or spaces are not part of the planned naming convention.
What happens to query parameters that are already on the URL?
Non-UTM query parameters stay on the destination. Existing UTM keys follow Existing UTM handling: replace supported values, keep supported values and fill missing ones, or strip every utm_* key before writing the current labels.
Why can the channel hint differ from GA4?
The hint uses built-in source, medium, and campaign patterns. GA4 can also be affected by auto-tagging, redirects, consent behavior, property settings, and custom or primary channel groups, so test a real click path after launch.
Does the generator include every GA4 campaign parameter?
It creates the commonly used source, medium, campaign, ID, source platform, term, and content fields. If your organization uses additional GA4 campaign parameters, add them through your own campaign process after checking how your reports consume them.
Does opening the generated URL send the UTM values?
Yes. Open URL opens the generated Campaign URL in a new tab, so the destination receives the query parameters like it would from a real campaign click.
Glossary:
- UTM parameter
- A query-string key and value used to label campaign traffic for analytics reporting.
- Source
- The sender, platform, publication, list, or referrer associated with a click.
- Medium
- The channel type, such as email, paid search, paid social, display, referral, affiliate, SMS, or push.
- Campaign
- The named promotion, launch, or marketing effort that should group related clicks.
- Source platform
- The buying, sending, or traffic-management platform connected to the campaign.
- Channel hint
- The best-effort GA4-style channel label based on source, medium, and campaign text.
- Auto-tagging
- An ad-platform feature that adds its own click identifiers or traffic-source details to campaign URLs.
- URL encoding
- The representation of query-string values so spaces and punctuation can travel safely inside a URL.
References:
- URL builders: Collect campaign data with custom URLs, Google Analytics Help.
- About traffic-source dimensions, Google Analytics Help.
- Default channel group, Google Analytics Help.