Privacy policy.
Last updated 15 June 2026
Motion Analytics is a privacy-first, cookie-free analytics service. It measures how websites are used without identifying the people using them. This policy explains exactly what the tracker collects, what it never does, where the data lives and the legal basis it relies on. It covers the data Motion processes as the operator of Motion Analytics, and the data our customers collect about their own visitors through it.
What we collect
When a page carrying the tracker is viewed, the script sends a single request to our collection endpoint. From that request we record:
| Data | Source |
|---|---|
| Page path | The pathname of the page viewed (no query string) |
| Referrer | The page that linked to you, and its host |
| Campaign tags | Standard UTM parameters, when present on the entry URL |
| Country | Country-level only, derived at the edge. No city, no region |
| Device, browser, OS | Coarse categories inferred from the User-Agent string |
| Previous in-site page | The last page you visited on the same site, for flow reporting |
| Custom events | An event name, only when a site chooses to count an interaction |
| Performance metrics | Aggregate Web Vitals (loading, interaction latency, layout shift, long animation frames), and whether the browser requests reduced motion, an accessibility preference counted in aggregate. Timings and a single preference flag only, no new identifiers |
What we never do
No cookies. No localStorage. No fingerprinting. No cross-site or cross-device tracking. No advertising profiles. We do not sell data, and we never share it with advertising networks or data brokers. Critically, your IP address is never stored: it is used in memory for the moment it takes to derive your country and a daily visitor count, then discarded. There is no personal data at rest.
How visitors are counted without cookies
To tell a returning reader from a new one within a single day, each view is attributed to a visitor hash. That hash is computed from your IP address and browser combined with a random salt that is generated fresh each day and destroyed within 48 hours. The raw IP is never written down. Once a day's salt is destroyed, that day's hashes can never be linked back to an IP, even by us. Because the salt changes every day, the same person produces a different, unlinkable hash tomorrow, so there is no way to recognise a visitor across days, across sites or across devices.
Lawful basis and consent
The tracker reads from and writes to no information on your device, so under the ePrivacy Directive and PECR it requires no cookie-consent banner. The limited processing we do carry out (deriving country and a daily count from a transient IP) rests on our legitimate interest under Article 6(1)(f) of the GDPR in understanding, in aggregate, how our and our customers' websites are used. That interest is balanced against your privacy by the design itself: no cookies, no stored IP, no persistent identifier, no profiling.
Sub-processors and where data is processed
Collection and aggregate storage run on Cloudflare's global network. We use a small set of sub-processors, each touching only what its job requires:
| Sub-processor | Purpose | Data it touches |
|---|---|---|
| Cloudflare (US) | Collection, Analytics Engine, R2 rollups and the raw archive | Visitor data: the daily visitor hash, country, coarse device strings and page paths |
| Supabase (US) | Sites registry and owner accounts | Customer account data only. No visitor data |
| Loops (US) | Monitoring and billing emails, when configured | Owner email address and aggregate incident copy. No visitor data |
| Slack (US) | Monitoring alerts, when an owner connects it | Aggregate incident copy to the owner's workspace. No visitor data |
| Paddle (UK) | Billing and payment processing (Merchant of Record) | Customer billing details. No visitor data |
The sub-processors marked US are controlled by US companies. Where data leaves your region, transfers rely on the relevant safeguards, including the EU-US Data Privacy Framework and standard contractual clauses, and above all on the minimisation described above: the visitor data we hold is pseudonymous, self-destructs within 48 hours and carries no stored IP. Motion Analytics is not pinned to a single jurisdiction, so it is not offered as an EU-data-residency product.
Retention
Raw collection data lives in Analytics Engine for roughly 90 days. Beyond that we keep aggregate daily and monthly rollups, which hold only counts, plus a raw event store for long-range filtering that is retained for up to 5 years and then deleted; how far back you can query it depends on your plan. The referrer is stored without its query string, so the long-term store holds no reversible identifier, no stored IP and no parameters carried over from another site's URL. Nothing in long-term storage maps back to an individual.
Your rights
Under the GDPR and similar laws you have rights to access, rectify, erase and object to the processing of your personal data. Because Motion Analytics stores no identifier that can be tied to you (no IP, no cookie, no persistent ID), we hold no record that could be located and returned or deleted on an individual basis. Once a day's salt is destroyed, the visitor hashes from that day cannot be tied to anyone at all. If you run a site using Motion Analytics, you must not place personal data in your own page paths or campaign tags; the raw event store is retained for up to 5 years and then deleted. If you have a question about this, or need a data-processing agreement, contact us at privacy@motion.dev or see our data-processing agreement and the sub-processor list below.
Changes
We will update this page when the way we handle data changes and revise the date at the top. For the full technical picture, the privacy model in the docs describes exactly what the tracker sends and how counting works.