Optional cookies stay off until you choose. You can change your choice any time with the “Cookie settings” link at the bottom of every page.
What cookies and local storage are
A cookie is a small text file that a website asks your browser to save. The next time your browser loads a page from that site, it sends the cookie back, so the site can recognize a returning browser. Local storage works in a similar way, but the data stays in your browser and is not sent with each page request. This site uses both, and this page lists every one of them.
Some storage is necessary for the site to do what you ask, such as remembering your cookie choice. Everything else is optional and needs your consent first. That is the rule in the EU ePrivacy rules and in Finland’s Act on Electronic Communications Services (917/2014), section 205.
What this site uses
The site uses three kinds of storage:
- Necessary. Local storage keys on this site.
tew-consentremembers your analytics cookie choice, its version and its date, so my banner does not appear on every page.tew-progress-v1keeps your free School progress on your device. Neither is ever sent to me. These cannot be switched off, because the site cannot remember your choice without them. If you use an account, Firebase also stores sign-in data as listed in the table. - Analytics (optional). Google Analytics 4 sets the
_gacookie and a_ga_cookie with the property’s ID, which help me count visits and see which guides are popular. They are set only after you accept analytics in my cookie banner. Google signals stay off in Analytics. - Marketing / advertising (optional). Google AdSense may set advertising cookies (for example on
.doubleclick.netand related Google domains) so Google and its partners can serve ads, including ads based on prior visits to this site or other sites. Those cookies are used only after you agree in Google’s own consent message. You can change personalised-ad settings at adssettings.google.com and learn more at www.aboutads.info and Google’s partner sites page.
I do not use social media trackers or other marketing pixels. Fonts are hosted on this site.
Some links to Amazon are affiliate links. They are ordinary links, and this site sets no cookie for them. After you click, Amazon may set its own cookies on amazon.com under its own cookie notice. The affiliate disclosure explains more.
The table below is generated from the same list that the cookie banner uses, so the two always match.
How consent works on this site
The site uses Google Consent Mode v2. Before you choose, every Google consent signal (analytics_storage, ad_storage, ad_user_data, ad_personalization) is set to “denied”. The Google Analytics script is not downloaded until you accept analytics in my cookie banner. The AdSense loader is present so Google can show its certified consent message where required; advertising cookies stay off until that message (or your ads settings) grants them.
- My banner asks only about analytics. “Accept all” / “Reject all” / “Save my choices” there apply to Analytics only.
- Google’s consent message (Funding Choices / Privacy & messaging in AdSense) asks about advertising cookies for visitors who need that choice.
I do not record a rejection as an event. Your analytics choice is saved with a version number. If I add a new analytics cookie or change that banner, the version changes and my banner asks you again. It also asks again after 12 months.
How to change your choice
Use the “Cookie settings” link at the bottom of any page, or the button at the end of this page, to switch Analytics on or off. When you switch Analytics off, the site deletes the _ga and _ga_ cookies it can reach and tells Google Analytics to stop.
For advertising cookies and personalised ads, use Google’s consent message again when it is offered, or visit adssettings.google.com.
Browser controls
You can also manage cookies in your browser. Most browsers let you see and delete cookies and site data, block third-party cookies, or clear everything when you close the browser. Look for “Cookies and site data” or “Privacy” in your browser’s settings. If you clear site data for this site, your cookie choice and your School progress are deleted too, so the banner will appear again and the School will start fresh. You can export your progress first on the My learning page.
Changes to this policy
If I add or remove a cookie, a storage key or a service, I update the table and this page first, change the consent version and ask for your choice again. The version and effective date are shown at the top of this page.
More about how I handle personal data is in the privacy policy.
| Name | Provider | Category | Purpose | Duration |
|---|---|---|---|---|
tew-consent (localStorage)
| esotericwitch.com | necessary | Remembers your cookie choice, its version and date, so the banner does not show on every page. | Until you change it, clear your browser, or 12 months pass (then I ask again) |
tew-progress-v1 (localStorage)
| esotericwitch.com | necessary | Keeps your free School progress (finished lessons) on your device. If you sign in, the same lessons are also saved to your account. | Until you reset it or clear your browser |
tew-account (localStorage)
| esotericwitch.com | necessary | Remembers that this browser has signed in to an account, so your progress and comments load without an extra click. Holds no personal data. | Until you sign out or delete your account |
tew-signin-email (localStorage)
| esotericwitch.com | necessary | Holds the email address you typed while you wait for the sign-in link, so you do not have to type it again. Set only when you ask for a link. | Removed when you finish signing in |
tew-progress-hint-shown (sessionStorage)
| esotericwitch.com | necessary | Shows the sign-in tip after Mark as done only once per visit. | Until you close the tab |
firebaseLocalStorageDb (IndexedDB)
| Google Firebase Authentication (for esotericwitch.com) | necessary | Keeps you signed in to your account. Set only when you sign in. | Until you sign out or delete your account |
firebase-heartbeat-database (IndexedDB)
| Google Firebase (for esotericwitch.com) | necessary | Technical record the Firebase SDK keeps for the sign-in service. Set only when you use your account. | Up to 30 days |
tew-admin-seen (localStorage)
| esotericwitch.com | necessary | Admin only: remembers when I last opened the moderation page, to mark new comments. | Until cleared |
_GRECAPTCHA (localStorage)
| Google reCAPTCHA Enterprise (Firebase App Check) | necessary | Protects sign-in and comments from bots. Set only when you use your account. | Up to 6 months |
_ga (cookie)
| Google (Google Analytics 4) | analytics | Tells visits apart so I can count visitors and popular pages. Set only after you accept analytics. | About 13 months |
_ga_<container-id> (cookie)
| Google (Google Analytics 4) | analytics | Keeps the session state for Google Analytics 4. Set only after you accept analytics. | About 13 months |
IDE / DSID / and related Google advertising cookies (cookie)
| Google (AdSense / DoubleClick) | marketing | Help Google and its partners serve ads on this site, including ads based on prior visits to this site or other sites. Set only after you agree in Google's consent message. | Up to about 13 months, depending on the cookie (see Google's advertising cookie policy) |
__gads / __gpi (and related) (cookie)
| Google (AdSense) | marketing | Used by Google AdSense to measure ad interaction and prevent fraudulent ad activity. Set only after advertising consent where required. | Up to about 13 months |
FCCDCF / FCNEC (and related Funding Choices cookies) (cookie)
| Google (Funding Choices) | marketing | Remembers your choice in Google's advertising consent message so it is not shown on every page. | Up to about 13 months |