OneTrust Cookie Consent Audit: Configuration and QA
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
- Confirm the domain-script ID and published environment in the live HTML. Test the actual production hostname rather than relying only on a preview.
- Record which geolocation rule and banner variant apply to your test session. Compare like-for-like regions when reproducing a report.
- Inspect the configured category IDs and the live OnetrustActiveGroups value. Do not assume that a category number means the same thing across every account.
- Use GTM Preview to inspect the event that launches a suspect tag. Check its relationship to OneTrustGroupsUpdated and its category condition.
- Test client-side navigation separately from a full reload. OneTrust documents additional considerations for single-page applications.
Test the four consent states
| Scenario | Action | Evidence to record |
|---|---|---|
| Fresh visit | Load without touching the banner | New cookies, storage keys, script initiators and request times |
| Reject | Start clean, reject optional purposes, reload | Saved choice and any new optional tracking |
| Partial acceptance | Start clean, allow only analytics | Whether marketing stays disabled while analytics changes |
| Revocation | Withdraw a previous choice and navigate | Subsequent requests, storage writes and state updates |
Symptoms and next checks
| Symptom | Investigate | Next step |
|---|---|---|
| Banner missing | Saved preference, region rule or wrong environment | Repeat with clean storage and the intended rule |
| Tag fires after Reject | Category mapping or a second installation | Trace the initiator and compare enabled categories |
| Route changes start tracking | SPA integration bypasses the original gate | Retest 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
| Observation | A focused investigation | Avoid this shortcut |
|---|---|---|
| Only a campaign page writes an identifier | Compare its template and embedded containers with a passing page | Allow the entire vendor domain as necessary |
| Reject works until internal navigation | Inspect route-mounted components and SDK initialization | Add another consent loader to every route |
| A service starts twice after preferences change | Check repeated callbacks and duplicate installations | Ignore the duplicate because the banner looks correct |
| One region shows different choices | Confirm the intended regional rule and tested location | Generalize 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.
Related CMP guides
Cookiebot Guide
Check Cookiebot blocking, script order and consent categories. Test a fresh visit, rejection and acc...
Didomi Guide
Find why scripts run before Didomi consent. Check vendor IDs, purpose settings, SDK readiness and co...
Complianz Guide
Audit Complianz services, plugin integrations and Script Center settings. Find duplicate tags and te...
Usercentrics Guide
Test Usercentrics service consent, blocked resources and consent-change events. Compare fresh visits...