Clarvivo

Free tool by Clarvivo · no login

Check whether tracking starts before observable consent state

Compare passive browser timing without clicking a banner or claiming a race when no timing is available.

Public page with consent banner

Compare the passive timing of redacted consent commands and recognised tracking requests. It reports unavailable timing as unknown rather than guessing.

This tool answers: Do browser tracking requests appear before the first observable consent state?

Enable JavaScript to run the check — the diagnosis itself is free and needs no account.

Why this happens

Consent only works if it's in place before tracking starts. When analytics or ad tags load faster than the consent platform, the first requests go out with no consent state at all. That can mean data collected before the visitor had a choice, or tags that start in the wrong state and never recover.

This is a race condition: it depends on load order, network speed and caching, so it may happen on some visits and not others. It rarely shows up in a manual check on a fast connection, which is why it survives audits.

This checker records the timing of consent commands and tracking requests during a first visit, and reports whether any tracking request preceded the first observable consent signal.

Next checks

These answer the questions this one tends to raise.

How this check works

So you can trust the result — and your developer can verify it.

  1. We load the page as a first-time visitor

    A fresh isolated browser opens the page, so the consent banner and default state behave as for a new visitor.

  2. We timestamp consent and tracking

    We record when the first consent command or consent marker appears, and when each recognised tracking request fires.

  3. We compare the order

    Tracking requests that fired before the first consent marker are listed with their timing. If ordering can't be established, we say so rather than guess.

Common causes and fixes

Consent default loads after tags
Put the consent default command before any tag loads, inline in the page head or via the CMP's Google integration.
Tags hard-coded outside the tag manager
Scripts added directly in templates don't wait for the CMP. Move them into the tag manager with consent checks.
CMP loads asynchronously
An async CMP may finish after tags start. Use its blocking or prior-consent mode for the default state.
Third-party embeds load their own trackers
Video players, chat widgets and maps can load tracking before consent. Gate them behind the CMP.

Frequently asked questions

Why would results differ between runs?
Because race conditions depend on load timing. Run the check more than once, and on a slow connection if you can.
Does a tracking request before consent always mean a violation?
It depends on the request and your legal basis. It does mean the tag ran before a consent state existed, which is worth fixing.
Does the tool click the banner?
No. It observes the first visit only, before any consent choice, because that's when race conditions happen.
What if no consent marker is found at all?
Then ordering can't be established. Check your Consent Mode setup with the Consent Mode v2 Implementation Tester.
Which trackers are recognised?
Common analytics and ad trackers, including Google, Meta, TikTok, LinkedIn, Reddit and Microsoft.

Make consent behavior explainable.

Clarvivo keeps browser gaps in context with business outcomes.

Understand consent impact

What this tool reads, and what it keeps