UTM URL Generator
Generate UTM campaign URLs from destination, source, medium, campaign, ID, platform, term, and content inputs with GA4 hygiene checks before launch.UTM URL Generator
- {{ error }}
- {{ warning }}
{{ 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:
UTM parameters are short query-string labels added to a landing URL so analytics reports can separate one campaign click from another. Source identifies the sender or platform, medium names the channel, and campaign names the marketing effort. Those three labels are the practical minimum for clean campaign attribution in Google Analytics 4 (GA4).
The value of a tagged URL depends on consistency. utm_medium=email, utm_medium=Email, and utm_medium=newsletter can create separate reporting rows even when they describe the same channel. A destination URL can also already contain query parameters, so the safest campaign link keeps useful non-UTM values while replacing stale tracking values deliberately.
UTM links work best when they answer a narrow reporting question. One campaign name should group the promotion, one source should identify where the click came from, and one medium should describe the channel type. Extra fields such as campaign ID, source platform, term, and content are useful when the team needs to join cost data, compare platforms, or separate two links inside the same message.
A tagged link does not prove that a campaign report will be perfect. Ad platform redirects, auto-tagging, browser privacy features, redirects, and inconsistent naming can still affect attribution. The link is the clean starting point; live reporting still needs a review after clicks begin.
Technical Details:
A campaign URL is an ordinary HTTP or HTTPS URL plus query parameters. The parameter keys carry the campaign meaning, while the values are URL-encoded so spaces, punctuation, and symbols can travel safely inside the address. Existing non-UTM query values, such as ref=partner, can remain part of the destination while campaign parameters are added or refreshed.
GA4 reporting treats UTM values as text labels. Case, spelling, separators, and whitespace matter because analytics rows are grouped by the exact submitted value. Lowercase, compact naming makes repeated reports easier to compare, especially when several people create links for the same campaign.
Rule Core:
| Parameter | Role | Meaning | Review Cue |
|---|---|---|---|
utm_source |
Required | Sender, publisher, platform, list, or referring source. | Use one stable source value for each sender or platform. |
utm_medium |
Required | Marketing channel such as email, cpc, paid_social, display, or referral. |
Choose a value that should group into the intended GA4 channel. |
utm_campaign |
Required | Campaign, promotion, launch, or initiative name. | Keep the same campaign value across creative variants in the same effort. |
utm_id |
Recommended | Stable campaign identifier for joining upload or cost data. | Add it when reporting needs a platform or internal campaign ID. |
utm_source_platform |
Recommended | Buying, sending, or traffic-management platform. | Useful when source and platform are not the same label. |
utm_term |
Optional | Paid keyword, audience, or targeting label. | Leave blank unless keyword or audience reporting is part of the campaign. |
utm_content |
Optional | Creative, placement, button, or message variant. | Use it to separate links inside the same campaign and channel. |
The generator accepts a destination that can be parsed as HTTP or HTTPS. When a protocol is missing, HTTPS is assumed for parsing. Invalid schemes are rejected, and the required source, medium, and campaign fields must have values before a campaign URL can be produced.
Transformation Core:
| Choice | Behavior | Practical Effect |
|---|---|---|
Replace standard UTM values |
Deletes the supported UTM keys, then writes the current values. | Best for refreshing an old tagged link without disturbing other query parameters. |
Keep existing values, fill missing |
Leaves existing supported UTM keys and adds only absent keys. | Useful when a source system already owns part of the tracking scheme. |
Strip all existing utm_* first |
Removes every query key whose name begins with utm_, then writes the supported fields. |
Best when a pasted destination contains unknown or stale campaign labels. |
| Value formatting | Preserve text, lowercase words, lowercase_snake_case, or lowercase-kebab-case. |
Controls naming consistency before URL encoding. |
| Empty optional fields | Can include blank non-required keys when a fixed-column handoff needs them. | Normally leave this off so campaign URLs stay shorter and cleaner. |
The GA4 hygiene audit is rule-based. It checks that the required UTM trio exists, compares source and medium against common channel patterns, flags uppercase letters or spaces, calls out missing recommended GA4 fields, notes existing UTM handling, and reviews URLs longer than 2000 characters. These checks do not contact an analytics property; they are naming and structure checks before the URL is used.
The JSON payload mirrors the current input settings, campaign URL, URL length, total query-parameter count, UTM count, channel hint, existing UTM keys, parameter ledger, and audit rows. Treat it as a handoff record for review, not as evidence that GA4 has already received traffic.
Everyday Use & Decision Guide:
Start with the destination page and the required trio: Campaign source, Campaign medium, and Campaign name. For an email launch, a useful first pass is source newsletter, medium email, and campaign spring_sale. That should produce a ready campaign URL, a channel hint of Email, and included rows for the required parameters.
Add Campaign ID and Source platform when the link needs to connect back to a platform record, upload file, or cost report. Use Campaign term for keyword or audience labels, and Campaign content for button, placement, creative, or message variants inside the same campaign.
- Use
Replace standard UTM valueswhen refreshing a link that may already contain old source, medium, or campaign values. - Use
Keep existing values, fill missingwhen another team or platform already controls some campaign labels. - Use
Strip all existing utm_* firstwhen pasted links contain unknown UTM keys you do not want to preserve. - Choose
lowercase_snake_casewhen repeated reporting rows matter more than exact wording. - Leave
Include empty optional fieldsoff unless a downstream spreadsheet or review process needs fixed keys.
The main stop sign is the Fix campaign URL inputs alert. A missing destination, invalid URL, or blank source, medium, or campaign value blocks the result. Review tracking hygiene is softer: the URL can be copied, but the audit found a naming, channel, recommended-field, existing-UTM, or length issue worth checking.
Do not treat a clean URL as proof that attribution will read correctly in every report. Copy the Campaign URL, review UTM Parameter Ledger, and compare the GA4 Hygiene Audit against your naming standard before sending the link into an email, ad, QR code, or partner handoff.
Step-by-Step Guide:
Build the link from the destination outward, then use the ledger and audit before copying the final address.
- Enter
Destination URL. Existing non-UTM query values should remain in the finalCampaign URL; if the URL cannot parse as HTTP or HTTPS, the alert asks for a valid destination. - Fill
Campaign source,Campaign medium, andCampaign name. The summary should switch fromNeeds UTM fieldsto the destination host once all required values are present. - Add
Campaign ID,Source platform,Campaign term, andCampaign contentwhen those fields are meaningful for the campaign. Blank recommended fields appear asRecommendedin the ledger. - Choose
Existing UTM handling. The summary badge should show whether the current run will replace UTMs, fill missing values, or striputm_*keys first. - Open
Advancedand chooseValue formatting. UseNormalize valuesif the current field text should be rewritten to the selected preserve, lowercase, snake, or kebab format. - Review the summary badges and
GA4 Hygiene Audit. If the channel hint isUnassigned risk, confirm whether the source and medium match your reporting convention before copying. - Open
UTM Parameter Ledger. Each row should show the key, value, role, and status so missing or blank values are visible before launch. - Copy from
Campaign URL, or use the CSV, DOCX, or JSON outputs as the review handoff after the audit rows match the campaign plan.
A finished run should leave a valid destination, included required UTM rows, a channel hint that fits the campaign, and no review note you cannot explain.
Interpreting Results:
The top summary names the destination host, UTM count, GA4 channel hint, and final URL length. Email, Paid Search, Paid Social, Display, Referral, and similar hints mean the source and medium matched a known pattern in the audit rules. Unassigned risk means the values may still be valid for your organization, but they do not match the built-in channel hint logic.
| Result Cue | Meaning | Next Check |
|---|---|---|
Included |
The UTM key is present in the final campaign URL. | Confirm the value matches the naming standard before copying. |
Recommended |
A recommended GA4 field such as utm_id or utm_source_platform is absent. |
Add it when cost import, campaign upload, or platform reporting needs that key. |
Review |
The URL can still be built, but naming, channel hint, recommended-field, or length hygiene needs attention. | Resolve the row unless the unusual value is deliberate and documented. |
URL length |
URLs above 2000 characters are flagged for review. | Shorten campaign values before using the link in emails, ads, QR codes, or handoffs. |
The common false confidence is assuming that a pass in the audit equals confirmed attribution. The audit checks the URL structure and naming hygiene. After publishing, test the actual click path, watch for redirects that drop query parameters, and compare early GA4 traffic-source rows with the values in UTM Parameter Ledger.
Worked Examples:
Newsletter Launch Link:
A destination of https://example.com/launch?ref=footer, source newsletter, medium email, campaign spring_sale, campaign ID spring_2026_email_01, source platform mailchimp, and content hero_cta should keep ref=footer and add the UTM values. GA4 Hygiene Audit should pass the required trio, channel hint, recommended fields, and naming consistency when snake formatting is used.
Paid Social Variant:
A Meta ad can use source facebook, medium paid_social, campaign spring_sale, source platform meta_ads, and content carousel_card_2. The expected channel hint is Paid Social. utm_content separates that creative from another ad in the same campaign without changing the campaign name.
Existing UTM Cleanup:
A pasted URL such as https://example.com/pricing?utm_source=old&utm_medium=social&ref=partner can use Replace standard UTM values. The final Campaign URL should preserve ref=partner, replace the supported UTM values, and show the current policy in Existing UTM policy.
Unassigned Medium Review:
If source newsletter, medium weekly_digest, and campaign spring_sale are entered, the URL can still be generated, but GA4 channel hint should ask for review. Changing medium to email makes the hint clearer for ordinary email reporting and reduces the chance of traffic landing in an unexpected channel group.
Invalid Destination:
A destination such as ftp://example.com/file fails because the generator only accepts HTTP and HTTPS destinations. Replacing it with https://example.com/file clears the URL error so the required UTM fields can be evaluated.
FAQ:
Which UTM fields are required?
Campaign source, Campaign medium, and Campaign name are required before the campaign URL is ready. The ledger maps them to utm_source, utm_medium, and utm_campaign.
Why does the audit warn about uppercase letters?
GA4 treats differently capitalized values as separate text values. If the audit flags uppercase or spaces, use Value formatting and Normalize values to make the campaign labels more consistent.
What happens to existing query parameters?
Non-UTM query parameters stay on the destination URL. Existing UTM keys follow the selected policy: replace supported UTM values, keep existing values and fill missing ones, or strip every utm_* key before adding the current fields.
Why is my channel hint Unassigned risk?
The source and medium did not match the built-in channel hint patterns. The URL may still be intentional, but the medium value should be checked against your GA4 channel conventions before launch.
Does Open URL change anything?
Open URL opens the generated campaign URL in a new browser tab when the result is ready. That navigation sends the query parameters to the destination page just like 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 the click.
- Medium
- The channel type, such as email, paid search, paid social, display, referral, or SMS.
- Campaign
- The named marketing effort or promotion that should group related clicks.
- Source platform
- The buying, sending, or traffic-management platform connected to the campaign.
- Channel hint
- The audit's best-effort GA4-style channel label based on the current source and medium values.
- URL encoding
- The process of representing query-string values safely inside a URL.
References:
- URL builders: Collect campaign data with custom URLs, Google Analytics Help.
- Default channel group, Google Analytics Help.
- Traffic-source dimensions, Google Analytics Help.