Activity & Insights
Monitor consent rates, review audit-ready consent logs, and manage detected third-party scripts.
ConsentStack gives you three tools to understand and prove your compliance: an analytics dashboard for trends, consent logs for audit-ready records, and tracker detection for managing third-party scripts.
Consent Analytics
The analytics dashboard shows you how visitors are responding to your consent banner at a glance.
KPI Cards
Four key metrics sit at the top of the page:
- Total Events. The number of consent interactions during the selected period.
- Consent Rate. The percentage of visitors who opted in (accepted all categories).
- Time to Action. The average time between seeing the banner and making a decision.
- Bounce Rate. The percentage of visitors who left without interacting with the banner at all.
Each card shows a delta indicator when comparison mode is on, so you can see whether a metric is trending up or down versus the prior period.
Trend Chart
Below the KPIs, a trend chart plots your selected metric over time. Use the time range selector to view the last 24 hours, 7 days, 30 days, or 90 days.
Turn on comparison mode to overlay the current period against the previous one. This helps you spot the impact of banner changes or seasonal shifts.
Breakdown Charts
Two breakdown panels round out the dashboard:
- Devices. Consent events split by desktop, mobile, and tablet.
- Top Countries. Consent events by visitor country, with the applicable regulation and per-country consent rate shown inline.
Export
Click Export CSV to download the current dataset. Useful for sharing with legal or plugging into your own reporting tools.
Analytics is available on Pro plans and above.
Consent Logs
Every consent decision a visitor makes is recorded as an individual log entry. Logs are your proof of consent: the record you hand to an auditor or regulator when they ask, "Can you prove this visitor consented?"
How do I prove a specific visitor consented?
Export your consent logs and filter by the visitor's anon_id_hash, the SHA-256 hash of their anonymous ConsentStack ID. Every decision that visitor ever made on your site is a row under that one key, each carrying the timestamp, the action taken, the category-level choices, the regulation that applied, and the exact banner configuration version they saw. Those rows are the evidence package.
What Gets Logged: The Export Schema
The CSV export contains exactly 29 columns per consent record. These are the literal column names, in export order:
| Column | What it records |
|---|---|
id | Unique identifier for this log entry |
site_id | The site the event belongs to |
config_id | The consent configuration that was live when the visitor decided |
config_version | Version number of that configuration |
event_type | initial for a visitor's first decision, update for a later change |
event_action | The decision itself: opt_in, opt_out, partial, or acknowledge |
interaction | The control the visitor used (accept button, reject button, preferences save) |
categories | The visitor's per-category choices, as JSON |
consent_model | The model the banner enforced: opt_in, opt_out, notice, or notice_required |
anon_id_hash | SHA-256 hash of the visitor's anonymous ID. The single-visitor lookup key |
device_type | Desktop, mobile, or tablet |
browser | Browser family |
os | Operating system |
country_code | Visitor country, derived from infrastructure headers |
region | The consent region that matched |
regulation | The regulation that applied (GDPR, CCPA, and so on) |
language | The visitor's browser language |
resolved_language | The language the banner actually displayed |
domain | The domain the event was recorded on |
page_url | The page the visitor was on when they decided |
banner_position | The banner layout shown |
banner_load_time_ms | How long the banner took to load, in milliseconds |
time_to_action_ms | Time between seeing the banner and deciding, in milliseconds |
preferences_opened | Whether the visitor opened the preferences center first |
sdk_version | The SDK version that recorded the event |
site_key | The public site key the event was logged under |
global_compliance_enabled | Whether global compliance mode was on |
instant_updates | Whether instant configuration updates were enabled |
created_at | Timestamp of the decision |
CSV and JSON exports are not the same schema
The CSV is a fixed 29-column report. The JSON export returns the complete stored record, a superset of the CSV. The extra fields include the Global Privacy Control audit pair (gpc_detected, which records whether a GPC signal was present on the event, and signal_source, which records whether the decision came from an honored signal, a banner click, or the preferences center) and, when the geo-details setting is enabled for your site, city-level location fields (geo_city, geo_postal_code, geo_latitude, geo_longitude, geo_timezone, geo_continent). Choose JSON when the audit question involves GPC or location detail.
Exporting Consent Logs
In the dashboard, open your site's Activity area, go to Consent Logs, and click Export. Two formats are available:
- Consent Logs (CSV): the 29-column report above, RFC 4180 escaped, with a header row.
- Consent Logs (JSON): newline-delimited JSON (NDJSON), one complete record per line.
Both formats stream your site's entire log, not just the page of results you are viewing. The download is named consent-logs-<site>-<date>.csv or .ndjson.
Browsing and Inspecting Logs
Logs appear in a paginated table sorted by most recent. Click any row to open the inspector panel on the right, which shows the full detail of that consent event, including the interaction timeline (banner shown, preferences opened, decision made) and metadata like SDK version and banner position.
Privacy by Design
Visitor IDs are cryptographically hashed before they are stored. No names, emails, IP addresses, or other personally identifiable information ever touches your logs. This means your consent records are audit-ready without creating a privacy liability.
How long are consent logs kept?
Retention is enforced by a nightly cleanup job, so these numbers are the storage reality, not a dashboard display setting: Business keeps consent logs for one year, Pro keeps 30 days, and Basic keeps logs for the current billing period. The logs dashboard itself is available on Pro plans and above.
Tracker Detection
ConsentStack automatically detects third-party scripts running on your site and reports them back to the dashboard. This gives you a clear picture of what is loading on your pages, and whether those scripts are properly gated behind consent.
How It Works
The SDK monitors your site for third-party scripts and reports their domains to the dashboard. Those domains are matched against a database of 900+ known tracker patterns and auto-categorized (e.g., Analytics, Advertising, Social Media). Recognized scripts show the vendor name, logo, and a link to the vendor's site.
Scripts that don't match a known domain are flagged as uncategorized and surfaced at the top of the page for your review. You can assign a consent category to any script with a single click.
Triggering a Scan
Trackers appear automatically as visitors browse your site. If you want results immediately (for example, after launching or connecting a new domain), click the Sync button to trigger a fresh scan on demand.
Custom Rules
For scripts that aren't auto-detected, you can add custom domain pattern rules to manually assign a consent category. This is useful for internal tools or niche vendors that aren't in the known tracker database yet.
What's Next
- Categories & Regions. Learn how consent categories and regional rules connect to tracker blocking.
- Script Blocking. Understand how ConsentStack prevents scripts from running before consent is given.
- Analytics & Logs feature overview. See what the analytics dashboard and consent logs look like in practice.