Cookie Policy

Last updated: 2026-10-15

This policy explains which cookies and browser storage (localStorage, sessionStorage, and IndexedDB) the macrohandler.com website uses, what they are for, and how you can manage your choice. The website's own code does not create its own traditional cookies; the cookies listed below are placed by the third-party services we use (Google).

1. Categories

These are the three categories shown in the cookie banner. Analytics and functional storage stay off until you turn them on.

Necessary (always on)

  • Sign-in: Firebase Authentication keeps your session in localStorage until you sign out; while a Google redirect sign-in is in progress, short-lived entries are kept in sessionStorage. Signing in with Google uses Google's own cookies on Google domains.
  • Security check: Firebase App Check uses Google reCAPTCHA Enterprise on every page to confirm that requests come from our genuine website. For this, Google receives information such as your IP address, browser and device characteristics, and signals about how the page is used, and it may use its own cookies on google.com. The verification token is kept in IndexedDB and the _grecaptcha entry in localStorage.
  • Your cookie choice: macrohandler_cookie_consent stores your decision in localStorage so the banner does not reappear on every page.

Analytics (off by default)

Google Analytics for Firebase loads only if you accept analytics; it measures page views and basic usage statistics. Google Analytics then creates the _ga and _ga_<ID> cookies on the macrohandler.com domain; Google sets their lifetime (by default up to 2 years). Until you accept, Google consent mode stays at its default "denied" state and no measurement cookie is written. We do not run advertising. When you withdraw consent, measurement stops; you can delete cookies created earlier in your browser settings.

Functional (off by default)

Your theme (theme), language (macrohandler_web_lang), animation (macrohandler_motion) and sound (macrohandler_sound) preferences are kept in localStorage and remembered on later visits only if you accept functional storage. If you do not, they are kept in sessionStorage only until you close the tab. If you withdraw that consent later, the stored copies are removed from localStorage.

2. Full List of Browser Storage

We also use browser storage. Necessary entries: macrohandler_cookie_consent keeps your cookie choice in localStorage; Firebase Authentication keeps your signed-in session in localStorage under firebase:authUser:<apiKey>:[DEFAULT] until you sign out, and the Firebase SDK may also create the firebaseLocalStorageDb IndexedDB database; while a Google redirect sign-in or re-authentication is in progress, Firebase keeps the short-lived firebase:pendingRedirect:<apiKey>:[DEFAULT] and firebase:redirectUser:<apiKey>:[DEFAULT] entries in sessionStorage; Firebase App Check with Google reCAPTCHA Enterprise keeps its security token in the firebase-app-check-database IndexedDB database, and reCAPTCHA keeps the _grecaptcha key in localStorage; the Firebase SDK keeps the daily usage heartbeat it attaches to Firebase requests in the firebase-heartbeat-database IndexedDB database. Functional entries: theme, macrohandler_web_lang, macrohandler_motion (set when you pause animations) and macrohandler_sound (set when you enable interface sounds) are kept in localStorage only if you accept functional storage; otherwise they stay in sessionStorage until you close the tab. Support or appeal drafts are stored first in sessionStorage under macrohandler.appealDraft.<draftId> and may be recovered only from legacy localStorage entries for backward compatibility; forum_topic_view_<topicId> debounce markers are stored in localStorage; mh_auth_redirect_pending and mh_auth_redirect_pending_at are stored in sessionStorage first, but a short-lived localStorage fallback may be used only when the browser blocks sessionStorage during redirect recovery; mh_auth_last_incident and mh_secure_callable_last_incident are short-lived sessionStorage entries used for failed auth or secure callable recovery; mh_admin_portal_google_handoff, mh_admin_portal_unlock_token, and mh_admin_portal_client_session_id are stored only in sessionStorage for the active admin portal session; and, for administrators only, mh_admin_dashboard_summary:<uid> keeps a cached admin dashboard summary in sessionStorage for at most 15 minutes, mh_admin_recent_routes lists the admin pages recently opened in the tab in sessionStorage, and mh_admin_saved_views:<uid>:<page> keeps the filter views an administrator saves in localStorage until they are deleted or the administrator signs out. These items are not used for advertising or cross-site tracking.

MH AI: API keys and connection details added by signed-in users are stored in this browser using account-scoped AES-GCM encryption in the mh-ai-account-vault IndexedDB database. The encryption key is kept in the same browser as a non-extractable CryptoKey; this does not guarantee protection from malicious page code or extensions. Records are not sent to our server or synced across devices. Signing out clears memory but retains saved connections for restoration when the same account signs back in. In MH AI Connections, remove one connection or forget all saved AI connections on this device. Clearing browser data also removes these records. Guest keys and chat stay only in tab memory.

3. Third-Party Services

We use Firebase/Google Cloud services for authentication, security, and infrastructure. These third-party services may place their own technical cookies and storage. This site is protected by Google reCAPTCHA Enterprise, and the Google Privacy Policy and Terms of Service apply.

4. Managing Your Cookie Preferences

You can change your analytics and functional storage decision at any time with the "Change my cookie preferences" button at the top of this page; withdrawing consent is as easy as giving it. You can also delete or block cookies and site data in your browser settings. If you block necessary storage, core functions such as sign-in, the forum, or support may stop working.

5. Updates and Contact

This policy may be updated when needed. For cookie and local storage requests, contact us at support@macrohandler.com.