{{ summaryTitle }}
{{ summaryValue }}

{{ summaryLine }}

UTMs{{ resultsReady ? computation.values.utm_parameter_count : '—' }} Channel{{ resultsReady ? computation.values.channel_hint : '—' }} Length{{ resultsReady ? `${computation.values.url_length} chars` : '—' }}

{{ primaryCopyAnnouncement }}

Campaign URL inputs
A missing scheme is completed with https://.
Required. Keep one consistent value per source, such as newsletter or linkedin.
Required. Choose a stable channel label used across reporting.
Required. Keep the name stable across creative variants.
Recommended for GA4 manual tagging when an ID is available.
Recommended when a platform such as Mailchimp, Google Ads, or SFMC owns delivery.
Optional. Leave blank when the campaign has no keyword or audience dimension.
Optional. Use a consistent variant name such as hero_cta.
Non-UTM query parameters are preserved in every mode.
Google Analytics treats differently cased values as distinct; normalize only when it matches your naming policy.
The neutral default omits blank optional parameters.
{{ include_empty_optional ? 'Included' : 'Omitted' }}
{{ urlExportStatus }}
{{ computation.values.campaign_url }}
{{ chartExportStatus }}

The chart renderer is unavailable. Character counts remain available in the parameter ledger.

{{ tableExportStatus }}
ParameterValueRoleStatusCharsCopy
{{ row.key }}{{ row.display_value }}{{ row.role }}{{ row.status }}{{ row.value_length }}
{{ tableExportStatus }}
CheckStatusFindingCopy
{{ row.check }}{{ row.status }}{{ row.detail }}

Analytics can split one campaign into several report rows when its link labels differ by case, spacing, abbreviation, or spelling. The visitor may reach the correct page every time, yet Spring_Sale, spring_sale, and spring-sale can remain distinct values in campaign reporting.

UTM parameters are query-string labels attached to a destination URL. They describe the campaign context carried with a click rather than the content of the landing page. Email messages, paid ads, partner placements, social posts, QR codes, and printed materials can all use tagged links when their traffic needs a consistent reporting identity.

utm_source
The sender, platform, publication, or partner responsible for the traffic, such as newsletter or linkedin.
utm_medium
The channel label, such as email, cpc, paid_social, or referral.
utm_campaign
The stable name that joins links belonging to the same promotion or initiative.

Optional fields answer narrower questions. Campaign ID can connect a link with another campaign record, source platform can name the delivery or buying system, term can identify a keyword or audience, and content can distinguish a creative or link position. Adding a field is useful only when someone has a plan to read it later.

A naming convention should be agreed before links are distributed. Keep the campaign name stable across creative variants, use medium for the channel rather than the promotion theme, and choose one source spelling for the same sender. Changing labels after launch creates a reporting break that cannot be repaired by changing the old URL in place.

Tagged links support attribution but do not prove it. Redirects can drop query values, consent settings can limit collection, ad platforms may add separate identifiers, and analytics properties can use custom channel rules. Test the real click path and inspect received campaign data before treating a clean URL as confirmed tracking.

How to Use This Tool:

Start with the landing page and the three labels that must remain consistent across every campaign placement.

  1. Enter the Destination URL, Campaign source, Campaign medium, and Campaign name. A destination without a scheme is completed with HTTPS; other schemes are rejected.
  2. Add campaign ID, source platform, term, or content only when the reporting plan uses them. Keep personal data, secrets, and private offer rules out of every UTM value.
  3. Choose how existing UTM keys should be handled. Replace supported values, keep existing supported values and fill missing ones, or remove every existing utm_* key before rebuilding.
  4. Apply a value format if the campaign naming convention requires lowercase, snake case, or kebab case. Review the resulting spelling because transliteration and separator cleanup can change the text.
  5. Read the Parameter ledger and Hygiene audit, then test the finished URL through the same redirects and landing page that real visitors will use.

Interpreting Results:

The campaign URL is structurally ready when all required inputs are valid. That state does not confirm that an analytics property received the click or classified it as intended.

  • Included means a supported UTM key appears in the final URL. Compare its exact case and separator style with the campaign naming convention.
  • Review on a recommended field means campaign ID or source platform is absent. Add it only when the receiving workflow uses that value.
  • Channel hint is a local naming clue based on source, medium, and campaign text. Unassigned asks for review; any other label can still differ from the analytics property’s actual channel grouping.
  • A URL length of exactly 2,000 characters passes the built-in check. A length greater than 2,000 produces Review as an operational handoff warning, not as a universal web limit.

Technical Details:

A campaign URL keeps its HTTP or HTTPS destination, path, non-UTM query values, and fragment while selected UTM pairs are added to the query string. Query keys and values are form-encoded, so spaces become plus signs and reserved characters use percent encoding.

Transformation Core:

UTM URL transformation stages
Stage Exact behavior
Destination parsing Only HTTP and HTTPS destinations are accepted. A missing scheme becomes HTTPS. Existing non-UTM query pairs and the URL fragment are preserved.
Value formatting Preserve keeps cleaned text, lowercase changes case only, snake joins ASCII words with underscores, and kebab joins them with hyphens. Snake and kebab modes remove combining accents and turn ampersands into the word and.
Existing keys Replace removes the seven supported UTM keys before adding current values. Fill-missing keeps an existing supported value. Strip-all removes every key beginning with utm_, including unsupported ones.
Pair insertion Source, medium, and campaign are always required and nonblank. Recommended and optional pairs are omitted when blank unless blank optional parameters are explicitly included.
Serialization Keys retain one canonical supported spelling, duplicate supported keys are replaced by one pair, and the fragment remains after the rebuilt query string.

For a destination such as example.com/launch?ref=partner, source newsletter, medium email, and campaign spring sale, snake formatting adds HTTPS, preserves ref=partner, and adds utm_source=newsletter, utm_medium=email, and utm_campaign=spring_sale.

Rule Core:

The channel hint applies the following checks in order. It is deliberately a compact review heuristic, not a copy of every analytics channel rule.

Channel hint rule order
Hint Matching clue
Email, Affiliates, SMS, Audio, Mobile Push, Display Exact or small-family checks on source and medium run before paid and organic grouping.
Paid Social, Video, Shopping, Search, or Other A paid-style medium is combined with known source families or campaign text; unmatched paid traffic becomes Paid Other.
Organic Social, Video, or Search Known social or video sources and media are checked before referral. Medium organic maps to Organic Search.
Referral Medium referral, app, or link.
Unassigned No earlier clue matched.

The audit also reviews missing recommended fields, uppercase letters or spaces, how existing UTM keys were handled, and the strict greater-than-2,000 length threshold. These checks describe link hygiene; they do not inspect redirects, consent behavior, destination tags, or live analytics data.

Privacy Notes:

The URL is assembled in the browser, but its query values are meant to travel. Entered values may appear in the browser address, copied text, downloads, destination logs, redirects, analytics requests, and shared messages.

  • Do not place passwords, access tokens, personal identifiers, customer details, or private campaign rules in UTM fields.
  • Opening the generated link sends every query parameter to the destination and may expose it to systems along the redirect path.
  • Review old query values before using fill-missing mode because retained tags can override the new values entered for the same supported key.

References: