Visitor modes: Light and Pro
Light counts visitors without remembering them; Pro remembers them across days for new and returning visitors, retention and visitor history.
Two modes
Every site starts in Light. It counts visitors with an anonymous id that changes every day, stores no id on the device and needs no banner. Because the id changes, someone who visits on Monday and again on Tuesday is two visitors in a weekly count, and there is no "returning visitor" to show.
Proremembers a visitor across days, subdomains and your site's other domains. That gives you new and returning visitors, weekly retention, each remembered visitor's history, and revenue journeys that span days. Pro has two settings:
| Mode | Remembers a visitor | Before or without consent |
|---|---|---|
| Light | Never | Counted with the daily id |
| Pro after consent | After your banner calls oa.consent("granted") | Counted exactly as in Light |
| Pro always | From the first page | Not asked |
Switch modes in Settings → Visitor mode. Every plan has both. The change reaches visitors' browsers within a few minutes.
What is stored where
| Light | Pro (once remembered) | |
|---|---|---|
| On the visitor's device | A per-tab session hint, an offline queue, the consent state and a config cache. No visitor id. | The same, plus the visitor id in a first-party cookie oa_vid_<tag> (400 days, renewed on each visit) and a copy in localStorage (oa.vid). With a first-party proxy, also an HttpOnly cookie oa_vids_<tag> set by your own host. |
| In our database | Events under a daily id that cannot be linked to the next day. | Events under the remembered id, which stays the same across days. It is a pseudonym: never a name, an email or an IP address. |
The <tag>is a short code derived from your site, so two sites on one domain never share a cookie. The remembered id is the visitor's own daily id from the day they were first remembered, signed by our servers so it cannot be made up or copied from someone else.
The consent API
oa.consent("granted"); // Pro after consent: remember from now on- On a Pro site, denied and unknown delete the stored id from the cookie and localStorage. The visitor is still counted, as in Light.
- On a Light site, denied still stops collection, as before.
- Pro always remembers without being asked; calling denied there still forgets the id for that visitor.
Connecting a consent banner
Paste the helper once. It calls oa.consent now, or as soon as the tracker has loaded, since the script loads after your banner may already have answered. Then add the lines for your banner.
// Calls oa.consent() now, or as soon as the tracker has loaded.
function oaConsent(state) {
if (window.oa && typeof window.oa.consent === "function") {
window.oa.consent(state);
return;
}
window.oa = window.oa || function () {
(window.oa.q = window.oa.q || []).push(arguments);
};
window.oa("consent", state);
}function oaFromCookiebot() {
oaConsent(Cookiebot.consent.statistics ? "granted" : "denied");
}
window.addEventListener("CookiebotOnAccept", oaFromCookiebot);
window.addEventListener("CookiebotOnDecline", oaFromCookiebot);Category and event names vary
verifyin a comment. Check the name in your banner's settings before you ship.Privacy signals and strict mode
- Global Privacy Control and Do Not Track stop all collection in both modes, and delete a stored Pro id.
- A page with
data-storage="none"(strict mode) stores nothing, so Pro counts that page as Light. - The tracker uses no fingerprinting: no canvas, audio or screen measurements in any mode.
What changes in your numbers
- Visitor counts over several days fall when Pro starts, and stay lower: one person across a week is now one visitor.
- Returning visitors and retention build up over the first weeks; the dashboard marks them as warming up, and shows "Pro since" on ranges that cross the switch.
- New and returning do not add up to the total. A visitor first seen this week who came back is in both, and a visitor who was not remembered is in neither.
- Beside every multi-day visitor count the dashboard shows the remembered share, such as "remembered: 62%".
Known imprecisions
Pro is more accurate than Light, not perfect. Specifically:
- One person on two devices is two visitors, unless your site calls identify() on both.
- In-app browsers (Instagram, TikTok and similar) keep their own storage, so a visitor arriving through one looks new.
- Safari deletes storage a script wrote after seven days without a click, tap or key press on your site. A returning Safari visitor who did not interact within a week looks new, unless you run a first-party proxy.
- On the day a visitor is first remembered, other visitors who are not remembered and share their network and browser type (a mobile carrier, an office) are counted together with them for that one day, as Light would count them. They never enter the remembered visitor's history.
- If a visitor's network address changes at the very moment they are first remembered, they can count twice that day.
- A visitor who types your second domain instead of following a link to it starts as a new visitor there. See cross-domain.
- A Pro id is derived from the visitor's network address, browser type and the date under our identity secret, so whoever holds that secret can compute it. This affects what we are able to do, not the accuracy of your numbers.
- Erasing one remembered visitor on request is not offered.