What Usercentrics traffic looks like
Usercentrics v2 loads a browser UI plus a burst of supporting calls across the usercentrics.eu estate, with no primary consent cookie.
- Endpoint pattern
loader.jsfromweb.cmp.usercentrics.euorapp.usercentrics.euwith adata-settings-ididentifying the site's configuration; settings and translations fromapi.usercentrics.euorconfig.eu.usercentrics.eu; aggregated vendor data fromaggregator.service.usercentrics.eu; GraphQL calls tographql.usercentrics.eu; consent saves toconsents.usercentrics.euoruct.service.usercentrics.eu; logo assets fromimg.usercentrics.eu; privacy-proxy sites route throughprivacy-proxy.usercentrics.eu- Transport
- Script load plus config, GraphQL, and consent-save calls
- Consent signals
- Unlike most CMPs, primary state lives in browser storage and behind the
window.UC_UIAPI (getServicesBaseInfo(),getCategoriesBaseInfo()), not in a first-party cookie - Data layer object
- The GTM integration pushes a
consent_statusevent carrying aucCategoryobject of per-category booleans keyed by slug: standard names likemarketingandfunctional, or site-defined custom IDs
Debugging Usercentrics with Event Watcher
- Detects Usercentrics from its network traffic across all hosts above, badging each request in the live stream.
- No dedicated payload parser: you inspect the raw request with parsed query and body parameters, which is how you confirm the settings ID in play or watch a consent save go out.
consent_statuspushes are captured as dataLayer events, including historical ones from before DevTools opened.- Stack-trace attribution shows whether the site, a tag manager, or a third-party script pushed them.
Usercentrics and consent
Consent-exempt infrastructureUsercentrics is a consent source for the extension's consent check, read through two mechanisms: the window.UC_UI API and the consent_status dataLayer push. There is deliberately no cookie parser: the state is not reliably in a cookie.
Because categories are site-configurable, Event Watcher keyword-matches labels to the unified analytics / marketing / functional categories instead of a fixed table, leaves unmappable ones unclassified rather than guessing "denied," then marks every captured event granted, denied, or pre-consent.
Common debugging scenarios
- Custom category names break downstream logic. Inspect the
ucCategoryobject on theconsent_statuspush in the stream to see the exact slugs the site emits. Mismatched keys are a frequent cause of GTM triggers never firing. - Tags fire before the banner is answered. Pre-consent events are flagged in the stream and totaled in the violations counter. See GA4 fires before consent.
- Consent Mode not updating. Usercentrics usually relays state to Google via consent commands. Check the Google Consent Mode events alongside the
consent_statuspush, and see debugging Consent Mode v2. - Which script pushed
consent_status? Source attribution answers it directly. See which script pushed this dataLayer event. - Slow banner, racing tags. The stream's ordering shows whether trackers beat the aggregator/config fetches on a cold load.