The South Africa test
Tie the browser test to the team's declared processing purposes. Map optional tools to the purposes and choices approved for the South African visitor. Compare the local rule with the fallback and inspect what changes after refusal. A banner cannot establish the lawfulness of all processing.
Set expected behavior with your policy owner before testing. Business scope, data purposes, and exceptions affect that expectation. Use the South African Information Regulator: lawful processing as a policy reference; this procedure checks browser behavior and does not certify legal compliance.
CookieTrail does not currently offer a South Africa country route. Use a separately verified regional browser exit for this procedure.
Run the same paths from a verified visitor
- Confirm routing. Record the browser exit and the regional rule Cookiebot actually selected. Browser language, timezone, and a DevTools location override are not proof of IP-based routing.
- Start clean. Use separate new sessions for first load, acceptance, and rejection or opt-out. Begin storage and network capture before page load; record the capture window and deployed version.
- Read the decision. Save the banner controls used, the category or purpose values, and any Consent Mode mapping. Use this installation’s documented readback.
- Compare and repeat. Compare observed tools with the expected policy, investigate a mismatch, and rerun the same URL, regional rule, and paths after deployment.
Read Cookiebot’s saved state
Compare the deployed Cookiebot configuration with the browser's category flags.
- Record the deployed domain-group ID (data-cbid) and any regional configuration mapping. Compare it with the configuration you intended to publish.
- After Cookiebot loads, read hasResponse and the preferences, statistics, and marketing consent flags. Record the first load and each choice separately.
- If you use automatic blocking, inspect the blocking configuration; for manual blocking, inspect each script's category. Compare both with actual storage and requests.
Read the Cookiebot developer API for your installed configuration.
Read-only native snapshot
Run this in the tested page’s browser console after initialization, before the choice and after each path. It reads state; it does not grant or reset consent.
(() => {
const c = window.Cookiebot;
if (!c) return { status: "not ready or unavailable" };
return {
hasResponse: c.hasResponse,
preferences: c.consent?.preferences,
statistics: c.consent?.statistics,
marketing: c.consent?.marketing,
gdprApplies: c.regulations?.gdprApplies
};
})()Optional TCF identity and purpose snapshot · CMP ID 134
Use this only when TCF is enabled. Run it again after each decision. The CMP ID identifies the platform; it is not an advertising vendor ID. Compare purpose and vendor permissions separately.
(() => {
if (typeof window.__tcfapi !== "function")
return { status: "TCF unavailable or disabled" };
window.__tcfapi("addEventListener", 2, (data, ok) => {
if (!ok || !data ||
!["tcloaded", "useractioncomplete"].includes(data.eventStatus))
return;
console.log({
cmpId: data.cmpId,
expectedCmpId: 134,
identityMatches: data.cmpId === 134,
cmpStatus: data.cmpStatus,
eventStatus: data.eventStatus,
gdprApplies: data.gdprApplies,
purposeConsents: data.purpose?.consents,
purposeLegitimateInterests: data.purpose?.legitimateInterests
});
window.__tcfapi("removeEventListener", 2,
() => {}, data.listenerId);
});
})()A TCF applicability flag does not verify geography. Legitimate-interest fields and consent fields have different meanings; rejection does not imply every field becomes false. This uses the documented TCF event API; getTCData is deprecated.
Compare state with observed activity
A saved denial can coexist with a tag that ran too early or never received the update. Trace the affected integration and its event timing. A network request alone does not prove a violation: Google’s advanced Consent Mode can send cookieless requests.
Unreadable state, unverified routing, or a missing capture makes the result inconclusive. Browser captures also cannot establish what a server-side integration does. Keep that investigation separate and compare evidence after the fix.
Common verification questions
Can I test Cookiebot from my own country?
You can check that visitor’s configuration. To verify South Africa, use a visitor whose relevant geography and selected rule are confirmed. Compare it with United Kingdom to investigate regional differences.
Can Claude validate this setup?
Claude can inspect code and use browser or regional testing tools when connected to them. Give it the same paths and saved evidence across locations; ask it to repeat them after deployment. Use the international testing workflow.
Does this guide prove Cookiebot works in South Africa?
It provides a procedure for your deployed site. The examples are illustrative; no customer site or vendor implementation was audited for this page. A supported route also does not establish that every CMP readback is automated.
Platform reference
Cookiebot appears in Google’s CMP inventory or partner list with TCF CMP ID 134. That listing is an identity reference, not a verdict on this site or jurisdiction. Vendor website.
CookieTrail is independent of the listed vendors. The library includes web-capable entries from the referenced inventories; it does not claim to enumerate every CMP on the market.