Skip to content

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.

article |4 min |Updated Oct 2026
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

ParameterPlatformNotesKept for 90 days in
gclidGoogle AdsStandard click identifierServer and browser
gbraidGoogle AdsPrivacy-safe, used for iOS and Safari app campaignsBrowser only
wbraidGoogle AdsPrivacy-safe, used for web campaigns on iOS and SafariBrowser only
fbclidMetaAppended to Meta ad click URLsServer and browser
msclkidMicrosoft AdsAppended to Microsoft Ads click URLsServer and browser
ttclidTikTokAppended to TikTok ad click URLsNeither yet; captured with the landing visit
opprefOpenAI AdsAppended to OpenAI Ads click URLsServer and browser

Convultra also stores the standard UTM parameters: utm_source, utm_medium, utm_campaign, utm_content and utm_term.

How it works

  1. 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.
  2. The SDK reads the click ID and UTM parameters on the first pageview.
  3. 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 in localStorage. The SDK also adds the click to a click history in the browser’s localStorage, kept for 90 days.
  4. 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.
  5. The conversion is forwarded to the ad platform with the right click ID.

Why this matters

Traditional tracking keeps click IDs in first-party cookies, and browsers cap how long those live:

BrowserCookie limit
Safari (ITP)7 days, and 24 hours for some JavaScript-set cookies
Firefox (ETP)7 days for known trackers
Chrome400 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 localStorage alone does not lose it, because the SDK keeps the ID in its localStorage copy.
  • 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

  1. Open Conversions and click a recent conversion from an ad click. The detail drawer shows the captured click ID and UTM parameters.
  2. Or open your browser’s network tab and look at the first pageview request to tracking.convultra.com/v1/track (or /v1/track on your custom domain). The payload includes the captured click IDs.
  3. Through the API, list_conversions returns click_ids on 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.

Next in Data and accuracy Enhanced conversions →