Server-Side Tracking
Convultra captures conversion data server-side, removing the dependency on browser cookies and client-side pixels. The result is 95--98% tracking accuracy compared to the ~70% industry standard with client-only solutions.
How it works
Visitor arrives with a click ID
When a user clicks an ad, the ad platform appends a click ID to the destination URL as a query parameter. Convultra recognises the following click IDs automatically:
| Parameter | Platform |
|---|---|
gclid | Google Ads (standard) |
gbraid | Google Ads (privacy-compliant, iOS/Safari) |
wbraid | Google Ads (privacy-compliant, web campaigns on iOS/Safari) |
fbclid | Meta / Facebook Ads |
msclkid | Microsoft Ads |
ttclid | TikTok Ads |
SDK captures and stores the click ID server-side
The Convultra SDK reads the click ID from the URL on the first pageview and sends it to the Convultra server. The click ID is persisted server-side -- not in a cookie or localStorage.
Because storage is server-side, click IDs survive Safari ITP (7-day cookie limit), cookie blockers, private browsing mode, and browser restarts.
Conversion occurs
When you call a tracking method such as Convultra.trackPurchase(), the SDK sends the conversion event to the Convultra server. The server associates the conversion with the stored click ID automatically.
Conversion forwarded to ad platforms
Convultra forwards the conversion -- including the click ID and any enhanced user data -- to each connected ad platform via their official server-side APIs:
- Google Ads -- Google Ads API (Conversions)
- Meta -- Conversions API (CAPI)
- Microsoft Ads -- Offline Conversions API
Safari ITP and privacy fallbacks
Safari ITP limits first-party cookies to 7 days (or 24 hours in some cases). When ITP strips or prevents gclid storage, Google provides two privacy-compliant alternatives:
gbraid-- used for iOS app-related click trackingwbraid-- used for web campaign clicks on iOS/Safari
Convultra captures all three parameters (gclid, gbraid, wbraid) and uses whatever is available. If gclid is present, it takes priority; otherwise gbraid or wbraid is used as the fallback.
What the SDK collects automatically
The SDK captures the following data on every pageview without any additional code:
- Pageview URL and referrer
- Click IDs (
gclid,gbraid,wbraid,fbclid,msclkid,ttclid) - UTM parameters (
utm_source,utm_medium,utm_campaign,utm_content,utm_term) - Session and visitor identifiers
- Device, browser, OS, and screen resolution
- Geolocation (country, region, city -- derived from IP server-side)
SDK performance
| Metric | Value |
|---|---|
| Gzipped size | ~10 KB |
| Uncompressed size | ~36 KB |
| Loading | Non-blocking, async |
| Render impact | Zero -- no layout shift, no main-thread blocking |
The recommended installation uses a stub + async pattern so that tracking calls are queued immediately and processed once the SDK finishes loading. See Installation for all methods.
No-JavaScript fallback
For visitors who have JavaScript disabled or where the SDK fails to load, Convultra provides a pixel tracking fallback. This is a server-side rendered <img> tag that fires a request to the Convultra API when the page loads.
Pixel tracking captures basic pageview data but cannot track client-side events. See Pixel Tracking for details.
Architecture diagram
Browser Convultra Server Ad Platforms
─────── ──────────────── ────────────
1. User clicks ad
(URL contains gclid/fbclid)
2. Page loads SDK ──────────→ Stores click ID server-side
3. Convultra.trackPurchase() → /api/v1/track
├─ Matches click ID ──────────→ Google Ads API
├─ Enriches with user data ───→ Meta CAPI
└─ Deduplicates ──────────────→ Microsoft Ads APIServer-side forwarding means conversions reach ad platforms even when the visitor's browser blocks third-party requests, cookies, or JavaScript.