All CMP audit guides

OneTrust Cookie Consent Audit: Configuration and QA

Updated CMP Guide

Follow the checks on your own website. Install the free extension to compare cookie activity before and after a consent choice.

Keep banner visibility, stored choices and tag behavior separate when investigating OneTrust. A hidden banner may reflect a saved preference or region rule. A visible banner does not establish that every tag is blocked. Start with OneTrust cookie consent troubleshooting if you already have a reproducible failure.

Set up a repeatable audit

Use a fresh browser profile, record the page URL, time, browser and test region, and open Network with Preserve log enabled. Run the free cookie audit for an initial server-browser check. Use the extension for interactive tests in your own browser; region, login and saved choices can produce different results.

Trace the category from banner to tag

  1. Confirm the domain-script ID and published environment in the live HTML. Test the actual production hostname rather than relying only on a preview.
  2. Record which geolocation rule and banner variant apply to your test session. Compare like-for-like regions when reproducing a report.
  3. Inspect the configured category IDs and the live OnetrustActiveGroups value. Do not assume that a category number means the same thing across every account.
  4. Use GTM Preview to inspect the event that launches a suspect tag. Check its relationship to OneTrustGroupsUpdated and its category condition.
  5. Test client-side navigation separately from a full reload. OneTrust documents additional considerations for single-page applications.

Test the four consent states

ScenarioActionEvidence to record
Fresh visitLoad without touching the bannerNew cookies, storage keys, script initiators and request times
RejectStart clean, reject optional purposes, reloadSaved choice and any new optional tracking
Partial acceptanceStart clean, allow only analyticsWhether marketing stays disabled while analytics changes
RevocationWithdraw a previous choice and navigateSubsequent requests, storage writes and state updates

Symptoms and next checks

SymptomInvestigateNext step
Banner missingSaved preference, region rule or wrong environmentRepeat with clean storage and the intended rule
Tag fires after RejectCategory mapping or a second installationTrace the initiator and compare enabled categories
Route changes start trackingSPA integration bypasses the original gateRetest a direct load and an internal navigation

Interpret evidence before reporting a violation

A necessary consent-preference cookie is not equivalent to an advertising identifier. Existing cookies are not necessarily new writes. A Google request under denied consent can be a cookieless ping in advanced Consent Mode; inspect its behavior and your intended configuration with the Consent Mode checker. Classifications are review prompts, not a legal verdict.

Save a reproducible issue

Include the exact URL, clean-session steps, chosen categories, expected result, request or cookie name, initiator and timestamp. For developer handoff use Initiator Trace and a redacted debug snapshot. Repeat the same test after a fix and review any remaining redaction needs before sharing.

Trace a duplicate installation before changing consent rules

Suppose the homepage waits for consent but a campaign page creates the same analytics cookie immediately. Treat that difference as a clue. Inspect the campaign template, its custom HTML blocks and any page-specific tag-manager container. Disabling the shared GTM tag will not fix a second analytics snippet embedded in the template.

Keep a small inventory with the service name, measurement or container identifier, entry point and owner. Mark uncertain ownership explicitly. If the browser identifies only a document or frame, do not label a particular GTM tag as the confirmed cause. Use the script inventory and the browser's Initiator view together to narrow the search.

Separate a saved choice from a newly applied choice

A returning visitor may never see the first-layer banner. Test that path deliberately: accept one category, close the page, return and inspect the stored preference alongside new requests. Then repeat with rejection. A script that waits for a button click but ignores a saved choice can break returning-visitor behavior in either direction.

Check the reverse transition too. After a service has started, withdraw its permission and interact with the page again. Do not clear the browser first; that would turn a withdrawal test into another fresh-visit test. Keep the before-change and after-change requests in one evidence record.

Diagnose symptoms without broad exceptions

ObservationA focused investigationAvoid this shortcut
Only a campaign page writes an identifierCompare its template and embedded containers with a passing pageAllow the entire vendor domain as necessary
Reject works until internal navigationInspect route-mounted components and SDK initializationAdd another consent loader to every route
A service starts twice after preferences changeCheck repeated callbacks and duplicate installationsIgnore the duplicate because the banner looks correct
One region shows different choicesConfirm the intended regional rule and tested locationGeneralize one regional result to every visitor

Make one controlled change at a time, publish it through the normal process and retest the same URL under the same conditions. A passing result after several unrelated changes does not tell the team which change mattered. Keep the original reproduction steps in the issue until the reviewer can verify them.

OneTrust implementation questions

Should I copy category IDs from an online example?

Use the category mapping from the configuration you are deploying. Documentation examples help explain an event, but they do not establish your site's service inventory or intended categories. Confirm the mapping with the person who owns the OneTrust property.

Why does a visible banner still produce tracking findings?

Rendering the interface and controlling downstream services are separate operations. Look for code that loads outside the consent integration or treats any preference change as acceptance. The OneTrust release validation checklist turns those checks into a repeatable sign-off.

Can a clean homepage scan close the ticket?

Only if the ticket was limited to that homepage scenario. If the affected service also appears on product pages, forms or client-side routes, include those paths in the retest. Document the remaining scope rather than silently extending the conclusion.

For recurring client audits, see the bulk URL scanner and plans and limits. A passing scan describes only the page and conditions observed.

Does your OneTrust setup stop cookies before consent?

Follow this checklist with ConsentScope. Compare cookie activity before and after your consent choice, then investigate anything unexpected.

Free page-level checks. No account or payment required.

Your cookie choices

Essential cookies support sign-in and security. With your permission, Google Analytics measures website visits using analytics cookies. Rejecting analytics does not limit access. You can change your choice anytime in Cookie settings. Privacy Policy