Consent Analytics

    Stop guessing what your cookie banner is doing.

    Every banner impression, every click, every ignore — measured. CookieLet turns consent into a dataset you can read, broken down by country, device and banner layer, and backed by an auditable log.

    No credit card One script tag GDPR & CCPA ready
    app.cookielet.com/analytics/interactions Banner active
    Displays
    397
    Interactions
    29
    Ignores
    368
    Interaction rate
    7%

    Interaction vs Ignores

    7 days
    • Interactions 1.7%
    • Ignores 98.3%

    Daily interaction rate

    7 days
    Aug 03 Aug 06 Aug 10

    Country comparison

    Interaction rate   Accept rate
    IE170 shown
    US150 shown
    IN64 shown
    INaccepted
    93%
    of visitors never answer a typical banner — and every one of them is a measurement gap
    3
    segmentation lenses: country, device and banner layer
    1
    script tag to install — no tag manager gymnastics
    100%
    of decisions written to a timestamped, auditable consent log
    The problem

    A banner you can't measure is a liability you can't defend.

    Most teams install a consent banner, watch their analytics traffic fall, and never find out why. Was the banner broken on mobile? Did it render in the wrong language? Did anyone actually click it? Without instrumentation, those are all the same invisible problem.

    Silent failures

    A deployment breaks the banner script on Tuesday. You notice in next month's report. The Daily Interaction Rate chart would have shown you a cliff to zero the same afternoon.

    Regional blind spots

    Your banner performs fine in one market and gets ignored in another. Aggregate numbers average that away. Country Analytics puts the two side by side.

    Untestable design

    You rewrite the banner copy and hope. Layer Analytics tells you whether the change moved decisions on the first layer or just pushed people into the preference centre.

    Three screens

    From a five-second glance to a forensic breakdown.

    Consent Analytics is built as a funnel of detail. Start on the dashboard, drill into engagement, then segment until you find the cause.

    My Dashboard

    Health in five seconds

    The landing screen answers one question first: is consent being collected at all? A live Banner Status chip sits above everything else, because if it isn't green, no other number on the page means anything.

    • Banner Insights — views and interactions for the period, with the interaction rate calculated for you.
    • Cookie Summary — total cookies and categories from the latest automated scan, with the scan date printed inline.
    • Total Visit — a daily traffic line to sanity-check everything else against.
    • Consent Trends — accepted, rejected and custom, as a share of decisions actually made.

    Consent Trends

    Last 7 days
    • Accepted 100.0%
    • Rejected 0.0%
    • Custom 0.0%

    Read it in context. Consent Trends is a share of decisions, not of views. A perfect accept rate on a handful of clicks is a small sample, not a win.

    Interactions

    The engagement report

    Four numbers that always reconcile, plus two charts that show you when things changed. This is the screen you open when analytics traffic drops and you need to know whether the banner is the cause.

    Displays  =  Interactions  +  Ignores
    397       =  29           +  368
    // if these ever disagree, it's a data-integrity signal
    • Interaction vs Ignores — the split, as a donut, with its own period filter.
    • Daily Interaction Rate — day-by-day, so a broken deploy shows up as a cliff you can date.
    Displays
    397
    Interactions
    29
    Ignores
    368
    Interaction rate
    7%
    Comparison

    Who behaves differently?

    The same events, sliced three ways. Each segment shows its display volume alongside two bars — interaction rate in amber, accept rate in blue — so you can see engagement and outcome in one row.

    • Country — ISO-coded, volume-ranked. High displays with flat interaction usually means a language gap, not a design gap.
    • Device — desktop vs mobile. A mobile rate well below desktop points at a viewport, fold or tap-target problem.
    • Layer — the banner, the preference centre and the re-open control, measured separately.

    Device Analytics

    %
    desktop387
    desktopaccept
    mobile10
    mobileaccept

    10 mobile displays against 387 desktop is unusual for consumer traffic — the kind of anomaly that only surfaces once you segment.

    Definitions

    Every metric, defined once — so nobody argues about the denominator.

    Consent Analytics metric definitions and formulas
    MetricFormulaDenominatorWhat it tells you
    Displaycount(render)The banner was presented to a visitor. The base unit of everything.
    Interactioncount(action)Accept, reject, save preferences, or open a deeper layer.
    Ignoredisplays − interactionsSeen, not answered. Not a rejection — but not consent either.
    Interaction rateinteractions ÷ displaysDisplaysWhether your banner is being answered at all.
    Accept rateaccepted ÷ decisionsInteractionsWhat people choose, once they choose something.
    Accepted"Accept all"DecisionsConsent to every category.
    Rejected"Reject all"DecisionsConsent withheld from all non-essential categories.
    Customsubset selectedDecisionsGranular consent set in the preference centre.

    Silence is not consent — and it isn't refusal either. Interaction rate is measured out of everyone who saw the banner. Accept rate is measured out of everyone who answered it. Two different denominators, deliberately. An ignored banner never inflates or deflates your accept rate, because it was never a decision.

    Layer Analytics

    The only view that tells you where in the banner people decide.

    A consent experience isn't one screen — it's a stack. Measuring them together hides the story. Measuring them apart tells you exactly which surface to fix.

    L0

    The re-open control

    The floating consent icon or "Cookie settings" link a visitor uses to revisit their choice. Under opt-in rules, withdrawing consent must be as easy as granting it — this layer is how you prove it's reachable. A permanent zero means nobody can find it.

    0interactions
    L1

    The primary banner

    The first thing a visitor sees, carrying the headline accept and reject actions. This is your volume layer — most decisions should happen here. Low L1 interaction relative to displays means the copy or button hierarchy isn't working.

    19interactions
    L2

    The preference centre

    The granular, per-category screen. Visitors who reach it are deliberate. High L2 volume with a lower accept rate isn't a failure — it's informed, granular consent, and it's the most defensible signal in the whole module.

    10interactions

    Watch the gradient. Accept rate should fall from L1 to L2 — that's normal. If it inverts, and people accept more in the preference centre than on the banner, your first layer is confusing enough that visitors are escaping into the settings screen to work out what's being asked.

    In practice

    What teams actually do with it.

    Answer a regulator

    Banner status confirms consent was being collected. Consent Trends shows the aggregate. The Consent Log produces the timestamped, per-visitor records behind it. Aggregate plus evidence, from the same source of truth.

    Diagnose a traffic drop

    Open Daily Interaction Rate. A vertical cliff to zero on a specific date almost always maps to a release. You get the date, then your release log gives you the commit.

    Fix the mobile experience

    Compare mobile against desktop interaction rate. A material gap sends you straight to banner layout on small viewports — buttons below the fold, a preference centre that won't scroll, tap targets under 44px.

    Localise for a market

    Find the countries with high displays and near-zero interaction, then check whether you're serving them a banner in a language they read. Translation is usually the cheapest interaction-rate win available.

    Validate a cookie scan

    Cookie Summary prints the scan date on the card. If it's stale, or the discovered cookies aren't all categorised, your banner isn't governing everything it should — and your accept rate is measuring an incomplete picture.

    Prove withdrawal works

    Non-zero Layer 0 activity is direct evidence that visitors can find and use the re-open control. It's a compliance metric, not a growth metric — its job is to exist, not to be large.

    How it works

    Installed in an afternoon. Reporting the same day.

    Drop in the script

    One tag, before your other scripts. CookieLet renders the banner, blocks non-essential cookies until a decision is made, and starts recording displays and interactions immediately.

    Scan and categorise

    The scanner discovers what's actually setting cookies on your site and sorts it into consent categories. Cookie Summary reports the count and the scan date so you know the picture is current.

    Read, change, measure

    Set your baseline. Change one thing — copy, placement, a translation. Watch the Daily Interaction Rate chart for a full week before you conclude anything. Repeat.

    A word on optimisation

    A defensible 60% beats an indefensible 95%.

    It is trivially easy to raise an accept rate. Make the reject button grey and small. Pre-tick the categories. Bury the preference centre three clicks deep. Every one of those will move the number on this screen — and every one of them invalidates the consent behind it.

    Consent Analytics is built to show you the real shape of visitor behaviour, including the parts that are inconvenient. Interaction rate and accept rate are kept separate for exactly this reason: so you can't quietly count silence as agreement.

    Practices we'd rather you kept

    • Give accept and reject equal visual weight on layer one.
    • Leave non-essential categories unticked by default.
    • Keep the preference centre one click away, not three.
    • Make the re-open control visible on every page.
    • Change one thing at a time, and give it a full week.

    FAQ

    Questions we get asked

    Does an ignored banner count as a rejection?

    No. Ignores are counted separately and excluded from accept rate. Functionally, though, under opt-in regimes an ignored banner means no consent — so non-essential cookies must not be set for that visitor.

    Why do two charts on the same screen show different percentages?

    Period filters are applied per chart, not per page. That's deliberate — it lets you hold a long-run baseline next to a recent window. Always check the filter chip before comparing two numbers.

    Why is a country listed with zero displays?

    The segment is known to the report — from an earlier period or from your configuration — but recorded no banner displays in the window you're currently viewing.

    Does Consent Analytics store personal data?

    The analytics screens present aggregate, anonymised metrics. Individual consent records, with the identifiers needed for audit, live separately in the Consent Log.

    How often does the data refresh?

    Metrics update on an ongoing basis as events arrive. Cookie Summary is the exception — it reflects the last completed scan, and prints that date on the card.

    What counts as a good interaction rate?

    It varies enormously by industry, region and banner design, so treat external benchmarks with caution. The number that matters is your own trend line: establish a baseline, make one change, and read the daily chart.

    Can I export the data?

    Consent records are available from the Consent Log for audit and regulatory response. For bulk export of aggregate analytics, talk to support.

    Do I need to change my site to use it?

    No. Consent Analytics is part of the banner. Once the CookieLet script is installed, displays and interactions are recorded automatically — there are no additional events to instrument.

    Measure what your banner is really doing

    Drop in the script, scan your cookies, and read your first opt-in numbers the same day.