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:
Naming tip: use lowercase and underscores (utm_source=newsletter, not NewsLetter). Analytics values are case-sensitive — mixed casing splits one channel into several rows in your reports. The builder URL-encodes every value correctly and keeps existing query parameters and the page fragment (#) intact.
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.
Parameter
Platform
What it is
gclid
Google Ads
Appended by auto-tagging; resolved server-side to the exact ad and keyword. Never add manually.
gbraid / wbraid
Google Ads
iOS 14+ app and web-to-app campaign click IDs.
fbclid
Meta
Appended to outbound ad links for click attribution.
msclkid
Microsoft Advertising
Bing Ads auto-tagging click ID.
dclid
Google Marketing Platform
DoubleClick display-ad click ID.
twclid
X (Twitter)
Ad link click ID for conversion attribution.
ttclid
TikTok
Ad link click ID for attribution.
li_fat_id
LinkedIn
First-party ad tracking ID.
mc_cid
Mailchimp
Email campaign ID.
ircid
Impact
Affiliate network click ID.
Worked examples
Click any example to load it into the parser above and see the exact breakdown.
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.
Two warnings fire: utm_source appears twice (analytics tools typically honor only one), and %2520 signals double encoding that decodes to a literal %20.
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.
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.
We use cookies and third-party services (including Google AdSense) to personalize content, analyze traffic, and serve relevant ads. By clicking "Accept", you consent to our use of cookies as described in our Privacy Policy.
Report an issue
2 taps, no typing needed — diagnostics are sent automatically.