# Privacy at Analytiics

Analytiics is analytics that does not follow people around. This page describes
what the product collects when it runs on a customer's website, what it refuses
to collect, and what we do with it.

_Last updated: 2026-09-05._

## Cookies, browser storage and identifiers

The tracker sets no cookies. It does not write a durable id to
`localStorage`. Anonymous visitors are counted using a hash of the request's
IP address, user agent, the site, and a secret salt, rotated every day — so the
same browser visiting tomorrow gets a different anonymous id. The tracker also
stores a session id and activity timestamp in `sessionStorage`. This storage
is scoped to the browser tab; after 30 minutes of inactivity, the next event
starts a new analytics session.

When a site calls `identify()` with its own user id, that id is kept in
`sessionStorage` and sent to the collector with subsequent events. It exists so that a
server-side revenue event, which has no referrer and no session, can be credited
to the visit that earned it. The site owner can also view an identified user’s
events as a timeline, and an anonymous visitor’s events for the current UTC day
only; retention is unchanged.

## What is collected

For each event: a timestamp, the project it belongs to, the event name, the page
path and URL, the referrer, the anonymous id and session id described above, and
whatever properties the site's own tracking plan declares. From the request
headers, and never stored raw: an approximate location (country, region, city)
and a device, browser and operating system.

The visitor's IP address is used to derive the location and the daily hash, and
is not written to the event store.

## What is deliberately not collected

- No cross-site profile. Data is partitioned by project; there is no identity
  graph joining a visitor across customers.
- No revenue from the browser. The public collector ignores
  `revenue_cents` outright, because anyone can post to it. Browser calls to
  `identify()` do send the site's user id; use an opaque identifier, not an email.
- No personal data in event properties. The manifest documentation says it
  plainly: no emails, names, addresses or user-authored text in props. The
  product cannot enforce what a customer sends, so this is a rule we state
  loudly rather than a filter we pretend to have.
- No bot traffic. Requests from known crawlers are dropped at the collector
  rather than counted.

## Retention

For signed-in Analytiics accounts, we measure onboarding milestones and owner
dashboard usage to improve the product. This uses an opaque account ID and fixed
action names, such as project creation or dashboard viewing. Authenticated setup
errors include a step and error category, never terminal output, code, credentials
or raw error messages. A private support timeline retains recurring activity for
90 days and onboarding milestones until account deletion.

Raw events and aggregate rollups are stored to serve analytics queries. The
current event-store configuration does not automatically delete raw events
after 30 days. Server-event receipts also retain the event payload and delivery
status in Postgres so retries can be reconciled. Deleting a project removes dashboard access but does not
immediately erase its historical analytics. Contact us for a data deletion
request. Waitlist addresses are kept until you ask us to remove them.

## Sub-processors

Event storage runs on Tinybird, the application and control plane on Vercel and
Neon. Resend sends transactional email, including sign-in codes, beta invitations,
onboarding milestones, and usage notices. Account-creation and first-project emails
are copied privately to our founder for beta support; sign-in codes are not copied.
We retain a delivery record to avoid repeating milestone emails.

## Your choices

New projects publish their web analytics dashboard by default. Revenue and
manifest event sections start hidden. Site operators can unpublish the whole
dashboard or select which widgets to publish in project settings. Live custom
event names are published only when both events and revenue are enabled.
Visitors who
prefer not to be counted at all can block `script.js`; the site will behave
exactly as it does with it.

## Making a request

Email [hello@analytiics.co](mailto:hello@analytiics.co) with `privacy` in the
subject line — access, correction and deletion requests all reach the people who
can act on them. Where we process data on behalf of a customer, we will point
you to the site operator, who is the controller for their own visitors.
