Cookies and browser storage
Last updated 25 October 2026. In the EEA, UK and Switzerland, optional analytics, session replay and personalization stay off until you choose them. US visitors see no automatic consent popup: analytics and masked public-page replay are enabled unless opted out. Existing choices and Global Privacy Control take priority. If location is unknown, tracking waits for a choice. Listening works with tracking off.
| Purpose | What is stored | Control / duration |
|---|---|---|
| Security and sign-in | Hosting and sign-in providers manage essential cookies. Cloudflare’s __cf_bm bot-protection cookie was observed on this site. | Cloudflare documents expiry after 30 minutes of inactivity. Authentication-cookie lifetimes are controlled by the sign-in provider. |
| Measurement exclusion | epichear_measurement_off=1, only when you choose exclusion; the same value for everyone, not an identifier. | One year, or until you allow measurement again. |
| Privacy choice | Your analytics, session-replay and personalization choices in local storage. | Until changed or browser storage is cleared. |
| Listening and drafts | Playback position, speed, saved guest stories and unfinished creator drafts on this device. | Use My library / Create controls, or clear browser storage. Signed-in records are separate. |
| Optional analytics | A random browser ID, a tab session with a 30-minute inactivity timeout, first-touch campaign labels, and an unsent event queue of up to 250 records per tab for up to 24 hours; custom events and the Cloudflare analytics beacon. Signed-in, consented activity can be linked using a pseudonymous account key. | Browser ID validity: 90 days. Custom events older than 90 days are cleaned up when later analytics submissions arrive; see the privacy notice. Turn analytics off below. |
| Optional session replay | Microsoft Clarity uses _clck and _clsk cookies for consented heatmaps and masked session replays on public pages. | Separate replay opt-in. _clck: up to one year; _clsk: one day. Turn off replay in privacy preferences. |
| Optional recommendations | Story interests saved in this browser. | Interests expire after 90 days without activity on that story. Turning personalization off clears the profile. |
Third-party requests
The Product Hunt badge image is served by EpicHear. Product Hunt is contacted only when you select its external link. ChatGPT handles sign-in. Cloudflare analytics loads only after analytics consent. Microsoft Clarity loads only after separate session-replay consent and excludes recognized owner accounts and private pages. GA4 is not installed.
Disabling optional analytics does not disable hosting security cookies or change essential sign-in behavior. You can block external images or cookies in browser settings, although blocking essential sign-in cookies may prevent login.
Aggregate audio delivery counts
When an episode file is served, we count qualifying requests by UTC day, book and episode without waiting for optional analytics consent. These counters contain no visitor or session identifier, IP address, account, device, country, referrer or individual timestamp. We do not join them to listening profiles. Requests starting at byte zero and delivering at least 1 KB count; tiny probes, later seek ranges, HEAD requests, failed or locked requests and recognized bots do not. Caches, preloading and retries affect totals, so these are not unique listeners or confirmed plays. Counts older than 90 days are cleaned up on subsequent qualifying requests; cleanup may be delayed during inactivity. Hosting providers still process technical request data to deliver the service. We also honor Do Not Track and Global Privacy Control for these counts.
Exclude this browser from measurement
Use this for your own testing, or to opt out of aggregate audio delivery counts. It also stops optional analytics in this browser. Apply it separately on each device. This does not remove earlier records or hosting security logs.
Full privacy notice · Cloudflare cookie documentation · Privacy questions