Skip to main content

UTM Parameter Parser

Paste any campaign link to extract its UTM tags — utm_source, utm_medium, utm_campaign, utm_term and utm_content — with a plain-English explanation of each. This free UTM parameter parser also detects click IDs like gclid and fbclid, validates your tracking tags for the mistakes that silently break Google Analytics attribution, parses many URLs at once, and includes a campaign URL builder that encodes links correctly. Everything runs in your browser; nothing is uploaded.

Try:

The 5 UTM parameters, explained

utm_source

Where the traffic came from: the referrer, such as google, newsletter, facebook, or a partner site. Required for attribution.

utm_medium

How it arrived: the marketing channel, such as cpc, email, banner, social, or organic. Required for attribution.

utm_campaign

The campaign name: the specific promotion or product launch, e.g. spring_sale.

utm_term

The paid-search keyword that triggered the ad. Mainly used with utm_medium=cpc.

utm_content

Differentiates links pointing to the same URL — logolink vs textlink. Used for A/B testing.

Click IDs are not UTM parameters

Ad platforms append their own opaque click identifiers automatically. They are detected separately below because they behave differently from the human-readable UTM tags you write yourself.

ParameterPlatformWhat it is
gclidGoogle AdsAppended by auto-tagging; resolved server-side to the exact ad and keyword. Never add manually.
gbraid / wbraidGoogle AdsiOS 14+ app and web-to-app campaign click IDs.
fbclidMetaAppended to outbound ad links for click attribution.
msclkidMicrosoft AdvertisingBing Ads auto-tagging click ID.
dclidGoogle Marketing PlatformDoubleClick display-ad click ID.
twclidX (Twitter)Ad link click ID for conversion attribution.
ttclidTikTokAd link click ID for attribution.
li_fat_idLinkedInFirst-party ad tracking ID.
mc_cidMailchimpEmail campaign ID.
ircidImpactAffiliate network click ID.

Worked examples

Click any example to load it into the parser above and see the exact breakdown.

https://example.com/summer-sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale&utm_term=running%20shoes&utm_content=header_link

All five parameters are extracted, the %20 decodes to a space, and no warnings appear — this is what a healthy campaign link looks like.

https://shop.example.com/checkout?utm_source=google&utm_medium=cpc&utm_campaign=q3_clearance&gclid=EAIaIQobChMIabc123

The three UTM tags parse normally while gclid is listed separately as a Google Click ID, with an explanation of why it is not a UTM parameter.

https://blog.example.com/post?utm_source=twitter&utm_medium=social#comments?utm_campaign=broken

The parser warns that utm_campaign sits after #: browsers never send the fragment to the server, so that tag can never be attributed. Move it before the hash.

https://example.com/?utm_source=google&utm_source=bing&utm_medium=cpc&utm_campaign=test%2520x

Two warnings fire: utm_source appears twice (analytics tools typically honor only one), and %2520 signals double encoding that decodes to a literal %20.

https://example.com/landing?utm_campaign=launch_only

The campaign name is present but both utm_source and utm_medium are missing — the visit would likely be bucketed as direct traffic with no channel information.

https://example.com/?utm_source=facebook&utm_medium=cpc&utm_campaign=video_launch&fbclid=IwAR2xyz789

fbclid is identified as Meta's click ID while the UTM tags carry the human-readable campaign data — both attribution layers visible at a glance.

Frequently Asked Questions

utm_source identifies WHERE the traffic came from: the specific referrer such as google, newsletter, facebook, or a partner site. utm_medium identifies HOW it arrived: the marketing channel or format such as cpc, email, banner, social, or organic. Think of source as the name on the door and medium as the vehicle. Google Analytics needs both for clean attribution: without them, a newsletter click and a paid ad from the same site can blur together in your reports.
gclid is the Google Click Identifier, automatically appended by Google Ads when auto-tagging is enabled. It is not part of the UTM spec and you should never add it manually. While UTM parameters are human-readable labels you choose (utm_source=newsletter), gclid is an opaque encrypted ID that Google Analytics resolves server-side to pull the exact ad, keyword, and cost data. This tool detects gclid and other click IDs (fbclid, msclkid, twclid) separately so you can see the difference.
Use lowercase only, separate words with underscores or hyphens, and never use spaces. Google Analytics is case-sensitive, so newsletter, Newsletter, and NEWSLETTER become three separate sources in your reports. Pick one convention per team and stick to it: for example utm_source=facebook (not fb, FB, or Facebook Ads) and utm_medium=cpc (not paid or ppc). The built-in URL builder below enforces lowercase, underscore-style values, and the validator flags mixed-case values when parsing.
Google Analytics can still record the hit, but attribution breaks. Without utm_source and utm_medium, the visit may fall back to the referrer or be bucketed as direct traffic, and your campaign name alone will not tell you which channel drove it. This tool flags missing utm_source or utm_medium as warnings whenever other UTM tags are present, so you can fix the link before it goes live.
Yes, both the parameter names and their values are case-sensitive in practice. URL query keys are case-sensitive, so UTM_Source is technically a different parameter from utm_source and analytics platforms will ignore it as a campaign tag. Values are case-sensitive too: utm_campaign=Spring_Sale and utm_campaign=spring_sale split into two rows in reports. The parser treats names case-insensitively for display but warns you about case variants so you can fix them.
Everything after the # in a URL is the fragment identifier, and browsers never send it to the server: it is only available to JavaScript on the page. So a link like example.com/page#utm_campaign=sale delivers no campaign data to your analytics backend. Tracking tags must go in the query string (before #). This tool detects UTM or click-ID parameters sitting in the fragment and warns you, because it is one of the most common silent tracking failures.
Yes. Batch mode parses one URL per line and shows a compact table with each URL's utm_source, utm_medium, utm_campaign, and any warnings, which you can copy as tab-separated values into a spreadsheet. The Clean URL button strips all utm_* parameters and known click IDs (gclid, fbclid, msclkid, and others) from a link while keeping the rest of the query string and the fragment intact, giving you a shareable link without the tracking baggage.
No. All parsing, validation, building, and cleaning run in JavaScript inside your browser. There is no upload, no API call, and nothing is stored or logged. You can disconnect from the network after the page loads and every mode keeps working.

Related tools

Free tool by NRTechStudio