On this page
Next time you click an ad in search results, look at the address bar. The URL has gained something like ?gclid=EAIaIQob.... Your site didn't add it; the ad platform attached it during the redirect. It's called a click ID.
It exists so the ad platform can track conversions itself, but for analytics it has a handy side effect: when you see one, you know the visit was a paid click, whether or not the link carried UTM tags.
Why it matters
UTM tags are added by people, and people forget. A new ad group, a duplicated creative, a quick change of landing page — and the tags are gone.
With no UTM tags and no click ID, analytics can only go by the referring site:
- Search ads come from a search engine and land in organic search.
- Some in-app ads open with no referrer at all and land in direct.
Paid channels look smaller than they are, organic and direct look bigger, and your ROI figure is wrong.
Common click IDs
| Parameter | From |
|---|---|
gclid, wbraid, gbraid | Google Ads |
msclkid | Microsoft Advertising |
fbclid | Meta (Facebook, Instagram) |
ttclid | TikTok Ads |
yclid | Yandex Ads |
bd_vid | Baidu Ads |
gdt_vid, qz_gdt | Tencent Ads |
li_fat_id | LinkedIn Ads |
Click IDs from 14 ad platforms are recognised in total, including the main Chinese feed and search ad platforms.
Where click IDs sit in the order
When deciding a visit's channel, click IDs come after UTM tags and before the referring site:
- Your own channel rulesAlways win
- UTM parametersUsed whenever present
- Click IDFallback that still marks it as paid
- Referring domainClassified by the referrer
- DirectWhen nothing else is there
So if your ad link has UTM tags, they win, and you can still tell campaigns and creatives apart with your own names. If you forget them, the click ID is the safety net that at least puts the visit in a paid channel.
For search ads, visits with gclid, msclkid, wbraid, gbraid, yclid or bd_vid go straight to paid search.
How the click ID itself is handled
A click ID is a long unique code. We use it only to decide the channel and platform; reports show the type and a hash, never the raw value. The reason is simple: the ad platform can map that code back to one specific click, and there's no need for everyone reading your reports to see it.
When you still want UTM tags
A click ID tells you "this was a paid Google click", not "which campaign, which creative". To compare campaigns you still need UTM tags.
A split that works:
- Keep auto-tagging on in the ad platform (most have it on by default), so the click ID is always there as a safety net.
- Add UTM tags in the ad's URL template, to distinguish campaigns, ad groups and creatives. Many platforms fill in campaign names with macros, so nobody types them by hand. For naming, see A UTM naming convention your whole team will follow.
Check your "direct" traffic
If direct traffic has always looked high, try a quick check: look at the landing pages of direct visits in the Sources report. If many land on pages that exist only for ads — paths under /lp/, with no links from elsewhere on the site — they're almost certainly paid clicks that lost their parameters somewhere.
Common ways parameters get lost:
- The landing page redirects (
httptohttps, or bare domain towww) and the redirect drops the query string. - A link shortener strips the parameters.
- A single-page app rewrites the URL while the router starts up.
Fix the cause and that traffic moves back to the paid channel it belongs in.
See it on your own data
Install the snippet in five minutes and get your first report today.



