Good privacy starts
with good setup.
PureConsent controls scripts you explicitly mark as optional. Complete these steps on each website before inviting real visitors.
01 · Create your workspace
Create a free account, verify your email, and sign in. Choose a paid plan from Billing when you need more websites or longer retention.
02 · Add your website
Open the workspace and choose “Add website”. Enter its exact HTTPS origin, privacy notice link, and descriptions of your actual providers. Subdomains and ports are distinct origins. Language detection changes the interface language only; it does not infer jurisdiction. Custom provider descriptions need your own translation.
Verify your domain
In Banner studio, copy the DNS TXT record for your domain. Add it with your DNS provider, then choose “Check DNS record”. Public banners are available only after ownership is verified. Localhost domains are automatically verified in development.
03 · Install the widget
Copy the snippet from Banner studio into the page head. Your PureConsent server must be publicly reachable over HTTPS for a live website.
<script src="https://YOUR-PURECONSENT-HOST/consent.js" data-site="YOUR-SITE-ID" defer></script>
04 · Keep optional services inert
Replace optional script tags with type="text/plain" and an explicit category. Use data-src for external script URLs. Remove the original active tags and any duplicate installation through tag managers.
<!-- No request to this provider before analytics consent --> <script type="text/plain" data-consent="analytics" data-src="https://YOUR-ANALYTICS-PROVIDER/script.js"></script> <script type="text/plain" data-consent="marketing"> // Initialize your advertising provider here. </script>
Only analytics and marketing are supported. The widget does not intercept ordinary scripts, images, iframes, tag managers, or server-side tracking. Gate those integrations separately. Keep dependent scripts in document order.
05 · Handle withdrawal
The privacy button reopens preferences on every page. On withdrawal, the widget saves the refusal and reloads the page when storage is available, preventing tagged scripts from restarting. Implement provider-specific cleanup to remove cookies, clear identifiers, stop SDKs, and notify vendors as needed. A reload cannot erase third-party data already sent.
window.addEventListener("pureconsent:change", (event) => {
const { analytics, marketing } = event.detail;
// Tell your providers about these choices.
// If false, stop tracking and remove provider storage.
});
// Link this to your own privacy settings button:
window.PureConsent.open();
// Or withdraw all optional consent:
window.PureConsent.withdraw();06 · Verify on your actual website
- Use a clean browser profile and inspect network and storage before choosing.
- Reject optional services: no optional provider requests should be made.
- Allow one category: only that category’s scripts should run.
- Reload and confirm preferences persist. Change the notice version and confirm the banner returns.
- Withdraw and confirm provider cleanup, reload behavior, and a new consent record.
- Test keyboard access, mobile layouts, unavailable storage, and service outages.
A service outage leaves correctly tagged optional scripts disabled. If recording a choice fails, the widget reports that failure and keeps a retryable record on the device. Already running scripts cannot be undone by this widget alone.
Page views and single-page apps
Each successful widget initialization records one page view, regardless of the visitor’s choice. We send a random page-view ID, with no page URL, IP address, or persistent visitor identifier in the usage record. Retried requests reuse the ID. Counts are approximate if requests are blocked or offline. Previews are excluded.
For Next.js, call window.PureConsent?.trackPageView() in a client-side effect after the pathname or search parameters change. Do not remount the widget on every route. Duplicate calls for the same current path are ignored.
// Next.js client component, after usePathname()/useSearchParams() change
useEffect(() => {
window.PureConsent?.trackPageView();
}, [pathname, searchParams]);In Webflow, add the snippet to the site’s head custom code and publish. In other SPA routers, call the same method after navigation. Do not pass customer data or URLs to this method.
Translations and styling
Starter and above can set colors, use an already-loaded brand font, and hide widget branding. Business Pro and Agency automatically select the DE, EN, or FR interface. Provider descriptions can be translated with DeepL and reviewed in Banner studio before saving, or entered manually. Custom descriptions are never translated on a visitor’s browser request.
Agency client seats
The Agency owner can invite five verified client accounts and assign specific domains. Clients can edit and export only those domains. Revocation takes effect on the next API request. Downgrading suspends client access, while visitor consent controls remain available.
Content Security Policy
Allow your PureConsent host in script-src and connect-src. The banner inserts an isolated shadow-root stylesheet; your policy must permit that styling. If you require script nonces, place the nonce on optional script templates; it is copied to the activated script. Test your exact CSP before launch.
What PureConsent includes
Customer accounts, verified domains, plan limits, subscriptions, DE/EN/FR controls by plan, explicit script gating, versioned records, retention, and exports of the latest 1,000 events. Automatic cookie scanning, vendor-specific cleanup, and AI-generated legal notices are not included.
Design references
The interface follows the principles discussed in the EDPB Cookie Banner Taskforce report. Storage and access to information on devices can fall under §25 TDDDG, including technologies other than cookies. Installation and site-specific legal review remain necessary; PureConsent does not certify compliance.