Stickybeak Docs Dashboard Get early access

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.

SetupResult
Privacy mode for everyoneNo browser storage or lasting identifier; no journeys or revenue reporting.
Load s.js after analytics consentPeople who do not consent are not counted.
Use cookieless.js before consent, s.js afterCookieless 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.

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.

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.