Privacy
What we collect, and what we don't
Last updated: 2026-10-18
PurrLearn is a free-to-use learning site with an optional paid tier. This page describes what actually happens in the code, not what a template says should happen. If a line here stops matching the product, treat it as a bug and tell us.
You can use the site without an account
Practice tests, articles, HSK word lists and the free course levels all work without signing in. If you never create an account, we hold no name, no email and no password for you.
If you create an account
We store only what is needed to sign you in and keep your progress:
- Your email address, and a display name if you provide one.
- For email sign-up: a hashed password. We never store the password itself and cannot read it.
- For Google or GitHub sign-in: the account identifier and tokens the provider returns, so we can recognise you next time. We do not receive your provider password.
- A session record, so you stay signed in between visits.
- Your learning progress: which lessons you completed, quiz and test scores, and your streak.
If you buy PurrLearn Plus
Payments are handled by third-party merchants of record. Your card number never reaches our servers and we cannot see it.
- Card payments are processed by Creem.io. WeChat Pay is processed by Waffo Pancake.
- What we store on our side is the result: which plan you bought, when it starts and expires, and whether it was refunded. This is what unlocks paid content for your account.
- Those payment providers handle your payment details under their own privacy policies.
Analytics: what we measure and how
Two systems run in parallel, and we would rather describe both precisely than hide behind the word 'analytics'.
- Our own measurement uses the existing random browser identifier in localStorage and a first-party cookie used for sign-in/payment conversion attribution. It is not a 30-minute session: we reconstruct visits from recorded activity. We store the page path, referring site origin (without query or fragment), event and receipt identifiers, timestamp, and an optional ?f= campaign tag. Quiz and font challenges use a random per-run identifier and summary fields such as answered count, score, submission/timeout reason, lesson step and export format. Analytics does not collect answer text, cover text or email. These first-party records stay in our database; existing sign-in/payment conversion attribution can associate the browser identifier with a conversion.
- Google Analytics 4 (G-NCPXBP25NZ) provides audience and retention reports and receives public quiz/challenge names and summary counts. We do not forward our browser, run or event identifiers, campaign tags, answer text or cover text to GA. It runs with Google Consent Mode v2. For visitors whose browser reports a European timezone, storage consent defaults to denied, which means GA receives cookieless pings only. Elsewhere it defaults to granted.
- Being straight about a gap: we do not yet show a consent banner, so European visitors are not asked to opt in — they are defaulted to denied instead. If you want your first-party analytics record removed, email us and we will delete it.
We only email you if you asked us to.
- If you subscribe, we store your email address, your language, and where you subscribed from.
- Every email has an unsubscribe link, and opt-outs are recorded so you stop hearing from us.
Links to other sites
- Some English article pages carry Amazon affiliate links, marked as such on the page. If you click one, Amazon sets its own cookies under its own privacy policy. If you do not click, nothing is shared with Amazon.
- We do not run any advertising network on this site. There is no ad code in the pages.
What we do not do
- We do not sell or rent your data to anyone.
- We do not run ads or ad-network trackers.
- We do not track you across other websites.
- We do not use your data to determine creditworthiness or for lending.
- We do not collect your location, your browsing history on other sites, your keystrokes, or the contents of your personal communications.
Your choices
- Clearing your browser's site data for purrlearn.com removes the local session identifier and any saved preferences.
- You can ask us to delete your account and the progress attached to it. Write to the address below and we will do it.
- Blocking Google Analytics with a browser extension does not affect your ability to use the site.
The PurrLearn Daily browser extension
Our Chrome extension is a separate, stricter case, and worth stating plainly:
- It ships with its questions bundled inside the package and makes no network requests at all.
- It stores only, in your own browser: today's question, whether you answered it, your streak, and your language choice. Nothing is transmitted anywhere and we never see it.
Contact
Questions about this policy, or a request to delete your data: qi673311548@gmail.com. We read it and we will answer.