What a click ID actually does
When someone clicks a paid ad, the platform serving it, Google, Meta, TikTok, or Microsoft, appends its own parameter to the destination URL before the browser ever leaves the ad. No setup from the advertiser makes this happen; it is automatic on every paid click that platform serves. That string is a token pointing at a record the platform keeps on its own servers, holding details like the ad, the campaign, the audience, and the exact timestamp of that click.
The reason it exists is matching, not labeling. Later, when a purchase or signup happens on the destination site, the platform needs a way to tie that conversion back to the specific click that caused it, especially once a cookie has expired or the visitor switched devices in between. The click ID is what makes that match possible on the platform's side. Systems like Meta's Conversions API and Google's enhanced conversions run on exactly that data. It is built for that platform's own attribution pipeline first, and only incidentally visible to anyone looking at the raw URL. A click ID travels through any redirect sitting between the ad and the landing page the same way a referrer does, which matters once a link chain does anything more than point straight at one destination.
Click ID vs UTM: two different jobs that look similar
Both ride along in the URL as query parameters, which is why they get confused constantly, but they are built for opposite purposes.
| Property | Click ID (gclid, fbclid, ttclid) | UTM parameter |
|---|---|---|
| Who writes it | The ad platform, automatically | You, manually or with a UTM builder tool |
| Format | Long, encoded, platform specific, and it changes over time | Plain text you choose, like utm_source=instagram |
| Purpose | Lets the platform match a click to its own ad record for conversion attribution | Lets any analytics tool label where traffic came from, in terms you chose |
| Human readable | No | Yes |
| Appears on organic, unpaid links | Sometimes, notably fbclid | Only if you added it yourself |
| Effect of removing it | Breaks that platform's own conversion match for that click | Just loses your own source label, nothing breaks downstream |
The parameters you'll actually run into
| Parameter | Platform | Where it shows up |
|---|---|---|
gclid |
Google Ads | Search and Display ad clicks |
fbclid |
Meta (Facebook and Instagram) | Any link clicked through Facebook or Instagram, including many organic shares, not only paid ads |
ttclid |
TikTok Ads | TikTok ad clicks |
msclkid |
Microsoft Advertising | Bing search ad clicks |
igshid |
Organic Instagram shares. This is not an ad click ID at all, it is a separate internal share identifier, and it is the one most often mistaken for one. |
Checking which of these, if any, is sitting in a given URL is worth doing before deciding whether it is safe to trim one off.
The mistake nobody warns you about: deleting one thinking it's junk
A click ID is long, ugly, and looks exactly like the kind of tracking clutter people are used to stripping out of a link before sharing it, or that a careless URL shortener rewrites away without noticing. Doing that on a link that actually came from a paid ad click has a real cost that is invisible at the moment it happens. The page still loads fine for the visitor, so nothing about that moment looks broken. What actually breaks is quieter and happens entirely on the platform's side: the server-side conversion match for that specific visit fails, so a completed purchase or signup the ad genuinely earned goes uncounted. No error appears anywhere. The ad campaign just reports as if it performed a little worse than it actually did, with no obvious symptom pointing back at the missing parameter as the cause. The safer default is to leave a click ID exactly as the platform generated it, and use the link decoder if you want to understand what a particular parameter on a link is actually doing before deciding whether to touch it.
Click identifiers and privacy-focused browsers
Because a click identifier exists purely to help an advertising platform track a conversion, several browsers now treat it as exactly that: a tracking parameter, not a normal part of a URL. Firefox strips known click ID parameters from links by default when you copy or share them. Brave does the same thing as part of its ad and tracker blocking. Safari goes further still: its own link tracking protection removes recognized tracking parameters, click IDs included, before they ever reach the destination site. That is worth knowing before assuming a missing click ID means a link was edited by hand; on a growing share of browsers, the browser itself already did it, upstream of anything the advertiser or the destination site could control.
What a click ID actually looks like
Each platform has its own format, and none of them are meant to be typed or edited by hand. A gclid value is typically a long alphanumeric string with no spaces or clear structure to the eye, while an fbclid usually starts with a recognizable prefix before a long encoded block. Neither is meant to be shortened, guessed, or reused on a different link. Copying a link that contains one and pasting it somewhere else carries the click ID along automatically, and that is fine; the risk is only in deliberately editing or deleting it, since a hand-typed replacement will not match anything on the platform's servers even if it happens to look plausible.
What a click ID cannot do for you
A click ID is proprietary to the platform that issued it. It is not designed to be readable, and your own analytics generally cannot decode meaning out of it the way it can read a UTM you wrote yourself; it is a matching token, not a label. If the goal is a source you can read in your own dashboard, that is what UTM parameters are for. Use them alongside whatever click ID the ad platform already added, not instead of it. Raydar captures both on every click a tracked link receives: UTM data for readable campaign reporting, and any click ID present in the URL, passed through untouched rather than stripped, since it is not Raydar's data to remove.