Cookie Policy

Last updated: 5 November 2026

Your choice

We ask before we store anything on your device that is not strictly necessary. Until you press Accept on the cookie banner, none of the analytics or advertising cookies on this page are set: the Google tag is not requested, PostHog does not run in your browser (it only receives an anonymous count of page visits from our server, as described below), Vercel Web Analytics does not load, and no affiliate referral cookie is written.

In the United States it works the other way round on our public pages while you are not signed in: there is no banner when you arrive, and analytics and advertising (PostHog product analytics, Vercel Web Analytics, the Google tag, our own page-view record and first-visit cookie) are on by default until you opt out with Your privacy choices in the footer, or your browser sends Global Privacy Control. Session recording, heatmaps, sending your email address to Google or Meta and the affiliate referral cookie still wait for you to press Accept. In the dashboard, on the sign-in and sign-up pages, and whenever you are signed in to your account, these wait for Accept, as they do outside the United States. The Meta pixel is the exception, as it has been since October 2026: in the United States it is on by default on every page it runs on (our public pages, pricing, sign-up, sign-in and the subscribe steps), signed in or not, until you opt out. Once you have opted out you are counted without cookies, like a visitor who declined.

On our public pages, we count anonymous page visits without cookies when you decline (or have not chosen yet), and nothing identifies you. No analytics script runs in your browser, and nothing is stored on or read from your device for it beyond the strictly necessary items in the table below (your cookie choice, sign-in and your light/dark setting). Our server passes PostHog an anonymous count, without your IP address. The "Anonymous page counts" row below lists exactly what is sent.

You can change or withdraw that choice at any time — it takes one click, the same as giving it, and it is the same control either way:

Withdrawing consent deletes the identifiers we can reach from your browser and reloads the page so nothing non-essential is left running. Some third-party cookies (for example Google's test_cookie on doubleclick.net) can only be removed by your browser, because they are not readable by this site.

We rely on your consent under regulation 6 of the Privacy and Electronic Communications Regulations 2003 (PECR) and Article 6(1)(a) UK GDPR. Strictly necessary items are used under the PECR exemption, which does not require consent.

What Accept turns on

The cookie banner is short on purpose. This is the full version of what it asks. Pressing Accept allows the following, and pressing Reject allows none of it. Essential cookies, the ones that run the site and keep you signed in, are used either way. In the United States some of it is on by default unless you opt out: see “Where you are changes the default” below.

  • PostHog product analytics (EU region, reached through zen-mode.io/ingest): which pages you view, which features you use, and which marketing source you arrived from. Clicks and other interactions are counted without the text or attributes of the element involved.
  • PostHog heatmaps: where people click, move the mouse and scroll to, on our public marketing pages only, never inside the dashboard, the admin area or the affiliate portal.
  • PostHog session recording: a replay of the page, on our public marketing pages only, never inside the dashboard, the admin area or the affiliate portal, and never on the sign-in or sign-up pages. Everything you type into any field is masked before it leaves your browser: we see that a field was filled in, not what was in it. Console messages, network headers and request bodies are not recorded.
  • Google Ads: the Google tag, so we can tell which ad brought a sign-up and build remarketing audiences. Outside the United States the Google tag is not even requested until you accept. Your email address goes to Google with a sign-up (to match it to the ad) only if you pressed Accept.
  • Meta (Facebook) pixel: so we can tell which Meta ad brought a sign-up and build advertising audiences. It runs on our public marketing pages, pricing, sign-up, sign-in and the subscribe steps only, never inside the dashboard, and it is sent the page's path without anything after a ? or #. It also reports a new account, opening checkout, and starting a trial or a paid plan (with the plan's price). After a trial or payment our server tells Meta too, and only if you pressed Accept does that include a hashed copy of your email address. Outside the United States the Meta pixel is not even requested until you accept.
  • Vercel Analytics: page-level traffic counts. It sets no cookie, but each page view sends one request to our own domain.
  • Our own records: a page-view record on our servers, a cookie remembering which marketing source first brought you here, and an affiliate referral cookie if you arrived from a partner's link.

Every item is listed with its exact cookie or storage key, who sets it and how long it lasts in the analytics and advertising table below. Withdrawing consent stops all of it straight away, recording included. The Privacy Policy covers what happens to the data afterwards.

Where you are changes the default

We work out roughly where you are from your IP address, and that decides whether analytics and advertising wait for you to press Accept, or are on until you opt out. Session recording and heatmaps wait for you to press Accept everywhere, the United States included.

  • United Kingdom, EU/EEA, Switzerland, and anywhere else, or if we cannot tell: nothing is loaded until you press Accept. You are asked on your first visit.
  • United States: there is no banner when you arrive. On our public pages, while you are not signed in, PostHog product analytics, Vercel Analytics, the Google tag, our own page-view record and first-visit cookie are on by default. In the dashboard, on the sign-in and sign-up pages, and whenever you are signed in to your account, they wait for you to press Accept, as everywhere else. The Meta pixel loads by default on every page it runs on, including sign-up, sign-in and the subscribe steps, signed in or not. You can opt out at any time with Your privacy choices in the footer, which stores your opt-out for a year (pressing Reject there is the opt-out). If your browser sends the Global Privacy Control signal, we treat it as an opt-out and none of them loads, with no action needed from you. Once you have opted out we still count the visit, without cookies, as described above.

In every region, your email address (or a hashed copy of it) is sent to Google or Meta only if you pressed Accept. In the United States, a trial or purchase can still be reported to Meta by our server without your email address unless you have opted out.

Google Consent Mode

Before any Google tag can run, the page sets Google Consent Mode v2 to denied for advertising storage, advertising user data, advertising personalisation and analytics storage. If you accept, we send an update granting those four. If you do not, the Google tag is never loaded at all, so the denial is the only state it would ever see. In the United States, on our public pages while you are not signed in, unless you have opted out or your browser sends Global Privacy Control, the tag loads by default with an update granting advertising storage, advertising personalisation and analytics storage; advertising user data stays denied until you press Accept.

Used without asking you

Most of this table is the strictly necessary set: signing in, keeping you signed in, remembering your theme, and recording the cookie choice itself. Turning those off would break the service, so PECR does not require consent for them.

Three rows are not cookies at all, and are listed because they store nothing on your device, which means regulation 6 does not reach them and there is no consent gate to put them behind. The first is Sentry error reporting, which runs on every page so that a broken page gets noticed. Sentry's own Session Replay, which would have recorded a reconstruction of your screen, is switched off entirely. The second is the Peacock chat assistant: opening it stores nothing in your browser, but sending it a message stores that message, the reply and your IP address on our servers, and sends the message to Anthropic to generate the reply. Its retention runs on two clocks, the IP address at 30 days and the conversation at 12 months, and section 9 of the Privacy Policy covers it in full.

The visitor company lookup is the third. On our public marketing pages (never the dashboard) each page view sends our server the page path and the name of the site that linked you here, with no cookie attached. Our server asks ipapi.is which organisation your IP address is registered to and keeps that organisation's name and type, never your IP address, for 30 days. We use it to see what kinds of organisations visit the site. It does not identify you as a person, and if your browser sends Global Privacy Control no lookup is made. Section 2 of the Privacy Policy explains it, including how to object.

The homepage website preview adds three strictly necessary items, and only once you enter your website and ask for a preview: the zm_home_preview cookie, which carries that request into sign-up so your setup opens with your website and suggested audience; the zm_hpv cookie, which limits how many previews one browser can run; and a Vercel BotID check that the request comes from a person. You asked for the preview, and we cannot provide it without them, so they are not behind the consent choice. We store neither cookie's value nor your IP address, only a scrambled (hashed) form. The zm_home_preview cookie expires after 30 days, so your setup can still start from your website if you sign up later; zm_hpv expires after a day. The website itself is kept on our server, and we may get in touch with your company about ZenMode; section 2 of the Privacy Policy explains how.

Strictly necessary cookies and storage
Name / keyStored asSet byPurposeDuration
zm_consentcookieZenMode (first-party)Records whether you accepted or rejected non-essential cookies, so we do not ask again and every gate can read your choice.6 months
zm_geocookieZenMode (first-party)Records whether you are in the United States, worked out from your IP address on each page request, so the right cookie choice is shown. It holds only "us" with a state code, or "ot"; it never holds your country.1 day
zm_us_optoutcookieZenMode (first-party)Remembers that you pressed Reject (in the United States, Your privacy choices), so the analytics and advertising that are on by default there stay off. Cleared if you later press Accept.1 year
__client, __client_uat, __sessioncookieClerk (third-party)Keeps you signed in and protects the sign-in flow. Set on zen-mode.io by our authentication provider.__client up to ~13 months; __session ~1 minute, refreshed
__clerk_environmentlocalStorageClerk (third-party)Caches the sign-in configuration so the sign-in form renders without a round trip.Until cleared
__cf_bm, _cfuvidcookieCloudflare (third-party)Bot filtering in front of our authentication provider. Set when the sign-in components load.__cf_bm 30 minutes; _cfuvid until the browser closes
zen_affiliatecookieZenMode (first-party)Signed session for the affiliate partner portal. Only set after an affiliate signs in.30 days
sf_code_verifiercookieZenMode (first-party)One-time PKCE verifier for connecting a Salesforce account. Only set while an integration is being authorised.10 minutes
zm_recoverycookieZenMode (first-party)Identifies you when you follow a sign-up recovery link from one of our emails.30 days
zenmode_democookieZenMode (first-party)Marks a session that entered the read-only product demo, so the demo dashboard renders.2 hours
zm_home_previewcookieZenMode (first-party)Only set when you enter your website on the homepage. Carries that request into sign-up, so your setup opens with your website and suggested audience instead of asking again. Holds a random code; your website is kept on our server, not in the cookie.30 days
zm_hpvcookieZenMode (first-party)Only set when you enter your website on the homepage. A random code that limits how many website previews one browser can run, which protects the service from abuse. We store only a scrambled (hashed) form of it, and never your IP address.1 day
Vercel BotID bot checkNothing stored on your deviceVercel (first-party)Loaded only when you start typing your website on the homepage. Checks that the website preview is being requested by a person, not an automated script, so the service cannot be abused. It runs through zen-mode.io and we set no cookie for it.No cookie set by ZenMode
themelocalStorageZenMode (first-party)Remembers light or dark mode.Until cleared
Sentry error reportingNothing stored on your deviceSentry (first-party)Reports JavaScript faults so a broken page is noticed. Stores nothing on your device — no cookie, no local or session storage — and the report (page address, browser user agent, stack trace) is sent through zen-mode.io/monitoring. Sentry Session Replay, which would have recorded a reconstruction of your screen, is switched off entirely: we record no sessions.No storage on your device
Peacock chat assistantNothing stored on your deviceZenMode (replies generated by Anthropic) (first-party)The chat bubble on zen-mode.io. Opening it stores nothing on your device: no cookie, no local or session storage. Once you send a message we store on our servers the message as you typed it, the reply, and the IP address it came from, and we send the message plus the recent messages in that conversation to Anthropic (United States) to generate the reply. Your IP address is not sent to Anthropic. We read these conversations to correct the assistant when it answers badly. Retention is two separate clocks: the IP address is removed after 30 days and the whole conversation is deleted after 12 months, both by a daily job.No storage on your device; on our servers, IP removed after 30 days, conversation deleted after 12 months
ZenMode visitor company lookupNothing stored on your deviceZenMode (lookup by ipapi.is, Germany) (first-party)On our public marketing pages only (never the dashboard), each page view sends our server the page path and the address of the site that linked you here. Nothing is stored on your device and no cookie is sent with it. Our server sends your IP address to ipapi.is, which tells us which organisation, if any, the address is registered to (for example a company, an internet provider or a university), and we store that organisation's name and type with the page path, the linking site's name and your country. We do not store your IP address; it is discarded once the lookup returns. We do not look up who you are as a person and nobody is contacted because of it. If your browser sends the Global Privacy Control signal, no lookup is made.No storage on your device; the server record is deleted after 30 days
Anonymous page counts (no cookies)Nothing stored on your deviceZenMode and PostHog (EU region) (first-party)If you decline cookies, or have not chosen yet (outside the United States), or have opted out in the United States or your browser sends Global Privacy Control, we still count visits to our public pages (never the dashboard, the admin area, the affiliate portal or the sign-in pages), without cookies. No analytics script runs in your browser: our page sends one request per page view to zen-mode.io with the page address and the site that linked to it, without any cookie, and nothing is stored on or read from your device for it beyond the strictly necessary items in this table (your cookie choice, sign-in and your light/dark setting). Our server keeps the page, the linking site, any utm_* tags and your country, with a code worked out from your IP address and browser that changes every day and cannot be turned back into either, and it passes the same anonymous count on to PostHog. Your IP address and browser details are not stored and are not sent to PostHog, and PostHog keeps no profile of you. In our own record the code is deleted once the day is over, and only the day's totals are kept.No storage on your device; our own record is deleted after 90 days
zm_chunk_reload_atsessionStorageZenMode (first-party)Stops a reload loop when a deploy invalidates the page's JavaScript while your tab is open.Until the tab closes

Analytics and advertising — after you accept, or by default in the United States

Outside the United States none of these load until you press Accept. In the United States they load by default on our public pages while you are not signed in (the Meta pixel also on sign-up, sign-in and the subscribe steps, signed in or not), except session recording, heatmaps and the affiliate referral cookie, unless you opt out or your browser sends Global Privacy Control (see Where you are changes the default). Durations are the maximum lifetime the provider sets; a cookie can be removed sooner by you or your browser.

Analytics and advertising cookies and storage
Name / keyStored asSet byPurposeDuration
_gcl_au, _gcl_aw, _gcl_gbcookieGoogle (Google Ads) (first-party)Attributes a sign-up to the Google ad that brought you here, and builds remarketing audiences. Loading the Google tag also contacts google.com and google.co.uk.90 days
_gcl_lslocalStorageGoogle (Google Ads) (first-party)Google's first-party linker store, used for the same ad attribution.Until cleared
test_cookiecookieGoogle (doubleclick.net) (third-party)Checks whether your browser accepts cookies before Google sets advertising identifiers.15 minutes
_fbp, _fbccookieMeta (Facebook) (first-party)Set by the Meta pixel so Meta can tell which of its ads brought a sign-up and build advertising audiences. _fbp is a random browser id; _fbc is written only if you arrived by clicking a Meta ad. Loading the pixel also contacts connect.facebook.net and facebook.com. Outside the United States this happens only after you accept; in the United States it happens by default unless you opt out through Your privacy choices or your browser sends Global Privacy Control.90 days
Meta pixel and Conversions API eventsNothing stored on your deviceMeta (Facebook) (third-party)Sends Meta the address of the page you are on — the path only, never the part after a ? or # — for our public marketing pages, pricing, sign-up, sign-in and the subscribe steps, never inside the dashboard, the admin area or any page whose address carries a code or id. It also sends named events: a pricing-page view, a new account, opening checkout, starting a trial and starting a paid subscription, the last two with the plan's price. Your browser sends Meta its IP address and user agent with each one. After you start a trial or pay, our server also tells Meta. That report includes a hashed (SHA-256) copy of your email address only if you had pressed Accept when you opened checkout; a visitor in the United States who has not opted out can be reported without it.No storage on your device beyond the two cookies above; Meta keeps what it receives under its own policy
zm_meta_ev_*localStorageZenMode (first-party)Stops us sending Meta the same sign-up, trial or subscription event twice for the same person.Until cleared
zm_trial_conv_fired_*, zm_email_signup_conv_*, zm_ads_conv_*localStorageZenMode (first-party)Stops us counting the same Google Ads conversion twice for the same person.Until cleared (zm_ads_conv_* until the tab closes)
ph_<project key>_posthogcookiePostHog (EU region) (first-party)Product analytics: pages viewed, features used, and which marketing source you arrived from. Requests are proxied through zen-mode.io/ingest to eu.i.posthog.com.1 year
PostHog storage keys (ph_*)localStoragePostHog (EU region) (first-party)Holds the same analytics identifier and the queue of events not yet sent.Until cleared
PostHog session recordingNothing stored on your devicePostHog (EU region) (first-party)Records a replay of the page on our PUBLIC MARKETING PAGES ONLY — the home page, pricing, blog, comparison and policy pages — so we can see where the wording or layout confuses people. It never runs on the dashboard, the admin area or the affiliate portal, and never on the sign-in or sign-up pages. Everything you type into any field is masked before it leaves your browser: we record that a field was filled in, not what was in it. Passwords are never recorded. The recording is kept on PostHog's servers in the EU, not on your device, and it stops the moment you withdraw consent. It runs only after you press Accept, in every region, the United States included.No storage on your device; the recording is kept on PostHog's servers in the EU
PostHog heatmapsNothing stored on your devicePostHog (EU region) (first-party)Counts where people click, move the mouse and scroll to, on the same PUBLIC MARKETING PAGES ONLY. It records coordinates and the page address, not the content of the page and nothing you type. It never runs on the dashboard, the admin area or the affiliate portal. It runs only after you press Accept, in every region, the United States included.No storage on your device
zm_first_touch_*, zm_signup_complete_*localStorageZenMode (first-party)Stops us re-sending your first-touch marketing source and sign-up event on every page load.Until cleared
Vercel Web AnalyticsNothing stored on your deviceVercel (first-party)Page-level traffic counts. Sets no cookie and writes nothing to your device, but its script reads one local-storage item (__va_attribution) and each page view sends a request to zen-mode.io/_vercel/insights/view.No storage on your device
ZenMode page-view recordNothing stored on your deviceZenMode (first-party)Sets nothing on your device, but records on our servers: the page path, the referring URL, any utm_* parameters, your browser's user agent, your screen width, the country and city your IP resolves to, and, if you are signed in, your user id.No storage on your device; the server record is deleted after 90 days
ZenMode download-click recordNothing stored on your deviceZenMode (first-party)Sets nothing on your device. When you press a desktop-app download button we record which button and platform, and whether you were signed in. Only if you accepted analytics cookies do we also record your user id (in the United States too: a signed-in visit is never covered by the default), so we can see whether people who download go on to use the app.No storage on your device; the server record is kept while we measure activation
zm_ftcookieZenMode (first-party)Remembers which marketing source first brought you to zen-mode.io (the utm_source / utm_medium / utm_campaign tags on that page, the referring website's name and the page you landed on), so that if you sign up we can tell which of our channels works. Written only after you accept (in the United States, by default on our public pages when you are not signed in, unless you opt out or your browser sends Global Privacy Control). Before that, the landing page is held in the open tab's memory and nothing is stored. Copied to your account once you sign up, then deleted from your browser. Sent only over HTTPS (Secure).90 days, or until you sign up
zen_ref, zen_ref_atcookieZenMode (first-party)Credits an affiliate partner if you arrived from their referral link. Sent only over HTTPS (Secure). Recording the click also stores your IP address, your user agent, the referring URL and the landing page on our servers. A daily job deletes that server record after 24 months, which is how long an affiliate commission can still be queried. Email hello@zen-mode.io to have yours removed sooner.Cookie 90 days; the server-side click record 24 months, deleted by a daily job

Where this data goes

Google LLC (United States), Sentry (United States), Vercel (United States), Cloudflare (United States) and Anthropic (United States) process data outside the UK. PostHog is on its EU region (Germany) and our requests reach it through a proxy on our own domain. Where data leaves the UK/EEA we rely on the provider's Standard Contractual Clauses or the UK International Data Transfer Agreement. The full list of processors, including the ones that never touch your browser, is in our Privacy Policy.

Questions

Email hello@zen-mode.io. You can also complain to the UK Information Commissioner's Office at ico.org.uk.