Privacy and data
Consent and cookie banners
Analytics without a cookie banner may be possible with Stickybeak privacy mode, while standard analytics can load after consent. Choose with a legal adviser; this is not legal advice.
Cookie consent analytics setups
| Setup | Result |
|---|---|
| Privacy mode for everyone | No browser storage or lasting identifier; no journeys or revenue reporting. |
Load s.js after analytics consent | People who do not consent are not counted. |
Use cookieless.js before consent, s.js after | Cookieless totals before consent; full detail begins on the next page load after consent. |
The standard script sets three first-party cookies. Privacy mode stores IDs only in page memory. Neither mode reads Do Not Track or Global Privacy Control, so if you treat either as a refusal, load the script only when they're absent. Both modes clean addresses as described in What Stickybeak collects.
Load after consent
function loadStickybeak() {
if (document.querySelector("script[data-site]")) return;
var s = document.createElement("script");
s.defer = true;
s.dataset.site = "YOUR_SITE_ID";
s.dataset.domain = "example.com";
s.src = "https://app.usestickybeak.com/_cfw/s.js";
document.head.appendChild(s);
}
Call this when analytics consent is accepted and on later page loads while it remains accepted. If goal code may run earlier, add the queue stub.
Switch mode on page load
var accepted = /* your consent tool's stored choice */ false;
var s = document.createElement("script");
s.defer = true;
s.dataset.site = "YOUR_SITE_ID";
s.dataset.domain = "example.com";
s.src = "https://app.usestickybeak.com/_cfw/" +
(accepted ? "s.js" : "cookieless.js");
document.head.appendChild(s);
The first Stickybeak script on a page fixes its mode for that page load.
Withdraw consent
Stop loading s.js. To remove its existing cookies, replace the example domain:
["_sbv", "_sbs", "_sbn"].forEach(function (name) {
document.cookie = name + "=; max-age=0; path=/; domain=.example.com";
});
Keep personal data out
Do not put personal data in goal names, properties, campaign tags or page addresses. Automatic filtering cannot recognise everything.