Cookie Policy
Last updated: 2026-10-06
CamSpike uses necessary storage for site features and your privacy choice. When Google Analytics is configured, optional analytics cookies are used only after you accept. Rejecting analytics does not restrict access to the site. Cloudflare Web Analytics does not set analytics cookies.
Google Analytics loads before a choice with analytics storage denied. Only Essential leaves limited cookieless measurement running, but does not enable analytics cookies or our detailed activity events. Cookieless measurement still sends requests to Google and is not guaranteed anonymous.
| Name / key | Provider | Type | Purpose | Category | Duration | Party | Consent required? |
|---|---|---|---|---|---|---|---|
| Supabase auth session cookie(s) | Supabase (`@supabase/ssr`) | Cookie (httpOnly) | Keeps you signed in | Necessary | Managed by Supabase's client library (session/refresh token lifetime) | First-party | No |
| `camspike_vid` | CamSpike | Cookie (httpOnly) | Anonymous visitor id for affiliate click attribution and for alerts set while signed out. Written only when you click out to a platform or enable an alert - reading pages sets nothing | Necessary for alerts; legitimate interest for attribution | 1 year | First-party | No |
| `camspike_admin` | CamSpike | Cookie (httpOnly) | Internal admin-panel access gate (staff only, not set for regular visitors) | Necessary | Session/short-lived | First-party | No |
| `camspike:age-confirmed` | CamSpike | localStorage | Remembers your 18+ age confirmation (see /legal/18-plus) | Necessary | No expiry set - persists until browser storage is cleared | First-party | No |
| `camspike:reveal-previews` | CamSpike | localStorage | Remembers whether you asked for live previews to be shown unblurred. Previews are blurred until you ask | Necessary (safety preference you set) | No expiry set - persists until browser storage is cleared | First-party | No |
| `camspike:sidebar-collapsed` | CamSpike | localStorage | Remembers whether you collapsed the navigation sidebar | Necessary (interface preference) | No expiry set - persists until browser storage is cleared | First-party | No |
| `camspike:multicam` | CamSpike | localStorage | Remembers the rooms you added to the multicam tray | Necessary (feature state you created) | No expiry set - persists until browser storage is cleared | First-party | No |
| `camspike:consent` | CamSpike | localStorage | Stores your optional analytics choice and policy version | Necessary (privacy choice) | Until cleared or the consent version changes | First-party | No |
| `_ga`, `_ga_*` | Google Analytics | Cookie | Connect visits and interactions for optional analytics, when configured and accepted | Analytics | Up to 2 years | First-party | Yes |
Why the 18+ confirmation isn't a consent banner
The 18+ age gate exists because of the nature of the content, not because of tracking. It stores a single flag in your browser's localStorage and opts you into nothing.
How to remove what is stored
Everything above is either a first-party cookie or a localStorage key, so clearing site data for camspike.com in your browser removes all of it. Blocking cookies for this site will sign you out and lose any alerts you set while signed out, but the site otherwise keeps working.
When Google Analytics is configured, open Cookie settings in the footer to change or withdraw your detailed analytics choice. Withdrawal stops our detailed events and denies further analytics cookie access; limited cookieless measurement continues. Clear site data to remove stored cookies and browser storage.
