Server-side tracking (sGTM, Meta CAPI)
Larger sites don't send data to Google and Meta straight from the browser, but through their own server (server-side GTM, Meta Conversions API). Cookienovo guards consent for these server integrations too.
Server-side GTM: works out of the box
The banner sends Google Consent Mode v2 signals (ad_storage, analytics_storage, ad_user_data, ad_personalization), which travel with events into your server-side GTM container as well. Google's server tags thus respect the visitor's consent automatically — no further configuration is needed.
Consent state for your server (Meta CAPI and others)
For integrations outside Google, your server can verify a specific visitor's consent state with a single call. The visitor identifier (browser_id) is available in the browser — the banner shows it as “Consent ID” and you send it to your backend along with the conversion event.
GET https://cookienovo.com/api/consents/state?browser_id=BROWSER_ID
site-token: VÁŠ_SITE_TOKEN
→ 200 {
"data": {
"decision": "accept_all", // accept_all | partial | reject_all
"categories": {
"marketing": true, "analytics": true,
"functional": true, "statistical": false, "other": false
},
"config_version": "4cd038cbc4de4230", // verzia lišty pri rozhodnutí
"decided_at": "2026-07-20T21:02:11Z"
}
}
→ 200 { "data": null } // návštevník ešte nerozhodol = bez súhlasu
Meta Conversions API
Before sending an event to Meta CAPI, verify the marketing category. Don't send the event without consent — server-side measurement is subject to the same rules as the pixel in the browser.
state = cookienovo_consent(browser_id) # volanie vyššie
if state && state.categories.marketing:
meta_capi.send(event) # súhlas udelený
else:
pass # bez súhlasu sa event neposiela
Signals in the browser
Beyond Google, the banner automatically sends consent to Microsoft UET (Bing Ads) and the Meta pixel too — fbq('consent', grant/revoke). Frontend and server-side measurement thus see the same state.
Notes
- Rate limit: 600 calls per minute per IP — under heavier traffic, cache the state per visitor.
- Privacy: We don't store browser_id in readable form — the lookup runs through a one-way hash.
- Consent change: the visitor can change their choice at any time; verify the state on every conversion and don't cache it for more than a few minutes.