Click ID persistence
How Convultra keeps ad click IDs for 90 days, on its servers and in the browser, and matches them to conversions weeks after the click.
On this page · 6 sections
Convultra captures click IDs from ad platform URL parameters at first touch and persists them server-side with a 90-day retention window, so a conversion weeks after the click can still be matched to it.
Supported click IDs
| Parameter | Platform | Notes | Kept for 90 days in |
|---|---|---|---|
gclid | Google Ads | Standard click identifier | Server and browser |
gbraid | Google Ads | Privacy-safe, used for iOS and Safari app campaigns | Browser only |
wbraid | Google Ads | Privacy-safe, used for web campaigns on iOS and Safari | Browser only |
fbclid | Meta | Appended to Meta ad click URLs | Server and browser |
msclkid | Microsoft Ads | Appended to Microsoft Ads click URLs | Server and browser |
ttclid | TikTok | Appended to TikTok ad click URLs | Neither yet; captured with the landing visit |
oppref | OpenAI Ads | Appended to OpenAI Ads click URLs | Server and browser |
Convultra also stores the standard UTM parameters: utm_source, utm_medium, utm_campaign, utm_content and utm_term.
How it works
- A visitor clicks an ad and lands on your site with a click ID in the URL, for example
https://yoursite.com/pricing?gclid=abc123&utm_source=google. - The SDK reads the click ID and UTM parameters on the first pageview.
- It sends them to Convultra, which stores the click server-side for 90 days against the visitor ID, a first-party cookie (
_cvl_vid) that the SDK writes on your domain, with a backup copy inlocalStorage. The SDK also adds the click to a click history in the browser’slocalStorage, kept for 90 days. - When a conversion happens, minutes or days later, the SDK sends it with the visitor ID and the browser’s click history. The server looks up the clicks stored for that visitor ID, falls back to a browser fingerprint when the visitor ID finds none, and merges what it finds with the browser’s history.
- The conversion is forwarded to the ad platform with the right click ID.
Why this matters
Cookie expiry
Traditional tracking keeps click IDs in first-party cookies, and browsers cap how long those live:
| Browser | Cookie limit |
|---|---|
| Safari (ITP) | 7 days, and 24 hours for some JavaScript-set cookies |
| Firefox (ETP) | 7 days for known trackers |
| Chrome | 400 days |
On the server, Convultra keeps the click for 90 days whatever the browser’s policy, which is what makes 30, 60 and 90 day journeys attributable. Linking a returning visitor to that click depends on the visitor ID still being in the browser, in the _cvl_vid cookie or its localStorage backup. It survives browser restarts, and if the visitor clears cookies but not other site data, the SDK restores the cookie from the backup. If both are gone, Convultra falls back to matching a browser fingerprint (a hash of user agent, language, screen size, time zone and canvas rendering), which is a lower-confidence match.
Blockers and private browsing
Many visitors use ad blockers, cookie blockers or private mode. The click stays on the server either way; what varies is whether the visitor ID survives until the conversion:
- A cookie blocker that leaves
localStoragealone does not lose it, because the SDK keeps the ID in itslocalStoragecopy. - A blocker that stops both, or clearing all site data, loses it, and the match falls back to the fingerprint.
- In a private window, a conversion before the window closes is matched by visitor ID. Once the window closes, the cookie and its backup are gone, and a later conversion falls back to the fingerprint.
An extension that strips tracking parameters on later navigations does not matter: the click ID is read from the landing URL on the first pageview.
Safari ITP
ITP is the most aggressive cookie restriction in mainstream browsers. It caps JavaScript-set first-party cookies at 7 days, and cookies set after a cross-site navigation at 24 hours. The _cvl_vid cookie is set by the SDK, so those caps apply to it. The SDK renews it on every visit and restores it from its localStorage copy if it lapses early, so a visitor who comes back within 7 days of their last visit keeps the same ID. Safari also clears localStorage after 7 days without a visit, so after a longer gap both copies are gone and the lookup falls back to the fingerprint match. ITP cannot remove the click stored on the server. When gclid is missing, Google falls back to gbraid or wbraid. Convultra captures all three, and keeps gbraid and wbraid in the browser’s click history, which Safari also clears after 7 days without a visit.
Setup
None. Once the SDK is installed, click IDs are captured and stored automatically.
The click ID must be in the URL on the first pageview. If a redirect strips query parameters before the page loads, Convultra cannot see it. Check that your landing page redirects preserve the query string.
Verifying capture
- Open Conversions and click a recent conversion from an ad click. The detail drawer shows the captured click ID and UTM parameters.
- Or open your browser’s network tab and look at the first pageview request to
tracking.convultra.com/v1/track(or/v1/trackon your custom domain). The payload includes the captured click IDs. - Through the API,
list_conversionsreturnsclick_idson every row, which is how you reconcile Convultra’s counts against Google’s.
Attribution windows
Google Ads and Microsoft Ads accept a conversion up to 90 days after the click; Meta accepts up to 7 days. Convultra can attribute a conversion in your dashboard beyond those windows, but a platform will refuse an upload past its own limit. See Events show as pending and never send.