Link decoration is a tracking technique in which a website or ad platform appends identifiers to a URL, usually as query parameters or a fragment, so that information about a user or a click travels with the navigation to another website. In Tracking and in privacy more broadly, it matters because it lets parties pass identity across sites without third-party cookies, which makes it one of the main forms of navigational tracking.
Not every decorated link is invasive. A campaign label shared by thousands of visitors reveals little, while a unique click identifier or a user ID tied to a profile can link browsing on two unrelated sites. Browsers increasingly treat the second kind as a privacy threat and strip or limit it.
How link decoration carries identity between sites
Link decoration works because a URL is copied intact when a user follows a link. The origin site, or a redirect service in between, adds a parameter such as ?click_id=abc123; the destination page reads that value with JavaScript or on the server and stores it in a first-party cookie or in local storage. From that moment the destination can associate later actions, such as a purchase, with the original click.
The process usually has four steps:
- An ad platform or the source site generates an identifier for the user or the click.
- The identifier is appended to the outbound link, sometimes through an intermediate redirect.
- The destination script reads the parameter and writes it into first-party storage.
- A later conversion or event is reported back with the identifier, closing the loop across sites.
Because the identifier lands in first-party storage, it escapes blocking aimed at third-party cookies. That is the main reason link decoration grew as browsers restricted cross-site cookies.
Common parameters and what they reveal
Parameters differ greatly in privacy impact. The table below groups widely seen examples by how much individual identification they enable.
| Parameter | Typical source | Granularity | Privacy impact |
|---|---|---|---|
| utm_source, utm_campaign | Campaign tagging conventions | Campaign level | Low; shared by many users |
| gclid | Search advertising clicks | Per click | High; ties a click to an ad account |
| fbclid | Social network outbound links | Per click | High; links site visit to platform activity |
| msclkid | Search advertising clicks | Per click | High; per-click attribution |
| _gl | Analytics cross-domain linker | Per visitor | Medium to high; shares client ID across domains |
| Email tracking tokens | Marketing email platforms | Per recipient | High; identifies the individual reader |
A useful test is simple: if two different people clicking the same link would receive different parameter values, the decoration is identifying. Identical values for everyone indicate aggregate campaign tagging.
Link decoration compared with related techniques
Link decoration belongs to a family of methods that re-create cross-site tracking without third-party cookies. It often combines with them, so understanding the differences helps when choosing defenses.
| Technique | Where the identifier lives | Visible to the user | Main browser defense |
|---|---|---|---|
| Link decoration | In the URL of the navigation | Yes, in the address bar | Parameter stripping and storage limits |
| Bounce tracking | In storage of a redirect domain | Briefly, during redirects | Purging storage of bounce domains |
| Third-party cookies | In a cookie of an embedded domain | No | Blocking or partitioning |
| Device fingerprinting | Derived from device attributes | No | Reducing entropy of exposed attributes |
| CNAME cloaking | In a cookie on a disguised subdomain | No | Uncloaking DNS and cookie restrictions |
Bounce tracking frequently uses link decoration as its vehicle: a link sends the user through a tracker domain that reads its own cookie and then forwards the identifier in the URL to the final site.
How browsers and tools counter link decoration
Browser vendors use two broad strategies: removing known tracking parameters from URLs, and shortening the life of storage written after a decorated navigation. Neither is perfect, because a parameter list cannot anticipate every name.
| Countermeasure | How it works | Limitation |
|---|---|---|
| Query parameter stripping | Removes listed parameters before navigation | Only known names are removed |
| Storage expiry limits | Caps cookies set after decorated navigation from classified trackers | Data may already be sent server-side |
| Link tracking protection in apps | Cleans links opened from mail or messaging | Scope varies by context |
| Tracker blocker extensions | Rewrite URLs and block redirect domains | Depend on maintained filter lists |
| Copy clean link features | Remove parameters when sharing | Require user action |
Safari’s Intelligent Tracking Prevention introduced a one-day cap on script-written cookies after decorated navigation from classified domains, and later versions strip known parameters in private browsing and in links opened from mail and messages. Firefox strips listed parameters in its strict Enhanced Tracking Protection mode, and several privacy-focused browsers do so by default.
Practical guidance for site operators
For publishers and marketers, the key point is that reading an identifying parameter is processing personal data in many jurisdictions and, where it is stored on the device, can also fall under cookie consent rules. Practical measures include:
- Use campaign-level parameters instead of per-user identifiers wherever aggregate reporting is enough.
- Gate the storage of click identifiers behind consent when the law requires it.
- Remove identifiers from the address bar after reading them so they do not leak through sharing or referrers.
- Never place email addresses or other direct identifiers in URLs, where logs and third parties can capture them.
Operators should also expect attribution gaps: as stripping spreads, conversions that depended on click identifiers increasingly appear as unattributed traffic, so measurement plans must not assume that every decorated parameter will arrive.
Explained without jargon
Link decoration is like attaching a name tag to a letter before you hand it on. When you click a link, extra characters at the end of the web address can carry a code that says who you are or which ad you clicked.
The website you arrive at reads that tag and remembers it. That is how two separate websites can connect your visits even when ordinary tracking cookies are blocked, and it is why some browsers now quietly remove those tags.
A typical use case
A shopper clicks a sponsored search result for running shoes. The link that opens the shoe retailer’s page ends with a long per-click identifier added by the ad platform. The retailer’s tag reads the value and saves it in a first-party cookie for up to 90 days.
Two days later, the shopper returns directly and buys a pair. The retailer’s tag sends the purchase together with the stored identifier back to the ad platform, which attributes the sale to the original ad click.
When the same shopper uses a browser that strips known click identifiers, the parameter never reaches the retailer. The purchase still happens, but it appears in reports as direct traffic with no ad attribution, which illustrates both the tracking power of link decoration and the effect of countermeasures.