QuestGlass

Cookie and local storage policy

This release uses browser or device storage for authentication, security, preferences, drafts, quest progress, and an optional analytics choice. The inventory below names the QuestGlass-controlled keys, their purpose, and when they are removed. QuestGlass does not ship advertising, remarketing, fingerprinting, or cross-site tracking code.

Last updated: August 12, 2026

  • Strictly necessary storage keeps the app working
  • Non-essential analytics or advertising stays off without opt-in
  • You can manage browser storage in your browser settings

Firebase authentication persistence

On web, Firebase Authentication uses first-party IndexedDB/local browser storage under the questglass.com origin to keep the selected account signed in and to refresh its session securely. It remains until sign-out, account deletion, browser-site-data clearing, or provider expiry. Native apps use protected application storage for the same purpose. QuestGlass does not use the authentication record for advertising.

QuestGlass local keys

The web app uses qg-authed for the signed-in landing hint; qg-analytics-consent:<account> and qg-analytics-consent-decided-at:<account> for the current analytics choice and its decision time; istanbul-quest-create-draft for an unfinished quest draft; questglass:last-official-quest-filters:v2 for catalog filters; questglass-official-catalog:v2 and questglass-official-catalog:canonical:v1 for the reviewed quest cache; istanbul-quest-official-progress:<account> for local quest progress; qg-policy-accepted-<account> for the current required-policy version; qg-safety-ack-<account> for the quest-safety acknowledgement; istanbul-quest-push-opt-out:<account>:<platform> for a push opt-out; and qg-friend-invite:v1:pending for an unfinished invite. These remain until the related action replaces/removes them, the app clears them, or the user clears site/app storage.

Session-only keys

qg-guest-return-quest remembers the requested quest only for the current browser tab/session. iq-login-event-<account> prevents duplicate login telemetry in the same tab/session. The browser removes sessionStorage when the tab session ends, and QuestGlass also removes these keys after the related return or login action.

Optional product analytics

qg-analytics-consent:<account> stores the current accept-or-decline choice on the device (1 for accept or 0 for decline), while qg-analytics-consent-decided-at:<account> stores when it was made. The same choice and time are stored in the account's private profile so it follows that account across devices. An acceptance remains until the user turns analytics off in Settings. After a decline, analytics stays off unless the user later accepts or enables it in Settings. No product event is queued or sent before acceptance. Accepted events are bounded counters with platform and approved diagnostic categories; they exclude account IDs, email, username, message text, precise coordinates, and persistent advertising identifiers. Server aggregates and their retry ledger expire after 90 days through Firestore TTL; client-error aggregates expire after 30 days. Declining clears the local analytics queue.

Third-party scripts and storage

Google Identity Services is loaded only on the web landing, login, and signup routes that offer Google sign-in, not on public legal/help pages. The public Report form and signed-out account-deletion request form load Cloudflare Turnstile only to prevent automated abuse; Turnstile may process network, device, and challenge signals under Cloudflare's privacy terms and is not used for advertising. The shipped QuestGlass Content Security Policy does not allow Cloudflare Web Analytics collection endpoints; dashboard injection must remain disabled, and any RUM script injected outside the shipped artifact is a release defect.

Native application storage

On iOS and Android, the same preference, invite, quest catalog/progress, policy, safety, push, and analytics-choice records use application-local AsyncStorage. They remain until replaced or removed by the related action, account/app deletion where applicable, app-data clearing, or app removal. They are not shared with advertising networks.

Technologies not used in this release

  • No third-party advertising cookies, remarketing pixels, or cross-site tracking identifiers.
  • No sale or sharing of browsing behavior with data brokers.
  • No fingerprinting techniques to identify a person without consent.
  • No product analytics before the stored accept choice.

Managing storage

Use the in-app analytics choice to accept or decline optional product analytics. You can also clear QuestGlass cookies, IndexedDB, localStorage, and sessionStorage in browser site settings, or clear/remove the native app's data. Clearing necessary storage may sign you out, reset preferences, remove a draft, or remove local-only quest progress.

Explore QuestGlass

Public policy text is available here without JavaScript. Interactive accounts, maps, chat, and settings still require the app.