This Cookie Policy explains how this Website uses browser storage and optional analytics cookies. It matches the behaviour of our site scripts (theme.js and analytics.js). The legal name of the operator or company is left empty for now. Contact: [email protected].
Related pages: Privacy Policy, Terms of Use.
1. Summary
| Technology | Name / pattern | When set | Purpose | Ours or third party |
|---|---|---|---|---|
localStorage |
spinmetrics.theme.v1 |
When you use the theme control (or when a saved value is read) | Remember light or dark theme | First-party site code |
localStorage |
spinmetrics.analytics-consent.v1 |
When you choose Accept or Reject (if analytics is enabled) | Remember analytics consent | First-party site code |
| HTTP cookies | _ga, _ga_* (typical Google Analytics names) |
Only after Accept, when a GA4 measurement ID is configured | Optional usage measurement | Google (after consent) |
Our site code does not set first-party HTTP cookies for theme or consent. Those preferences use localStorage only.
2. Theme preference (theme.js)
- Storage key:
spinmetrics.theme.v1 - Values:
lightordark - If unset or unavailable, the catalog defaults to dark for the page
- Independent of analytics consent
- Our code does not set an expiry; clearing this site’s data in your browser removes the entry
- Changes can sync across open tabs via the browser
storageevent
3. Analytics consent (analytics.js)
- Storage key:
spinmetrics.analytics-consent.v1 - Values:
acceptedorrejectedwhen you use the consent bar - Shared across languages and open tabs on this site
- Our code does not set an expiry; clearing site data removes the entry
- If storage is unavailable, a choice can still apply to the current page but is not saved
- Cookie settings in the footer reopens the consent bar when analytics is enabled
4. Optional Google Analytics 4
When a GA4 measurement ID is configured (production ID: G-WYHDBCWY9F), the site uses Google consent mode:
- Defaults keep
analytics_storage,ad_storage,ad_user_dataandad_personalizationdenied - The Google tag loads only after Accept, or when a saved acceptance is read
- Accept grants
analytics_storageonly; advertising-related consent signals stay denied - Google signals and ad personalization are disabled in our configuration
- Before Accept and after Reject, a new visit does not load the Google tag or queue interactions for later reporting
After acceptance, Google’s tag may set analytics cookies commonly named _ga and _ga_*. Our site code does not write those cookies itself.
With consent, our analytics code may report page views, language switches, market-list game clicks, external source clicks (hostname only), FAQ openings and the first 90% scroll. Custom fields do not include names, email addresses, question text, full external URLs or user-entered information. The configured page address is the canonical URL without query parameters or fragments; the analytics referrer field is set empty.
5. Retention
- Analytics data is kept for 6 months.
- Browser preferences (
localStoragekeys above) have no expiry set by our code. - Hosting request logs follow Cloudflare’s practices for Cloudflare Pages.
- Reject stops further events from our analytics code and resets consent to denied. It does not erase cookies created after an earlier acceptance or delete data already sent. Clear this site’s data in your browser to remove stored preferences and cookies from your device.
6. Managing choices
- Use Accept / Reject on the consent bar, or Cookie settings in the footer when analytics is enabled.
- Use your browser controls to delete
localStorageand cookies for this site. - Google provides additional controls for Google Analytics users where applicable under Google’s policies.
7. Changes and contact
We may update this page by publishing a revised version here. No effective date is stated on this draft. Questions: [email protected]. Governing law for related site policies: British Virgin Islands.