Generated result
{{ summaryPrimary }}
{{ summaryLine }}
{{ badge.text }}
UTM URL generator inputs
Enter the landing page, such as https://example.com/launch?ref=partner.
Use one consistent source value per platform or sender.
Pick the channel label your analytics reports should group under.
Keep this stable across creative variants for the same campaign.
Optional. Use a stable ad platform or internal campaign identifier.
Optional. Use values such as mailchimp, meta_ads, google_ads, or sfmc when relevant.
Optional. Use for paid keyword, audience, or targeting labels.
Optional. Use this to split links inside the same campaign.
Replace is safest when refreshing a link; keep existing fills only missing UTM fields.
{{ helperHint }}
Use preserve for exact handoff or a lower-case mode for cleaner reporting rows.
Off omits blank optional parameters so the campaign URL stays clean.
{{ include_empty_optional ? 'On' : 'Off' }}
{{ campaignUrl }}
UTM parameter ledger
Parameter Value Role Status Copy
{{ row.key }} {{ row.displayValue }} {{ row.role }} {{ row.status }}
GA4 hygiene audit
Check Status Detail Copy
{{ row.check }} {{ row.status }} {{ row.detail }}

        
Customize
Advanced
:

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 newsletter or facebook.
utm_medium
The channel type that should group the click, such as email, cpc, paid_social, referral, or sms.
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.
Campaign URL anatomy with a destination, query marker, and source, medium, and campaign labels.

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.

  1. 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 as ref=partner, stay on the generated Campaign URL.
  2. Fill Campaign source, Campaign medium, and Campaign name. Until all three have values, the summary shows Needs UTM fields and the result tabs stay hidden.
  3. Add Campaign ID and Source platform when your GA4 setup, cost import, ad platform, or campaign spreadsheet uses those fields. Add Campaign term and Campaign content when keyword, audience, creative, placement, or link-variant detail would help later analysis.
  4. Choose Existing UTM handling before copying a previously tagged link. Replace standard UTM values refreshes supported UTM fields, Keep existing values, fill missing leaves existing supported fields alone, and Strip all existing utm_* removes stale or unknown campaign labels before adding the current set.
  5. Use Advanced when names need cleanup. Value formatting can preserve text, lowercase words, convert values to lowercase_snake_case, or convert values to lowercase-kebab-case. Normalize values applies the selected format to the visible fields.
  6. Read UTM Parameter Ledger to confirm which keys were included, recommended, omitted, or missing. Then check GA4 Hygiene Audit for channel, naming, recommended-field, existing-UTM, and URL-length review notes.
  7. Copy Campaign URL only after the ledger contains the required trio and the GA4 channel hint matches 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.

UTM URL result cues and follow-up checks
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:

Campaign URL transformation rules
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:

Supported UTM fields and roles
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.

Channel hint rule examples
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.

utm_count = count(included UTM parameter rows) query_parameter_count = count(all query parameters in the generated URL) url_length = characters(generated campaign URL text)

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 URL sends 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: