Get started
Hosted or first-party script
Bypass ad blockers for analytics more often by serving Stickybeak from your own domain, where available. Compare that first-party analytics option with our hosted script.
Hosted and first-party analytics
| Hosted | First-party | |
|---|---|---|
| Script address | https://app.usestickybeak.com/_cfw/s.js | https://example.com/_cfw/s.js |
| Events sent to | https://app.usestickybeak.com/_cfw/i | https://example.com/_cfw/i |
| Works for | Any site | Sites on the Cloudflare account Stickybeak runs on |
| Ad blockers | Some may block it as a third-party script | Looks like part of your site, so it's blocked less often |
Either way, the cookies are first-party: the script sets them on your own domain from inside your page. Events are sent next to wherever the script was loaded from, so you only ever change the src.
Which one you can use
First-party serving works through a Cloudflare Worker route on your domain that answers only /_cfw/* and leaves every other path alone. That needs your domain to be on the Cloudflare account Stickybeak runs on, which only some workspaces have.
The install step in the dashboard shows what's available. If your workspace has first-party routes, you'll see Serve the script from with your domain marked (recommended) and the dashboard's domain as the alternative. If you don't see that choice, use the hosted script; it's what everyone else uses, and it counts visits the same way.
If you chose your own domain, the verify step adds a check that https://example.com/_cfw/s.js is answering. If it isn't, switch to the hosted script until the route is in place.
Why it helps with ad blockers
Blockers mostly work from lists of known tracking domains and script names. A first-party Stickybeak install has neither: the script and the events stay on your own domain, under a plain /_cfw/ folder, and the events go out as an ordinary fetch rather than a beacon.
The honest limits
- It's not blocker-proof. A blocker can add a rule for
/_cfw/paths at any time, and some extensions block more aggressively than any list. - The same opt-out applies.
stickybeak:ignoreworks wherever the script loads from. Do Not Track and Global Privacy Control don't stop it, first-party or not. - The hosted script is third-party. Some blockers and privacy browsers stop scripts from other domains, so expect it to miss some visitors who run one.
Can I proxy it through my own server?
That isn't supported. Stickybeak works out each visitor's country and spots bots from the connection the event arrives on. Sent through your own server, every visit would look like it came from that server: one location, and a data-centre network that bot filtering treats as automated traffic.
Switching
To move between hosted and first-party, change the src and keep everything else. The site ID is the same, so your history carries on. Visitors keep their cookies too, because they're on your domain either way.
<script
defer
data-site="YOUR_SITE_ID"
data-domain="example.com"
src="https://example.com/_cfw/s.js"
></script>