Cookie Policy

How Mana Grove uses cookies and device storage, and how to control it

Last Updated: October 25, 2026

Version 1.7

What changed in version 1.7. The Functional category, which lets Mana Grove remember your preferences on this device between visits, is now on by default with notice wherever the Analytics and Advertising categories are: in Canada outside Quebec and in the United States outside California (unless your browser sends a Global Privacy Control signal there). You can turn it off at any time, and everywhere else it stays off until you turn it on. If you answered an earlier version of our cookie notice (version 4 or 5) in those two places and your answer left Analytics and Advertising on and Functional off, we show you the updated notice once, with Functional on by default as it is for everyone else there: it turns on when you close the notice, or when you select Save choices with its switch left on, and you can turn it off from Manage options. This includes a Functional switch you turned off yourself: we cannot tell it from one you never turned on, and answers to version 4 do not record where they were given. If your earlier answer turned off Analytics or Advertising, every choice in it stands, Functional included, and so does any answer to version 5 that you gave where we ask first. Section 3 now also lists two entries we keep in this tab when we can no longer confirm this browser's sign-in to your account and have to ask you to sign in again. Sections 2, 3, 4, 5.1 and 10 were updated to match.

1. What this policy covers

This policy covers cookies and device storage used by Mana Grove, a service of The Mana Grove Trading Cards Ltd.: browser cookies, localStorage and sessionStorage on the website, AsyncStorage in the mobile application when it is available, and the small number of third-party services our pages load (see sections 5 and 6).

We treat all of these the same way, because they all place or read information on your device. Calling something "not a cookie" does not change what it does.

2. How consent works

There are exactly four categories:

  • Strictly necessary: always on. These cannot be switched off because the service cannot run without them.
  • Functional: lets Mana Grove remember your preferences on this device between visits. On by default with notice in Canada outside Quebec, and in the United States outside California unless your browser sends a Global Privacy Control signal, like Analytics and Advertising; off by default everywhere else. Section 4 says exactly where.
  • Analytics: lets us measure how Mana Grove is used. Turning it on or off controls Google Analytics, Microsoft Clarity (including its session recording) and our own measurement entries on your device, all listed in section 5. Whether it runs before you answer depends on where you are, and section 5.1 says exactly where. Turning it off does not stop the small, separate layer described in section 5.1, which has its own off switch.
  • Advertising: lets the Google Ads tag and the Reddit Pixel measure our own advertising and show Mana Grove's advertising to you on those platforms. Whether this runs before you answer depends on where you are, and section 6 says exactly where.

Where we ask you first, nothing in the Functional category runs before you make a choice and nothing is pre-ticked there, and rejecting everything takes exactly one click, in the same place and with the same prominence as accepting everything. Where we tell you first (Canada outside Quebec and the United States outside California, sections 4, 5 and 6), the notice's Manage options button shows every switch as it actually is or, for a switch the notice is about to turn on, as it will be once you close the notice, so anything that is on, or about to be, can be turned off on the spot. An explicit refusal is honoured everywhere, in every region, with the single exception described under "What changed in version 1.7" above.

Advertising is its own category, and it is yours to control. We show no advertising on Mana Grove itself and we have no affiliate trackers; the Advertising category exists so that our own advertising on other platforms can be measured and, if you allow it, shown to people who have visited us. Like Analytics, whether it runs before you answer depends on where you are: on by default with notice in Canada outside Quebec and in the United States outside California (unless your browser sends a Global Privacy Control signal there), off until you turn it on everywhere else. Section 6 has the details and the controls.

You can change your mind at any time:

  • "Cookie preferences" (on the web: the site footer, where the "Your Privacy Choices" link opens the same choices, or Settings → Privacy; in the app: Settings → Privacy): controls Functional, Analytics (Google Analytics, Microsoft Clarity and our own measurement entries listed in section 5) and Advertising.
  • "Measurement settings" (on the web: the site footer, right beside Cookie preferences, or the same link under Settings → Privacy when you are signed in): your objection to the small layer described in section 5.1. It is a separate switch, and turning Analytics on or off does not change it. Objecting stops that layer even if Analytics is on, and deletes four of our own measurement entries from this device (section 5), but it does not change your Analytics or Advertising answers.

Withdrawing consent takes effect immediately: we stop using that category on the spot and delete what we stored on your device for it. Withdrawal does not undo processing that already happened, and if you are signed in we keep the record of your privacy choices as described in section 9.

If we materially change what a category is used for, we increase the notice version and ask you again. Categories you previously agreed to keep working for what you originally agreed to; nothing new starts until you answer, except where a notice tells you a category is on by default (section 4).

3. Strictly necessary

These keep you signed in, keep your session secure, let our network provider check for automated traffic, let you complete a subscription checkout, finish a sign-in you asked for and come back to the page you were on when we have to ask you to sign in again, keep the changes you made before they reach your account, stop a page from reloading in a loop and a sign-in from repeating in one, record the privacy choices you make (we have to store a refusal in order to honour it), let the free demo you opened, and the Scry searches you make on a public page without an account, run within their free allowance, and keep the demo's one reminder to once per tab.

NameTypePlatformPurposeExpiry
csrf_tokenCookie (set by our server)WebProtects state-changing requests against cross-site request forgery1 hour
cf_clearanceCookie (set by Cloudflare, our network and security provider, on our own domain)WebLets Cloudflare check whether a visit comes from a person's browser or from automated software. A small Cloudflare script, served from our own domain, is added to every page our site sends to your browser, and Cloudflare keeps the result of its check in this cookie. Cloudflare's cookie documentation describes its cookies as strictly necessary to provide the services its customers, such as Mana Grove, request from it. Our own code never reads it30 minutes by default, set by Cloudflare; it may be renewed while you keep browsing
dc_demoCookie (set by our server)WebLets the free demo you opened, and the Scry searches you make on a public page without an account, run within their free allowance. The demo's Grover answers and deck build only work in a browser that holds it, and so does saving a copy of your demo deck on our server while you create an account. The demo's allowances (Scry searches, Grover messages, deck builds and Tutor rounds) are counted against it, and so, separately, is the free allowance of Scry searches that our public pages give you without an account, which has its own limit for as long as the cookie lasts and a daily limit for the network you connect from, a limit that still applies if this cookie is cleared or blocked. It also limits how many event counts (section 5.1) this browser can send us. Together, these let us offer the demo and Scry search to anyone without an account while limiting abuse. It holds three things, signed by us so that an altered value is refused: a random session number, which is not linked to your name, email address or account; the time the session started; and whether this browser passed our anti-abuse challenge. It is set when you open a demo page, or when you run a Scry search on a public page without an account, and your browser then sends it with every request to Mana Grove24 hours, or until you sign in or create an account on this browser, whichever comes first
Firebase Auth persistence: firebase:authUser:<project key>:[DEFAULT], and the firebaseLocalStorageDb and firebase-heartbeat-database databasesLocal storage, session storage and IndexedDB (web); the app's private storage on the device (app)Web + appKeeps you signed in (a service you explicitly asked for). On the web, your sign-in is kept in local storage; if you sign in with your password and untick "Keep me logged in on this device", it is kept in session storage instead, for that tab session only. Either way, the middle of its name is our sign-in project's key, which is the same for every visitor. Our sign-in service also keeps two databases in this browser's IndexedDB storage and opens them on every visit, signed in or not. It opens firebaseLocalStorageDb to check that it could keep a sign-in there: that database holds your sign-in only if local storage is unavailable, or if an earlier version of our site put it there, in which case your next visit moves it to local storage; otherwise it stays empty. In firebase-heartbeat-database it records, at most once a day, that day's date and the versions of its own software, and it sends these records to Google the next time it contacts Google's sign-in servers, for example when you sign in or while you stay signed in; until then, at most 30 of them stay in this browser. When a page offers you a way to sign in, our sign-in service's hidden frame, which runs on our own domain, checks that it can use local storage and session storage and reads entries there whose names start with firebase: and include our project key (for example firebase:authEvent:<project key>:[DEFAULT]); the result of a sign-in you start in a sign-in window may be written there so that this page can receive it. The sign-in window itself, which also runs on our own domain, makes the same check and, before it takes you to the provider you chose, such as Google, keeps two entries in its own session storage: firebase:oauthHelperState, which describes the sign-in you started and has no project key in its name, and firebase:sessionId:<project key>:[DEFAULT], which lets it match the provider's answer to that sign-in. These entries are used only to finish that sign-inUntil sign-out, and, for a sign-in kept in session storage, at most until the tab session ends; the records in firebase-heartbeat-database until they are sent to Google; the two databases stay until you clear site data in your browser; the hidden frame's entries: in session storage, at most until the tab session ends; in local storage, until our sign-in service removes them or you clear site data in your browser; the sign-in window's two entries: at most until that window closes
mg_cookie_consent_v1Local storageWeb + appThe record of the choices you made hereUntil cleared
dc_telemetry_opt_outLocal storageWeb + appA legacy "do not measure this browser" objection, still honoured as an overrideUntil cleared
mg_measurement_objection_v1Local storageWebThe record of whether you have objected to the layer described in section 5.1 in "Measurement settings"; it also records an explicit "allowed" if you turn measurement back on after objectingUntil cleared
plausible_ignoreLocal storageWebPlausible's own "do not count this browser" switch. We set it when you object, so that the Plausible script stops counting this browser, and remove it if you turn measurement back onUntil you turn measurement back on, or until cleared
mg_crash_opt_outLocal storageWeb + app (when the mobile application is available)The record that you turned crash reporting offUntil cleared
dc_attribution_install_sentAsyncStorageApp (when the mobile application is available)Records that install attribution was captured or refused, so a refusal is never re-firedUntil cleared
dc_device_idLocal storageWebUsed only to recognize this device for account security: device-session checks, two-factor "remember this device", and session revocation. Deliberately survives sign-out. Never used for measurement.Until cleared
dc_sync_ops_v1__<account>, dc_sync_cursor_v1__<account>Local storageWebWhen you are signed in, keeps the changes to your collection and decks made on this browser that have not yet reached your account, and how far this browser has synced with your account, so that no change is lost if the connection drops. The name ends in your account's sign-in identifierUntil you sign out
dc.auth.emailLinkPendingLocal storageWebThe email address you typed to receive a sign-in link, and when it was stored, kept on this browser so that the sign-in you asked for can finish here without asking for the address again; it is written only when a link is actually sent (when sign-in by emailed link is available)Until you finish signing in, the link fails for good, or you sign out. It is never used after 24 hours, and an entry older than that is deleted the next time you open Mana Grove in this browser
dc.auth.deviceSessionReauth, dc.auth.deviceSessionReauth.lastAtSession storageWebWhen we can no longer confirm this browser's sign-in to your account and have to sign you out so that you can sign in again, the first remembers, in this tab, when that happened and the page you were on, so that the sign-in page can tell you why and take you back there afterwards; the second records when this tab last did so, so that it cannot happen again within 10 minutes and you are never caught in a sign-in loopThe first: until you sign in again or the tab session ends, and never used after 30 minutes; the second: tab session
checkoutData_session, checkoutData_encryptedSession storageWebHolds the checkout you started, for the length of the tab session (used when that checkout flow is available)Tab session
dc:preloadErrorReloadAtSession storageWebOne-shot guard that prevents a reload loop when part of the app fails to loadTab session
dc:routeChunkReloadAtSession storageWebOne-shot guard that prevents a reload loop when a lazy route chunk fails to loadTab session
dc.demoLeavePromptShown, dc.demoLeavePromptShown:<demo>Session storageWebRemembers that the free demo has already made its one reminder in this tab, either as you were about to leave the page or at the end of the welcome tour, so it is not shown again in this tabTab session

dc_device_id is listed as strictly necessary on security grounds: it exists solely so device-session checks, two-factor "remember this device" and session revocation can work. It is never used for measurement.

mg_measurement_objection_v1 and plausible_ignore are web-only entries: the mobile application has no equivalent today. They are listed here rather than under Analytics because keeping a record of your objection is what lets us honour it.

dc_demo is listed as strictly necessary because the free demo's Grover answers and deck build cannot run without it, and the limits that let us offer the demo and Scry search to anyone without an account are counted against it. Its session number is never written into any measurement record or linked to your account, and the cookie is deleted when you sign in.

4. Functional

These remember your preferences across visits. Mana Grove works fully without them: your choices simply live for the current session and reset when you leave.

NameTypePlatformPurposeExpiry
dc:themeLocal storageWeb + appYour light / dark / system theme choiceUntil cleared
dc:localeLocal storageWebYour French / English display-language choiceUntil cleared
dc-view-mode:*, dc.viewer.viewMode, dc.brew.yourDecks.inlineExpanded, dc.asst.history.collapsedLocal storageWeb + app (when the mobile application is available)Layout and view-mode preferences, including whether the AI assistant's conversation history panel is collapsedUntil cleared
dc.market.viewModeLocal storageWebRemembers whether you chose the grid or the list layout on the marketplace, so it opens the way you left it (when the marketplace is available)Until cleared
*.paginationMode (deck browser, your decks, commanders, card search)Local storageWebWhether a result list uses paging or infinite scrollUntil cleared
dc.brew.decklistSortLocal storageWebRemembers how you sorted the decklist in the deckbuilder, so it opens the way you left itUntil cleared or consent withdrawn
dc.cardExplorer.viewModeLocal storageWebRemembers whether you chose the grid or the 3D shelf for card search results, so the deckbuilder and the Browse cards page show them the way you left them. Each account that signs in on this browser keeps its own choice, filed under a short code worked out from its sign-in identifier rather than the identifier itself, and signed-out visits share one choiceUntil cleared or consent withdrawn (five most recent choices kept)
dc.brew.deckbuilderSplitLocal storageWebRemembers how wide you made the deck pane in the deckbuilder, so it opens the way you left it. Each account that signs in on this browser keeps its own choice, filed under a short code worked out from its sign-in identifier rather than the identifier itself, and signed-out visits share one choiceUntil cleared or consent withdrawn (five most recent choices kept)
dm_recent_searches, recent-search historyLocal storageWeb + appRecalls your recent searchesUntil cleared (10 most recent kept)
dm_recently_viewed_products, recentlyViewedLocal storageWebRecalls recently viewed items and feeds on-device recommendationsUntil cleared (20 most recent kept)
dm_brew_new_deck_draftLocal storageWebKeeps an unsaved deck draft so you do not lose it between visits7 days
dc.demo.deckLocal storageWebKeeps the deck you are building in the free demo (its cards, its name and commander, and on the Grover demo the request you gave Grover and the deck it built), so reloading the page, switching apps or coming back from the sign-up page does not lose it7 days
dc_commander_selection_*Local storageWebCarries your in-progress commander selection across the sign-in redirect so you do not have to re-pick after logging in30 minutes
dc.collect.pendingImportLocal storageWebKeeps a collection import you started that would take your collection past your plan's card limit (a copy of the file you chose, its name, your import settings, the card counts and the plan shown to you, and the plan you chose), so the import can finish on its own when you come back from checkout and you do not have to choose the file again; the copy leaves this device only to finish that import, and only to Mana GroveUntil the import finishes, or until you cancel it or close the plan suggestion without upgrading. It is never used after 24 hours, and if it is left behind (for example because you closed the tab), it is deleted the next time you open your collection
dc.home.startHereDismissedLocal storageWebRemembers that you dismissed the "Start here" card a brand-new account sees on the home pageUntil cleared
dc.tour.seenLocal storageWebRemembers that you finished the Grove welcome tour, so a later visit does not offer it againUntil cleared
dc:feedback:collapsedLocal storageWebRemembers that you collapsed the feedback button, so it stays collapsed on your next visitUntil cleared
dc.deckOwnershipLocal storageWebRemembers which decks are yours, so a deck page you return to shows the matching placeholder while it loads; it never decides what you are allowed to openUntil cleared
cartLocal storageWebKeeps what you added to your marketplace cart between visits (when the marketplace is available)Until you sign out, or until cleared
dc.demoRecapSession storageWebHolds the demo conversation you had with Grover, so it can be shown to you once after you create your account; it is deleted as soon as it is shownTab session
dc.tour.stateSession storageWebRemembers where you are in the Grove welcome tour, so reloading this tab picks up where you left offTab session
dc.tour.quietPromptSession storageWebRemembers that you have already answered the quiet invitation to take the Grove welcome tour, whether you took it or closed it, so it is not offered to you again in this browsing sessionTab session
dc.openInAppBannerDismissedSession storageWebRemembers that you dismissed the open-in-app noticeTab session
dc.demo.inAppGuardDismissed, dc.demo.inAppGuardDismissed.<screen>Session storageWebRemembers that you dismissed the notice offering to open a page in your own browser when you arrived from inside another app. The notice appears on six surfaces (the two demo pages, the home page, the pricing page, sign-up and sign-in); sign-up and sign-in each keep their own entry (.register, .login), so dismissing it on one does not hide it on the otherTab session
dc.upgradeNudge.dismissedSession storageWebRemembers that you dismissed the plan suggestion shown under the Grover assistant when your monthly allowance is nearly or fully used, so it is not shown again in this tabTab session
dc.quotaGate.<feature>Session storageWebOne entry per metered feature (Grover messages, Scry searches, Tutor rounds, combo detections, saved decks, collection size). Remembers which plan suggestion you have already seen or dismissed for that feature in the current allowance period, so the same card is not shown to you twice in this tabTab session
dc.upgrade.nudged.<feature>Session storageWebOne entry per metered feature. Remembers that a one line reminder about plans has already been shown for that feature in this browsing session, so it is shown at most onceTab session
dc.demo.signupPromptedSession storageWebRemembers which moments in the demo have already offered you a free account, so the same offer is not raised at you twice in this browsing sessionTab session
dc.scry.pendingSearchSession storageWebKeeps the card search you were running when you chose a paid plan from the Scry upgrade prompt (the search text, its filters, the page you were on and, in the deckbuilder, which deck), so that the search runs again on Scry for you when you come back from checkout; the search text leaves this device only when that search runs, and only to Mana GroveTab session. It is never used after 24 hours, is deleted as soon as the search runs again or you come back without upgrading, and an entry that can no longer be used is deleted the next time Mana Grove loads in this tab
dc.upgrade.pendingActionSession storageWebKeeps the one action that a limit of your plan stopped (a monthly allowance, or the number of decks you can save) when you chose a paid plan, or a higher one, from an upgrade prompt, so that it can be finished for you when you come back from checkout or from changing your plan. That is one of: the message you were sending to Grover (its text and, where there is one, which deck and which conversation it belongs to); the deck you were saving, copying or publishing (for a new deck in the deckbuilder, a short code worked out from its name, format and cards so that only that same deck is saved, its card count, whether Grover built it and whether you had chosen to save it despite format errors, while the deck itself stays in the dm_brew_new_deck_draft entry above; for a deck Grover drafted for you, a reference to that draft and the name, description, folder and tags you gave it; for a copy, a reference to the deck you were copying and the name you gave the copy, if any; for a deck you were publishing, a reference to it and its name); the deck whose combos you wanted to see; or the deck you wanted Tutor's card suggestions for (and the sort order, filters and budget you had set). It also keeps the page you were on, the plan shown to you, the plan you chose (monthly or annual) and when you chose it, and your account's sign-in identifier, so that only that account can finish it. What you typed (a message, or a deck's name, description and tags) leaves this device only when that action is finished, and only to Mana GroveTab session. It is never used after 24 hours, is deleted as soon as that action is finished or you come back without upgrading (nothing is done for you, and a message is put back where you typed it, unsent), and an entry that can no longer be used is deleted the next time Mana Grove loads in this tab
dc.firstDeckOffer.dismissedSession storageWebRemembers that you answered "No thanks" to the first-deck Plus offer card when that answer could not be recorded on your account at the time, so the card is not shown to you again in this browsing session. Your answer is normally kept on your account, not on this deviceTab session
dc.grove.whatsNextDismissedLocal storageWebRemembers that you dismissed the "what's next" card shown once after your first deck saveUntil cleared
Active game state, local podsAsyncStorageApp (when the mobile application is available)Resumes an in-progress gameUntil cleared
Recommendation cacheAsyncStorageApp (when the mobile application is available)Caches on-device recommendationsRotated automatically

Where it is on by default. In Canada outside Quebec, where we can determine the province you are in, and in the United States outside California, where we can determine the state you are in and your browser sends no Global Privacy Control signal, Functional is on by default: the notice tells you so rather than asking, the Functional switch behind the notice's Manage options button is shown already on, and you can turn it off at any time. Everywhere else it stays off until you turn it on, and it is never pre-ticked. If you later use Mana Grove from a place where we ask first, we stop using these preferences there and delete what they stored on this device, unless you turn Functional on.

If Functional is off: the theme falls back to your operating-system light/dark setting on each load, view modes return to their defaults, recent searches and recently-viewed lists are not kept, and an unsaved deck draft is not restored after you close the tab. A collection import you started before upgrading your plan does not finish on its own after checkout: when you come back, you choose the file again. A card search you were running when you upgraded your plan from the Scry prompt is not run again for you after checkout: you run it again yourself. A message to Grover that your plan's monthly allowance stopped is not kept through checkout when you upgrade from the Grover prompt: you type it again yourself. A deck you were saving, copying or publishing when you upgraded from the saved-decks prompt is not saved for you afterwards: you save it again yourself, and a deck that is not saved yet cannot be kept in this browser while you check out. Combos or Tutor suggestions you asked for from their upgrade prompts are not opened for you afterwards: you open them again yourself. Everything still works. Nothing is withheld.

5. Analytics

Two separate things sit under the word "Analytics" on Mana Grove, and each has its own control. It matters which is which, so this section says so plainly:

  • Google Analytics 4 (Google LLC) and Microsoft Clarity (Microsoft Corporation), plus our own measurement entries on your device (listed in the table below), are controlled by the Analytics switch in "Cookie preferences". Clarity's session recording has its own row in the same panel; it is part of Analytics, so the two switches turn on and off together. They are off until you turn Analytics on, everywhere except Canada outside Quebec and the United States outside California, where they are on by default with notice and you can turn them off. In the United States, a Global Privacy Control signal from your browser keeps them off until you turn them on.
  • Plausible (our cookieless analytics script), the campaign arrival counter and event counts with no identifier are a smaller, separate layer. It stores nothing on your device and runs before you answer, in every country. Section 5.1 explains exactly what it is, where it runs and how to stop it.

How the two controls relate. They are separate switches, but they do not mirror each other. Turning Analytics off in "Cookie preferences" stops Google Analytics, Microsoft Clarity and our own entries in the table below; it does not stop the layer in section 5.1. Objecting in "Measurement settings" stops the layer in section 5.1 whatever your Analytics answer, so even with Analytics on, our own event counts stop, including those that would otherwise carry the dc.funnelAnonId token. An objection also deletes four of our own entries in the table below from this device: dc_telemetry_session, dc.funnelAnonId, dc.attribution.first and dc.attribution.last. It does not change your Analytics or Advertising answers, and it does not stop Google Analytics, Microsoft Clarity or the advertising tags. While Analytics stays on, some of our own entries in the table below may be written again when they are next needed; turning Analytics off is what stops them. An objection applies to the browser you make it in.

Where the controls are. Both are always available, wherever you live. "Cookie preferences" is in the site footer, where the "Your Privacy Choices" link opens the same choices, and under Settings → Privacy. "Measurement settings" is right beside it in the site footer, and under Settings → Privacy when you are signed in; both of those links open the same "Count my visits" switch.

Turning Analytics off takes effect immediately. It deletes from your device every entry in the table below that lives on our own site, including those that only last for the current tab; the cookies Microsoft sets on its own domains follow Microsoft's schedule. Turning measurement off in "Measurement settings" also takes effect immediately. The layer in section 5.1 never stored anything on your device, so the only things written when you object are the record of your objection and Plausible's own "do not count this browser" switch (both in section 3).

NameTypePlatformPurposeExpiry
_gaCookie (Google Analytics 4, Google LLC)WebTells one browser from another so that visits and page views can be counted2 years
_ga_* (one per Google Analytics property)Cookie (Google Analytics 4)WebKeeps the state of your current visit2 years
_clckCookie (Microsoft Clarity, Microsoft Corporation)WebKeeps the Clarity visitor identifier for this site, so a return visit is attributed to the same pseudonymous visitor1 year
_clskCookie (Microsoft Clarity)WebJoins the page views of one visit into one session recording1 day
_cltkSession storage (Microsoft Clarity)WebAn entry Microsoft Clarity keeps in this tab while it records a visit. We have seen it on our own site; Microsoft does not describe it in its published list of Clarity cookies, so we name it hereTab session
CLID, MUID, ANONCHK, MR, SMCookies set by Microsoft on its own domains when Clarity loadsWebMicrosoft's own identifiers for its analytics and, on Microsoft's own sites, advertising; Clarity does not use them for advertising on Mana GroveSet and governed by Microsoft; see its Clarity cookie documentation
dc_telemetry_sessionLocal storageWeb + app (when the mobile application is available)Correlates search-quality events within a session24 hours
dc.funnelAnonIdLocal storageWebA random token that also records when it was created. It is used to avoid double-counting and, if you create an account on this browser, to link the arrivals and events recorded under it to that account (Privacy Policy section 4.10); rotated when you sign outUntil you sign out, turn Analytics off or object in "Measurement settings", or 13 months after it was created, whichever comes first
dc.attribution.first, dc.attribution.lastLocal storageWebRecords which link brought you here, so we know which of our own campaigns work. Where the link was one of our own advertisements, this includes the click identifier the advertising platform issued (see section 5.3 and Privacy Policy section 4.10)Until you sign out, turn Analytics off or object in "Measurement settings", or 13 months after the visit it records, whichever comes first
dc.acquisition.landingSession storageWebRemembers the page you arrived on in this visit, so a new account can be credited to the right page or campaignTab session
dc.homeBannerViewedSession storageWebRemembers that a promotional banner was shown in this tab, so the view is only counted onceTab session
dc.subscribeGoalFired.<checkout>Session storageWebRemembers that a completed subscription checkout was already counted in this tab, so it is only counted once. The name ends in the reference of that checkoutTab session
dc.purchaseGa4Fired.<checkout>Session storageWebRemembers that a completed subscription purchase was already reported to Google Analytics from this tab, so it is only reported once. The name ends in the reference of that checkoutTab session
dc.tour.bucketSession storageWebRecords which version of the welcome experience this browsing session was shown, so the two can be compared without counting you twiceTab session
Install and attribution identifiersAsyncStorageApp (when the mobile application is available)Records which link led to an app install (Google Play Install Referrer)Until cleared, when the mobile application is available

Every entry in the table above needs your Analytics permission: in Canada outside Quebec and in the United States outside California it is on by default with notice and you can turn it off; everywhere else it stays off until you turn Analytics on. None of them is part of the layer described in section 5.1.

Google Analytics and Microsoft Clarity are not cookieless. They set the cookies above so that a return visit is recognized as the same browser, and they receive technical data about your visit: the pages you viewed, your device and browser type, your approximate location and the actions you take on a page. Clarity also records how a page was used, so we can replay where it broke; anything typed into a form is masked before it is recorded. Under the Analytics category alone, Google Analytics is told through Google's consent signals that it may measure but not personalize advertising; the two are joined only if the Advertising category in section 6 is also on for you. Each provider processes what its tag collects under its own published privacy policy and the data-processing terms we have accepted with it; the Privacy Policy (sections 11 to 13 and 18) names them and their transfer safeguards.

We do not sell your data and we have no affiliate trackers. Every third-party tag is loaded by our own code. Google Analytics, Microsoft Clarity and the advertising tags never load before your choice has been read, except in Canada outside Quebec and the United States outside California, where they are on by default with notice (section 5.2), and each of them is removed when you withdraw. The Plausible script is the one exception: it belongs to the layer in section 5.1, loads before you answer, and is removed when you object in "Measurement settings". There is no Google Tag Manager, Segment or similar tag container on Mana Grove, and the advertising tags run only under the Advertising category in section 6.

Some events are recorded on our servers as a record of something you did with us, for example starting a checkout, activating a subscription, or your advertising-measurement setting as described in the Privacy Policy. Those are operational records of your transaction, not storage on your device, and they are covered by the Privacy Policy rather than by this consent banner. Some of them are also sent on to an advertising platform, and section 5.3 says which, when, and what we never send.

5.1 Measurement that runs without asking you

A small, separate layer of our own measurement runs before you answer, in every country. It is controlled entirely by "Measurement settings", not by the Analytics switch above, and it is a closed set of exactly three things:

  • the Plausible script, which sets no cookie and stores nothing on your device. We serve it, and receive its events, from our own domain (/js/script.js and /js/api/event) rather than directly from Plausible, so that measurement is not silently removed by a content blocker; the same aggregate data reaches Plausible either way, none of our cookies travel with it, and technical request data such as IP address is processed transiently to produce aggregate statistics and is not retained (per Plausible's published data policy);
  • a counter that records, per day and per campaign, how many visits arrived on one of our pages, with the country and the kind of device (phone, tablet, computer or other), and how many accounts were created, with the country only, storing nothing on your device; and
  • event counts that record that something happened here, such as a page opening or a button being used, with no identifier attached and nothing stored on your device for them.

Nothing else is part of this layer. Google Analytics, Microsoft Clarity and our own measurement entries in the table above (dc_telemetry_session, dc.funnelAnonId, dc.attribution.first, dc.attribution.last, dc.acquisition.landing, dc.homeBannerViewed, dc.subscribeGoalFired.<checkout>, dc.purchaseGa4Fired.<checkout>, dc.tour.bucket) all need your Analytics permission. They never run before you answer, except in Canada outside Quebec and the United States outside California, where they are on by default with notice (below). In the United Kingdom and the European Union, as everywhere else, they wait until you turn Analytics on.

Everywhere, including Quebec, the EEA, the United Kingdom, Switzerland and California, the three things above run on every visit, because none of them stores anything on your device; the only stored information they read from it is your own privacy choices, such as the record of your objection if you have made one, so that those choices are honoured, and, while you hold it, the free demo's session cookie (section 3), which our servers read only to limit how many event counts one demo browser can send. The counter keeps only daily totals, each event count is a record that something happened with no identifier attached, Plausible keeps only aggregate statistics, and none of them can be traced back to you.

Counts our servers make from a request. A few of the event counts are made on our servers from a request your browser sends anyway, rather than reported by your browser: the free demo's own steps (opening it, asking Grover, running a search), counted against the campaign the visit came from, and a click on one of our own short campaign links, recorded as it forwards you to our site (Privacy Policy section 4.10 says what that record holds, and the one place, Canada outside Quebec, where it holds more than a count). None of them stores or reads anything on your device. Because they are made on our servers from the request itself, an objection saved in your browser cannot reach them.

In Canada outside Quebec, where we can determine the province you are in, and in the United States outside California, where we can determine the state you are in and your browser sends no Global Privacy Control signal, everything in section 5 above (Google Analytics, Microsoft Clarity and our own measurement entries), everything in section 6 and the Functional category (section 4) also run by default, in addition to the three things above. The notice tells you so instead of asking, and you can turn any of it off at any time.

In the United Kingdom, nothing more than the three things above runs before you answer. Because none of them stores anything on your device, UK law does not require us to ask you first. We still hold them to the conditions UK law sets for statistics of this kind: we tell you clearly what we do, here and in the Privacy Policy; they are used only to count how Mana Grove is used, including which of our own pages and campaigns bring visitors, so that we can improve it, and never to show you advertising or to follow or profile anyone; what they produce is shared with nobody except Plausible, which compiles the script's statistics for us; and you have a simple way to object that costs you nothing: the "Measurement settings" link in the site footer, or the same link under Settings → Privacy when you are signed in; both open the "Count my visits" switch. Object, and the three things stop immediately for this browser, apart from the counts our servers make from a request (above). Google Analytics, Microsoft Clarity and our own measurement entries in the table above stay off until you turn Analytics on, exactly as everywhere else except Canada outside Quebec and the United States outside California.

In the European Union and the European Economic Area, the same three things run before you answer, on the narrower terms an exempt audience measurement has to meet: they measure only this site, they never follow you to another site, and they are never combined with anything else we or anyone else holds about you. Because none of the three stores anything on your device, there is nothing to expire; the counts we keep from them are deleted after 25 months at the latest, and Plausible keeps only aggregate statistics with no identifier. A click identifier is never attached to your account here without your express consent, given by accepting the Advertising category in the cookie notice when you arrived (Privacy Policy section 4.10). The same "Measurement settings" link turns the three things off, free, at any time.

In Quebec, wherever we cannot determine your province, in Switzerland, in California, wherever we cannot determine your US state or your region, in the United States whenever your browser sends a Global Privacy Control signal, and in every other country not named in this section, the same three things run, and nothing else does. Anything that could identify, locate or profile you stays off until you turn it on, and it is never pre-ticked.

Nothing in the Advertising category (section 6) or the Functional category (section 4) runs before you answer anywhere except Canada outside Quebec and the United States outside California, where both are on by default with notice; in the United States, a Global Privacy Control signal from your browser keeps them off.

5.2 Providers that only ever run with your permission

Four third-party services can run on Mana Grove. Everywhere except Canada outside Quebec and the United States outside California, none of them runs until you turn on the category it belongs to, and none of them is covered by anything in section 5.1.

ProviderCategoryWhere it can run before you answerEverywhere else
Google Analytics 4 (Google LLC)AnalyticsCanada outside Quebec, and the United States outside California without a Global Privacy Control signal; on by default with noticeOff until you turn Analytics on
Microsoft Clarity (Microsoft Corporation), including session recordingAnalyticsCanada outside Quebec, and the United States outside California without a Global Privacy Control signal; on by default with noticeOff until you turn Analytics on
Google Ads tag (Google LLC)AdvertisingCanada outside Quebec, and the United States outside California without a Global Privacy Control signal; on by default with noticeOff until you turn Advertising on
Reddit Pixel (Reddit, Inc.)AdvertisingCanada outside Quebec, and the United States outside California without a Global Privacy Control signal; on by default with noticeOff until you turn Advertising on

Microsoft Clarity is the one that records how a page was used, so that we can replay where it broke. That recording never runs anywhere except Canada outside Quebec and the United States outside California (where a Global Privacy Control signal also keeps it off) unless you have turned Analytics on, and anything typed into a form is masked before it is recorded, everywhere, in every mode.

5.3 What we send to an advertising platform from our servers

Separately from anything in your browser, our servers send a short message to the advertising platform that showed you our advertisement, so that the platform can count the result. We currently do this with Google Ads and with Reddit. The message contains:

  • the click identifier that platform itself issued when you clicked our advertisement, for example Google's gclid or Reddit's rdt_cid;
  • a one-way hashed version of your email address, which the platform can match against an account it already has and cannot turn back into your address;
  • what happened, at the level of "created an account" or "subscribed", and when.

It also carries a signal telling the platform that it may count this, and may not use it to personalize advertising. It never contains your name, your decks, your collection, your searches, your messages to Grover or anything you typed.

Whether we send it at all depends on where you are, and the Privacy Policy, section 18.1, sets the rule out in full. In Canada outside Quebec and in the United States outside California it is on by default, and you can turn it off at any time. In Quebec, in the EEA, in the United Kingdom, in Switzerland, in California, wherever we cannot determine your region or your US state, and in the United States whenever your browser sends a Global Privacy Control signal, we send nothing unless you have agreed, and there are two ways to agree, either of which is enough on its own: ticking the advertising-measurement choice we offer when you create your account, or accepting the Advertising category in the cookie notice or in "Cookie preferences". Neither is ever pre-ticked. If you accept Advertising before you have an account, or while you are signed out, that answer is copied onto your account when you next sign in. Wherever you are, you can stop these messages at any time: turn advertising measurement off under Settings → Privacy, or turn the Advertising category off. Either one records on your account that you said no (if you are signed out, when you next sign in), and a recorded no stops them whichever way you had agreed, including where they would otherwise be on by default. This is not retargeting and it is not how retargeting is built: section 6 is where that happens, and only for people whose Advertising category is on.

Other third-party services

Beyond the analytics and advertising providers named in sections 5 and 6, our pages load a small number of third-party services: Cloudflare Turnstile, an anti-abuse challenge used on a limited set of forms and, invisibly, on the free demo pages (strictly necessary; it loads from Cloudflare and may set its own challenge state), and our sign-in service (Firebase Authentication), whose software runs on every page (section 3 lists what it keeps in your browser) and contacts Google's authentication servers whenever it handles your sign-in, for example when you sign in, create an account or stay signed in. On the screens that show sign-in buttons, and nowhere else (the free demo's sign-up panel as it opens, and our sign-in and sign-up pages), it also loads Google's sign-in helper, a script from Google and a hidden sign-in frame that loads further Google scripts, before you choose how to sign in, so that the sign-in window can open as soon as you choose. Cloudflare, our network and security provider, also adds a small script, served from our own domain, to every page our site sends to your browser; it checks whether a visit comes from a person's browser or from automated software, and Cloudflare keeps the result in the cf_clearance cookie (section 3). Our fonts are self-hosted; no font provider receives your requests.

6. Advertising

These exist so that our own advertising on other platforms can be measured and, if you allow it, shown to people who have visited us. We show no advertising on Mana Grove itself, we never sell your data, and we have no affiliate trackers; this category is about Mana Grove's advertising elsewhere, nothing more.

Where you are decides whether we ask you first, independently of the Analytics and "Measurement settings" controls in section 5. In Canada outside Quebec, where we can determine the province you are in, and in the United States outside California, where we can determine the state you are in and your browser sends no Global Privacy Control signal, advertising is on by default: the notice tells you so rather than asking, and you can turn it off at any time. The quickest way is the notice's own Manage options button, where the Advertising switch is shown already on; switch it off and save your choices. Later, the "Cookie preferences" link in the site footer (or the "Your Privacy Choices" link beside the Privacy Policy) reopens the same choices and, if you are signed in, the Advertising switch in the Cookies & analytics card under Settings → Privacy turns it off with one click. In Quebec, wherever we cannot determine your province, your US state or your region, in the EEA, the United Kingdom, Switzerland and California, and in the United States whenever your browser sends a Global Privacy Control signal, advertising stays off until you turn it on, and it is never pre-ticked. Wherever you are, while this category is off no advertising tag loads, no advertising cookie is set, and nothing about your visit reaches an advertising platform from your browser. Turning it off removes from your device every cookie and storage entry in the table below that lives on our own site, stops the tags immediately, and ends any further advertising signal about you from us, including the server messages in section 5.3 once your answer reaches your account; the cookies Google sets on its own domain (IDE and test_cookie) follow Google's schedule, shown in the table. What a platform already collected stays subject to its own published data policy and to the choices its own advertising settings offer you.

One honest limit. When the Google advertising tag has run, Google also writes a copy of the click identifier into storage on its own domains, locked to Mana Grove, that our code is not permitted to read or delete. Turning the category off stops our tags, stops every signal we send and removes every copy we control. Those remaining entries expire on Google's own schedule, published as 90 days for this family, or sooner if you clear site data in your browser.

NameTypePlatformPurposeExpiry
_gcl_auCookie (Google Ads tag, Google LLC)WebLets Google Ads tell that a visit came from one of our ads and count an account or a subscription as a result90 days
_gcl_aw, _gcl_gsCookie (Google Ads tag)WebSet only when you arrive from one of our Google ads; carry the click identifier so the conversion can be attributed to that ad90 days
_gcl_lsLocal storage (Google Ads tag, Google LLC)WebGoogle's conversion linker keeps the details of a click on one of our Google ads here as well as in the _gcl_aw cookie, so that a resulting account or subscription can be attributed to that adNo expiry published by Google; we delete it when you turn Advertising off
IDE, test_cookieCookies set by Google on its own domain (doubleclick.net) when the advertising tag loadsWebGoogle's own advertising identifier and its check that cookies can be set; used to show and measure Mana Grove's advertising on Google's servicesIDE: 13 months in the EEA, Switzerland and the UK, 24 months elsewhere; test_cookie: 15 minutes
_rdt_uuidCookie (Reddit Pixel, Reddit, Inc.)WebLets Reddit tell that a visit came from one of our ads, count an account or a subscription as a result, and include this browser in an audience for Mana Grove's advertising on Reddit90 days
dc.subscribeConversionFired.<checkout>Session storageWebRemembers that a completed subscription was already reported to Google Ads and Reddit from this tab, so it is only reported once. The name ends in the reference of that checkoutTab session

What these tags send is a record that this browser visited Mana Grove and, at a coarse level, what it did here (for example, viewed the pricing page or created an account), together with the platform's own identifier. They do not send your decks, your collection, your messages to Grover or anything you typed, and they never give the platform access to your account.

If you have an account, one more rule applies: accounts created before September 13, 2026 remain on version 1.3 of our Terms of Service until they accept version 2.0 or later, and until then they are excluded from retargeting. Every signal we send about such an account carries personalization denied (Google's ad_personalization and ad_user_data set to denied), and the account is left out of any audience we build. The Privacy Policy, section 18, sets this out in full.

7. Crash reporting

Mana Grove reports application crashes and errors so we can fix them. The crash reporter stores nothing on your device except the record of your choice (mg_crash_opt_out), and personal data is stripped before a report is sent. Because there is no other storage on your device and the purpose is keeping the service working and secure, this is not one of the consent categories above.

You can still turn it off: Settings → Privacy → Share crash reports (web and app).

8. Mobile app specifics

When our mobile apps are available, they do not use cookies at all. They use AsyncStorage, the app equivalent, for the same purposes listed above and under the same categories.

For installs, we read Google's own Play Install Referrer so we know which of our own links led to an install. That information goes only to Mana Grove.

There is no Apple App Tracking Transparency prompt, because we do not do what Apple defines as tracking: we read no advertising identifier (IDFA/AAID), ship no advertising SDKs, and share no data with third parties for advertising or data brokering.

9. Retention and the consent record

If you are not signed in, the record of your choices stays on your device only. We deliberately do not create a server-side record for anonymous visitors: minting an identifier just to log that a stranger said "no" would create exactly the tracking this banner exists to prevent. This also applies to an objection made in "Measurement settings": whether or not you are signed in, that objection is kept on your device only, for the same reason.

What we do keep, for everyone, is a count. When you answer the cookie notice, your browser sends one message that carries no identifier, and our server adds one to a daily total for that kind of answer: whether you accepted everything, refused everything, saved your own choices, or let the notice close by itself once you started using the page; whether the notice told you or asked you; the language it was in; and a broad region worked out from your connection (Canada, the United States, the United Kingdom, France, the rest of the European Union and the EEA, Switzerland, elsewhere, or unknown). Nothing is stored on your device for it, nothing about you is kept beside it, and the totals are deleted after 25 months at the latest. We count every answer, a refusal included, so that we can see whether the notice is clear and working.

If you are signed in, each choice you make in "Cookie preferences" is also appended to an audit trail on your account, so we can show what was agreed and when. That trail records the notice version, the categories, the action, the timestamp and whether it came from web or app. We keep it for as long as the account exists and for 24 months after it is closed, because a record of consent that is deleted with the account cannot answer the one question it exists to answer. Your answer to the Advertising category also updates your account's advertising-measurement setting, as section 5.3 explains: accepting it where we ask you first counts as agreeing, and turning it off, wherever you are, records that you said no.

We deliberately do not log your IP address or user agent alongside a consent record (separate from ordinary, short-lived infrastructure request logs, which are covered by the log-retention section of the Privacy Policy).

10. Changes to this policy

If the categories change, a new purpose joins an existing category, or the wording changes materially, we increase the notice version and ask you to choose again wherever the change affects a choice you made. Minor clarifications and typo fixes do not trigger a new prompt.

This policy is published in English and French. Both versions are intended to convey the same information; questions of interpretation are subject to applicable law.

Questions about this policy? Write to privacy@themanagrove.com, or see the Privacy Policy for the other ways to reach us.

Explore Mana Grove