All CMP audit guides

OneTrust Cookie Consent Validator: A Release QA Checklist

Updated CMP Guide

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

The OneTrust banner appears. The buttons work. Then someone opens the Network panel and finds an analytics request that started before the visitor made a choice. That is the gap this validation checklist is designed to investigate: the difference between the consent interface and what the deployed website does.

Use this page when you need to sign off a website release, review an agency handover or repeat a consent check after a tag change. It is a technical test plan, not a OneTrust certification. ConsentScope observes browser activity; it does not inspect your OneTrust tenant or issue a legal verdict. For installation troubleshooting, use the separate OneTrust configuration guide.

Define what a passing OneTrust test means

Write down the intended behavior before opening a scanner. Which services must stay off before a choice? Which category enables each service? Does the website use basic Google tag blocking or an advanced Consent Mode integration? A test is useful only when the reviewer can compare the observation with a specific expectation.

Give each test a URL, region, browser and session state. Include at least one page that contains an optional service, such as a video, chat widget or conversion form. The homepage may not load the integration that breaks on a product page. Use a test account where authentication is needed, and avoid capturing real customer information.

Test conditionExpected evidenceWhat needs investigation
Fresh visitConsent interface and baseline requests before any choiceOptional identifiers created before their category is allowed
Reject optional purposesSaved rejection and no new disallowed activityA request starts when the reject button is pressed
Accept one categoryOnly the selected services become availableAnalytics approval also starts advertising
Withdraw a previous grantA changed preference and stopped future collectionThe label changes, but the loaded SDK keeps sending
Navigate or reloadThe saved choice is still appliedA route-specific component bypasses the gate

Prepare a clean browser session

Close existing private windows before opening a new one, or use a dedicated test profile. Private tabs can share a session, so opening another tab is not necessarily a clean reset. If you clear site data manually, include the relevant parent domain and storage entries. Record the reset method so the next reviewer can reproduce it.

Open ConsentScope and the browser developer tools before reloading the target page. Do not click the banner yet. Keep one record of what happened on initial load and another of what happened after interaction. A cookie already stored during an earlier accepted visit is different evidence from a fresh cookie write in this test.

Check the deployed domain script and category mapping

Confirm that production is serving the intended OneTrust domain script and published configuration. A correct setting in an administrator's preview does not prove the public page uses that setting. Record the identifier visible in the page source and ask the implementation owner to match it to the intended property.

Build a short mapping from service to category to loading path. For example, a marketing pixel may arrive through GTM on the homepage and through a theme integration on product pages. Fixing the GTM tag leaves the second copy untouched. Search by the vendor's identifier as well as its domain; two paths can load the same service.

Run Reject and partial-consent tests separately

Start clean for each scenario. Choose Reject, wait through the same observation window used for the baseline, then follow an internal link. Check requests and new storage writes, not just whether the banner disappeared. Reopen preferences to confirm the saved category state matches the choice.

For partial consent, choose a single optional category and save. Observe the newly allowed service, but also look for services that should remain off. This catches integrations that treat any saved preference as a blanket grant. If the chosen category has no service on this page, use another representative URL rather than concluding that the gate works.

Test withdrawal while the service is already running

Accept the relevant category first and confirm that the service starts. Then reopen OneTrust preferences and revoke it without resetting the browser. Trigger the same interaction again. This tests a different code path from an initial rejection: the application must deal with a library that is already loaded.

OneTrust exposes events for category and preference changes. Use its Web CMP events reference when checking the integration. A preference-center-open event is not the same as permission to collect data. After a change, compare the actual category state with the service's behavior.

Do not skip client-side navigation

In a single-page application, opening a new route does not necessarily reload the document. A lazy-loaded component can introduce a tracker even when the initial route passed. Test direct entry to a route, navigation into it and browser Back after rejection. Repeat with one category accepted.

Keep OneTrust's SPA integration guidance beside the test record. Check the requirements for your deployed version rather than adding another generic banner script to every component. Duplicate initialization can make consent symptoms harder to interpret.

Example: turn a finding into a fixable ticket

Illustrative case: a product page creates an analytics identifier on a fresh visit. The homepage does not. After rejection, the product page sends another analytics request. These are sample observations, not results from an actual client audit.

Ticket fieldExample entry
ScopeProduct template, logged out, fresh profile
StepsOpen page, leave banner untouched, record baseline, reject, reload
ObservedNew analytics identifier and a subsequent collection request
ExpectedAnalytics stays disabled under the documented category rule
Next investigationInspect the product template and its tag-manager path for a second installation
Acceptance checkRepeat the same steps on homepage and product page after the fix

Attach the relevant request, consent phase and observation time. Use Initiator Trace as a lead, not as proof of a complete JavaScript call stack. A Debug Snapshot can preserve context for a private engineering ticket. Review the export before sharing it.

Questions that come up during validation

Does a visible OneTrust banner mean the site passes?

No. It confirms that an interface rendered. The deployed scripts still need to respect its categories, and the saved choice needs to survive the tested navigation paths. Keep UI checks and request checks in the same test record.

Does a request under denied Google consent always mean a failure?

No. Advanced Google Consent Mode can produce cookieless pings. Compare the intended integration, consent state and actual storage behavior. The Consent Mode checker helps inspect supported signals; use Tag Assistant for tag-level verification.

Can I validate every page with one online scan?

The free online cookie audit visits one public URL without making a consent choice. It is a baseline, not a full interaction test. Use the extension for Reject and withdrawal, then include other templates in the scope.

What should an agency give the client?

Provide the tested URLs, conditions, findings, excluded areas and retest status. Do not present a zero-issue scan as a whole-site guarantee. The PDF reporting workflow supports a readable handoff; recurring portfolio checks use the separate Monitor and Agency plans.

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