Cookie policy
Version 1. Last updated: August 2026.
This English text is a translation provided for information only. The Spanish version of this document is the original and prevails in the event of any discrepancy.
1. What cookies are
Cookies are small files that a website stores in your browser. Besides cookies, Cannasys Maps, available at maps.cannasys.co (hereinafter, “the Service”), uses browser storage — localStorage and sessionStorage — whose data stays only on your device. This policy describes, in accordance with the GDPR and the LSSI, which cookies and storage entries the Service uses, what they are for and how you can manage them.
2. Categories and your choice
The notice you see when you arrive has two categories, and they are the same ones that appear in the tables below:
- Necessary — always on and cannot be disabled: the session and signing in, access security, age verification, the record of your own decision about cookies and the entries that remember what you choose in the interface (city, language, filters). They cannot be switched off because without them the Service cannot do what you ask it to.
- Analytics — off by default: aggregated visit statistics. The analytics script is not downloaded and no request is sent to its servers until you enable them; refusing is as easy as accepting, and both options are in the same button of the notice.
You can change your mind at any time and as often as you like — withdrawing consent is as simple as giving it:
Your decision is stored in your own browser (the cannasysmaps.cookieConsent key), together with the date and the version of the notice. If you clear the site data or come from another browser, we will ask you again.
3. The Service's own cookies
The Service itself only sets necessary cookies: without them it is not possible to sign in, verify your age or use the personal area. Analytics cookies are set by third-party tools and only if you accept them — see section 5:
| Name | Purpose | Category | Duration |
|---|---|---|---|
cm_access | Signing in: short-lived access token for your account (httpOnly, inaccessible to scripts) | Necessary | 15 minutes |
cm_refresh | Signing in: token to renew the session without identifying yourself again (httpOnly, inaccessible to scripts) | Necessary | 30 days |
cm_device | Trusted device for two-step verification: avoids asking you for a code by email every time you sign in from this browser (httpOnly) | Necessary | 30 days |
cm_age_ok | Confirmation that you are of age: without it the verification screen appears again on every visit | Necessary | 365 days |
cm_g_state, cm_g_verifier, cm_g_redirect | Only while signing in with Google: they protect that exchange against impersonation (CSRF and PKCE) and remember which page to return to. They are deleted when it ends (httpOnly) | Necessary | 10 minutes |
NEXT_LOCALE | The language you prefer to view the site in, so you do not have to choose it again on your next visit | Necessary · preferences | 365 days |
Session cookies (cm_access, cm_refresh, cm_device) are set only when you sign in and are removed when you sign out. If you browse as a guest, without signing in, they are not set. The three cookies for signing in with Google exist only while that sign-in lasts.
4. Browser storage (localStorage and sessionStorage)
This is the complete list of entries the Service stores in browser storage. All of them exist to make your life easier: they remember your choices and the state of the interface. This data stays on your device and, by itself, is not sent to our servers.
| Name | Purpose | Category | Duration |
|---|---|---|---|
cannasysmaps.cookieConsent (localStorage) | Your decision about cookies: which categories you have accepted, the version of the notice and the date. Without this entry we would have to ask you on every visit | Necessary | Until you delete it |
cannasysmaps.city (localStorage) | The city you choose in the site header, so you do not have to choose it again on your next visit | Necessary · preferences | Until you delete it |
cannasysmaps.geoAsked (localStorage) | Record that we have already offered to detect your city by location, so as not to repeat the offer | Necessary · preferences | Until you delete it |
cannasysmaps.searchHistory (localStorage) | Search history for guests: stored only on your device and not sent to the server | Necessary · preferences | Until you delete it |
cannasysmaps.pwaInstallDismissed (localStorage) | Record that you have dismissed the suggestion to install the app, so as not to show it again | Necessary · preferences | Until you delete it |
cannasysmaps.proExpiredAck.… (localStorage) | Mark in the club panel that the notice about the end of the PRO subscription has been read (the key name includes the club identifier and the subscription end date) | Necessary · preferences | Until you delete it |
cannasysmaps.subscriptionNoticeAck.… (localStorage) | Mark in the club panel that the pop-up notice about the PRO subscription being about to end has been dismissed, so as not to show it again for the same notice (the key name includes the club identifier) | Necessary · preferences | Until you delete it |
cannasysmaps.geo (sessionStorage) | The coordinates your browser gave us after you authorised location, kept for the current tab so as not to request GPS again on every page with a map | Necessary · preferences | Until you close the tab (end of session) |
cannasysmaps.viewed.… (sessionStorage) | Mark that you have already seen a club's page, so that the view counter does not count repeated openings within the same session (the key name includes the address of the club's page) | Necessary · preferences | Until you close the tab (end of session) |
cannasysmaps.requestDraft.… (sessionStorage) | Draft of a club membership request: the details you have already typed into the form (consent checkboxes excluded), so they are not lost if you close the form and open it again in the same tab (the key name includes the club address) | Necessary · preferences | Until you close the tab (end of session) |
cannasysmaps:assistant:sessionId (sessionStorage) | Identifier of the conversation with the AI assistant: the server uses it to link the messages of the same dialogue | Necessary | Until you close the tab (end of session) |
cannasysmaps:assistant:history (sessionStorage) | The conversation with the AI assistant (your messages and the replies) within the current tab, so that the dialogue is not lost while you browse the site | Necessary · preferences | Until you close the tab (end of session) |
catalog-filters-open (sessionStorage) | Whether the expanded filter panel of the directory is open, so that it does not close when you move from one page of results to another | Necessary · preferences | Until you close the tab (end of session) |
One clarification about the AI assistant: sessionStorage keeps a copy of the conversation, so that it is not lost while you browse the site, and the conversation identifier. The messages themselves, once sent, go to our server and are transmitted to an external AI provider to generate the reply — we explain this in the Privacy policy. Avoid including unnecessary personal data in the chat.
The search history of people with an account is stored in their account and is described in the Privacy policy.
5. Third-party tools: analytics and maps
To obtain aggregated visit statistics we use Google Analytics 4, from Google Ireland Limited (Gordon House, Barrow Street, Dublin 4, Ireland). Its script is downloaded only after you accept the “Analytics” category: if you refuse it, or if you have not yet answered the notice, your browser never contacts Google's servers and none of the cookies below are set. If you withdraw consent, we stop loading it from that moment; to delete cookies it may already have left, use your browser settings (section 6).
| Name | Purpose | Category | Duration |
|---|---|---|---|
_ga | Random browser identifier that makes it possible to tell repeat visits from new ones. It does not contain your name or your email address | Analytics | 2 years |
_ga_<property identifier> | State of the measurement session: when it started and how many pages you have viewed in it. The name ends with the identifier of our Google Analytics property | Analytics | 2 years |
These cookies are stored in your browser under our domain, but the one setting and reading them is Google's script; their duration is set by Google and we cannot change it. We do not use the advertising features or Google Ads signals, and we do not combine this data with your Service account. Part of the processing may take place outside the European Economic Area, in the United States, with the safeguards we explain in the Privacy policy.
On pages with a map (the directory map, the home page map, the city selector), your browser loads the map component directly from its provider's servers, which may set its own cookies or other entries; their composition and duration are determined by that provider. The Service neither reads nor uses those entries. The map is part of the content you asked to see, which is why it does not depend on the “Analytics” category.
The Service does not use advertising cookies or third-party ad network cookies, and does not build profiles for advertising purposes.
6. How to manage cookies
- analytics is switched on and off from the “Change my preferences” button in section 2 — there is no need to touch your browser settings;
- you can delete saved cookies and site data, and also prevent them from being stored, in your browser settings (the “Privacy” and “Cookies and site data” sections);
- blocking the necessary cookies (cm_access, cm_refresh, cm_device, cm_age_ok) will make it impossible to sign in, pass age verification and use the personal area;
- localStorage and sessionStorage entries are deleted together with “site data” in your browser settings; sessionStorage is emptied automatically when you close the tab. Note that this also deletes the record of your decision about cookies, and we will ask you again.
7. Changes to this policy
The version of this policy in force is always available at /cookies. If the set of cookies we use changes, we will publish the new version here with its effective date; if the change affects the categories that require your permission, we will ask you again. For any question about this policy, write to us at [email protected]. Questions about how the Service works are handled by support — you will find its address and other channels on the “Contact” page.