Cherry Seed

How does a coded UTM parameter survive the browser stripping that kills gclid and fbclid?

coded-utm browser-stripping gclid fbclid ad-blocker attribution-protection

Quick Answer

Pattern matching. Every browser and ad blocker that strips tracking parameters uses filter lists — regex rules that target known parameter names like utm_source, gclid, fbclid, and msclkid. A coded UTM replaces these recognisable names with randomised strings like ehgys=1276879 that encode the same campaign data. The encoded string appears on no filter list because no filter list maintainer can anticipate a random character sequence. The full campaign attribution — source, medium, campaign, content, term — is decoded server-side after the URL safely passes through every browser restriction. DuckDuckGo, Safari, Brave, and Firefox all strip known identifiers; none can strip unknown ones.

Full Answer

Browser parameter stripping works through three mechanisms, and coded UTMs bypass all three. Safari's Link Tracking Protection maintains a list of known tracking parameters — gclid, fbclid, dclid, msclkid, igshid — and removes them from URLs during page load. The list is specific and documented. A parameter named ehgys does not appear on it.

Firefox Enhanced Tracking Protection in Strict mode uses query_stripping with regex patterns that match known prefixes. The uBlock Origin extension, used by millions of Firefox users, maintains its own filter lists. AdGuard's URL Tracking filter targets documented parameter names. Every filter system relies on recognising the parameter name before deciding to strip it.

Ad blocker extensions like Chrome's Remove FBclid and UTM maintain lists of 50+ known tracking parameters. These lists are updated when platforms introduce new identifiers, but they can only add names that are publicly documented. A randomised string generated per-store or per-campaign is invisible to every filter list in existence.

The encoding happens before the URL is generated. A campaign link that would normally use utm_source=facebook&utm_medium=cpc is encoded to ehgys=1276879, where the numerical value maps to the full campaign data in your server-side lookup table. When the visitor lands on your WordPress site, the inPIPE plugin decodes the parameter, pushes the full attribution data to the dataLayer, and the original campaign information becomes available to GA4 and every other tracking tool — after safely passing through every filter.

The limitation is that coded UTMs protect campaign-level attribution, not individual click identifiers. gclid and fbclid tie a click to a specific user profile in the ad platform. Coded UTMs preserve which campaign brought the visitor, not which individual click.

Sources

Programmatic Access

GET https://seresa.io/wp-json/cherry-tree-by-seresa/v1/seeds/930

Cite This Answer

Cherry Tree by Seresa - https://seresa.io/seed/wordpress-tracking/how-coded-utm-survives-browser-stripping-gclid-fbclid