Consent Management
Consent controls behavioral measurement and analytics identity. Configure it independently of widget appearance. A visitor's explicit feedback submission is a separate action from automatic analytics collection.
What is collected in each state?
| Measurement | Pending or denied | Granted, with the feature enabled |
|---|---|---|
| Page views | Anonymous page-path counts | Page views with analytics context |
| Performance | Numeric timing measurements | Timing measurements with analytics context |
| SEO checks | Content-free checks if SEO analysis is enabled | Checks with text/NLP analysis |
| Clicks, custom events, scroll, URL timing, console and video | Not collected by the analytics SDK | Collected according to project settings |
| Visitor identity and sessions | No analytics user or session identifier | Identity and session context available |
| Cursor movement and session replay | Off | Available when enabled |
Anonymous page paths omit query strings and fragments. Anonymous timestamps use minute precision; identifying context is removed. Anonymous views therefore cannot be used to reconstruct a visitor's journey. Do not interpret anonymous page views as identified visitors or recorded sessions.
Built-in consent
Project Settings → Consent asks one question, how visitor consent is handled:
- Measure without asking (default): no prompt is shown and every visitor is measured in full. If your site runs a consent tool, a visitor who declines there is not measured.
- Show Pintelly's consent prompt: Pintelly waits for a decision and presents its own prompt unless a supported consent tool is detected (see below). While the decision is pending, only the anonymous measurements above continue.
- Wait for my own cookie tool: no Pintelly prompt; only the anonymous measurements continue until your tool records an acceptance.
Feature switches still apply in every mode: granting consent does not enable every optional feature. When the SDK is initialised directly without requireConsent, it behaves like Measure without asking.
Supported consent tools
In Project Settings → Consent, choose where Pintelly reads the visitor's decision:
| Option | What Pintelly reads | Pintelly's own prompt |
|---|---|---|
| Detect automatically (default) | Cookiebot, CookieYes, Complianz or iubenda, if present | Shown if no supported tool is found, or if one is found but undecided after about 12 seconds |
| Cookiebot | CookieConsent cookie, statistics category | Never |
| CookieYes | cookieyes-consent cookie, analytics category | Never |
| Complianz | cmplz_statistics cookie | Never |
| iubenda | _iub_cs-… cookie, purpose 4 (Measurement) | Never |
| OneTrust | OptanonConsent cookie, the category you enter (usually C0002) | Never |
| Google Consent Mode | the latest gtag('consent', 'update', …) value of analytics_storage | Never |
| Custom cookie or localStorage value | the name and optional JSON path you enter | Never |
| From my code | only Pintelly.setConsent() | Never |
The consent tool's decision is read on every page load and checked again every few seconds, so a visitor who accepts, declines or withdraws later in your banner is followed without a reload. Pintelly's own stored decision is only used when no consent tool decision is available.
OneTrust lets each site define its own category IDs, so it is never detected automatically; select it and enter your analytics category. Google Consent Mode only counts an update as a decision; the default state is treated as undecided. Tools that only speak Consent Mode, such as Usercentrics, Didomi, Termly or Axeptio, work through the Google Consent Mode option.
When a specific tool is selected and it has not recorded a decision yet, only anonymous measurements are collected; a missing or unreadable decision is never treated as acceptance.
For a custom value, true, 1, yes, granted and accepted count as acceptance; anything else counts as refusal. The settings page includes a box to try a value before saving.
Programmatic control
Call this from your banner's decision handler:
Pintelly.setConsent(true); // analytics accepted
Pintelly.setConsent(false); // analytics refused or withdrawn
Granting starts eligible tracking without a reload. Refusal or withdrawal stops behavioral modules immediately, clears analytics identity and discards queued consented events. The limited anonymous measurements continue. Refusal overrides the dashboard's automatic-grant setting.
Withdrawal does not delete previously submitted data. Do not place personal data in page paths or custom event properties, and review visible page content before enabling replay. Replay masking and feedback screenshots are separate capture mechanisms; see Advanced tracking.
Identified visitors
Pintelly.identify(userId) is your consent declaration as site owner. For that visitor it starts full tracking and takes precedence over the visitor's own decision, whether it is pending or refused in Pintelly's prompt or your consent tool. Pintelly's prompt is not shown to an identified visitor. Only your code ends it, with Pintelly.reset() or Pintelly.setConsent(false). These records are excluded from the Consented only filter. See User identification.

