ملفات تعريف الارتباط والتخزين المحلي
أي ملفات تعريف الارتباط ومفاتيح التخزين في المتصفح يستخدمها الموقع بالضبط، ولماذا، وكيف تتحكم بها.
بلغة بسيطة
- نوعان من ملفات تعريف الارتباط: zak-lang، يُكتب فقط حين تضغط زر EN | ع ويحفظ «en» أو «ar» ولا شيء غيرهما، وملفات Google Analytics مجهولة الهوية (في الاتحاد الأوروبي والمملكة المتحدة وسويسرا لا تُكتب حتى توافق).
- يُحفظ تقدّمك وأيام المتابعة والمخطِّط ومسوّدات المختبرات في متصفحك ليعمل كل شيء دون إنترنت، ولا يُرسل إلينا شيء إلا إن سجّلت الدخول.
- يمكنك تشغيل التحليلات أو إطفاؤها في أي وقت من «إعدادات ملفات تعريف الارتباط» أسفل الصفحة؛ وإشارة Global Privacy Control تطفئها تلقائيًا.
- مسح بيانات الموقع في متصفحك يمحو كل شيء، ومنه تقدّمك واختيار اللغة.
يساعدك الملخّص على القراءة؛ أما النص الكامل أدناه، بالإنجليزية، فهو المعتمد.
Cookies & Local Storage · v1.1
1. What cookies and local storage are
A cookie is a small text file a website asks your browser to keep and send back with later requests; it can be read by the site (or a third party) on every visit. Local storage, session storage and IndexedDB are similar browser features, but their contents are never sent to a server automatically — a page can only read them while it is open in your browser. The site uses local storage heavily (that is how it remembers you without an account), IndexedDB for the larger Smart Notes documents, and cookies only for analytics, which you can turn off.
2. Local and session storage we use (no consent needed — strictly necessary for the feature you use)
| Key | Type | Set by | What it holds | Lifetime |
|---|---|---|---|---|
theme | local | Theme switcher | “light”, “dark” or “system” | Until cleared |
zak-consent | local | Cookie banner | Your analytics choice (allowed / declined) and when you made it — or, outside the countries where a banner is required, a note that none was needed, so we do not look your country up again | 12 months, then the banner (or the lookup) happens again |
cswithzak-progress | local | My Progress dashboard | The display name you typed, your chosen level (O Level / AS / A2 / Full A Level — one setting used by every page and by AskZ), XP (worked out on this device by the same rules as the server, plus a random device id and the XP rules' own record of what has earned XP), daily activity counts for XP, level, streak, last-active date, completed topics, bookmarks, videos you watched or marked as watched, quiz results, keys of questions seen/missed, exam-question attempts, flashcards reviewed | Until cleared |
cswithzak-account | local | Account (/account) | Only if you sign in: your sign-in token, email address and when this browser last synced. With it the progress above and your past-paper work (zak-paper-work) are sent to and fetched from our server — see the Privacy Policy, section 3l | Until you sign out or clear it (the token itself expires after 180 days) |
zak-flashcards-memory | local | Flashcards | Which cards you marked as weak | Until cleared |
zak-paper-set | local | Paper Builder (teachers) | The ids of questions you have set to a class on a class link or a strict exam, with the day, so a new draw avoids them | 90 days |
zak-today | local | The “Today” card (dashboard, and the home page once you have used the site) | Today's date, the topic and syllabus bullet picked for today and the tasks you ticked by hand, so the plan stays the same all day. It is worked out on your device from your progress and is not sent anywhere | Replaced the next day; until cleared |
zak-route | local | The study route (/learn/<level>/route) | For each level: the pace you chose, the day you started and the sections you chose to skip. Your checks and tests are saved with your progress, not here. Never sent anywhere | Until cleared |
zak-traps | local | Examiner's Traps (/tools/examiner-traps) and the “Today” card | Which traps you answered wrongly (until you get them right), your best round score per level, your longest streak and the date of your last round. Kept on your device only; a shared score card carries just the numbers | Until cleared |
zak-daily-question | local | “Today's question” in the Today card | The days you answered today's question (for your streak, up to 400) and your last few results: day, level, question reference and mark. Your answer itself is kept with your paper work as on the past-papers tool. Only the mark (with the day, level and question reference) is sent, anonymously, when you press Done — see the Privacy Policy, section 3c | Until cleared |
zak-compare | local | “How am I doing?” (dashboard, home page, study route) | Whether comparison is switched off on this browser, and the week, day and ranges last sent, so they go at most once a day and only when they changed. What is sent is described in the Privacy Policy, section 3c | Until cleared |
zak-exam-device | local | Strict exams (/exam) | A random id for this browser, so a strict exam stays on one device; the AskZ server keeps only a one-way hash of it with your attempt (Privacy §3l) | Until cleared |
zak-class-invite | local | “Classes with ZAK” card (course and topic pages, timed-sitting results, the dashboard, past-paper and command-word pages) | The time until which you asked not to see it (Not now hides it for 30 days). Nothing about you is in it and nothing is sent anywhere — the card's WhatsApp button only opens WhatsApp with a message you choose to send | 30 days, or until cleared |
zak-book-basket | local | The books pages (/books…) | The books and sets in your basket and how many of each. Sent to the AskZ server only when you place the order (Privacy §3o) | Until you order or clear it |
zak-reader | local | The ebook reader (/books/…/read) | Your reading settings: text size, page colour, typeface, spacing, line length, reading support and whether website links show in the chapter, and your listening settings (device or AskZ voice, which device voice, speed, how code is read, follow-along, word highlight, carry on to the next chapter). Not sent anywhere | Until cleared |
zak-reader-notes:<book> | local | The ebook reader | Your highlights, notes, bookmarks, ticks, self-marks and where you stopped in that book. For a book you own and are signed in to, a copy is kept on the AskZ server so your other devices show it (Privacy §3o) | Until cleared |
zak-games | local | CS Games (/games) | Your random player id, generated nickname, sound and vibration settings, personal bests, saved puzzles and runs (today's CodleZ, cleared levels, a tycoon or spire save), your recent games, the topics you ticked under What I've studied, and today's game XP. The id and nickname are sent to our server only when you play online or submit a leaderboard score — see the Privacy Policy, section 3m | Until cleared |
zak-editor | local | Code editors in the labs | Your editor text size and word-wrap choice | Until cleared |
zak-topic-ui | local | Topic pages | Which sections of a topic page you opened and whether you opened “More for this topic”, so the page looks the way you left it. Stays on your device | Until cleared |
zak-bank-ui | local | Past-paper questions | Whether the Filters panel is open. Stays on your device | Until cleared |
zak-search-recent | local | Site search (⌘K) | The last six results you opened, shown as “Recent” when you open the search again | Until cleared |
zak-help | local | Help (the ? button) and the site tour | Whether you have answered the one-time “New here? Take the tour” prompt and the date you last took the tour, so the prompt is not shown again | Until cleared |
zak-ink-pen | local | Past-paper questions (paper workspace) | Whether a pen or stylus (such as an Apple Pencil) has ever been used to write on a paper in this browser, and whether you turned “Draw with finger too” on — so a resting palm or finger does not leave stray marks once you write with a pen. Nothing about this leaves your browser | Until cleared |
zak-exam-zoom | local | Past-paper question bank | The text size you chose for question and mark-scheme text, so it stays set next time | Until cleared |
zak-assignments, zak-assignment-work:… | local | ZAK Assignments | The assignments you have opened (so they work offline), and a copy of the answers you typed and the marks you gave yourself for the Solutions view and the PDF (the paper you answer on is kept in zak-paper-work) | Until cleared |
zak-planner-v2 | local | Exam Planner | Your chosen Cambridge location/zone, series, subject and revision-plan settings | Until cleared |
zak-uni | local | University Planner and admission deadlines | The A Level subjects, predicted grades, countries and degree types you picked, and the grades you typed into the IBCC calculator. It stays in your browser; only the countries you picked are copied into your progress and synced when you are signed in (Privacy §3l) | Until cleared |
zak-notes (IndexedDB database), zak-notes:… (local-storage fallback) | IndexedDB / local | AskZ Smart Notes | The topics' notes you have opened, so they load instantly and work offline | Until cleared |
zak-notes-mastery | local | AskZ Smart Notes | The sections you ticked as mastered | Until cleared |
zak-paper-work (IndexedDB database) | IndexedDB | Past-paper questions (paper workspace), and AskZ-written, model and assignment questions answered on a typeset paper | What you typed, ticked, drew and circled on each question, circuits and K-map loops you built, your marks and any AskZ marking — one record per question, plus a separate copy for a question inside a built paper or timed sitting — kept on this device; if you sign in, a copy is synced to your account, and a small sync store remembers which questions still need sending | Until you clear the question or your browser data (signing out does not remove it) |
zak-playground, zak-playground-py, zak-playground-java, zak-playground-vb | local | Pseudocode / Python / Java / VB.NET Playground | The last program you typed in each language, so it survives a refresh | Until cleared |
zak-sql, zak-asm, zak-prolog, zak-prolog-query | local | SQL Lab, Assembler, Declarative Lab | The last SQL script, assembly program, Prolog program and query you typed | Until cleared |
zak-logic-circuit, zak-logic-expr | local | Logic Gates Lab | The circuit you last drew and the expression you last typed | Until cleared |
zak-boolean, zak-flowchart, zak-translator, zak-ds, zak-dbdesign, zak-oop:… | local | Boolean Algebra & K-map Lab, Flowchart Studio, Translator, Data Structures Playground, Database Designer, OOP Designer | The expression, flowchart, pseudocode, operations, table design or class description you last typed in that lab, so it survives a refresh | Until cleared |
zak-task:…, zak-task-lang | local | Programming Tasks, Python Paths | Your code for each task and Python Path step (per language) and whether you last chose pseudocode or Python | Until cleared |
zak-visit | session | Site visits counter | A “1” meaning this browser session has already been counted as a visit, so the footer counter does not count you again on every page — see the Privacy Policy, section 3c | Until you close the tab |
zak-askz | session | AskZ | The current conversation (messages, random conversation ID, whether the drawer is open, unsent draft, the photos/files you added — their name, a small preview picture and the server's id for their text — and today's allowance) | Until you close the tab |
zak-askz-history | local | AskZ | Your saved AskZ chats (messages, title, dates, pins, the conversation ID) and your AskZ settings (save history on/off, auto-delete period, text size S–XL, Enter-to-send, sources and suggestions, voice language); added photos/files are saved by name only — never uploaded | Until you delete them, or the auto-delete period you chose |
None of these values is transmitted to us by the browser, with four deliberate exceptions: zak-visit is read only to decide whether a page tick counts as a new visit (the tick itself carries no data about you), the random AskZ conversation ID is sent with each message you choose to send so the server can find the thread, the player id and nickname in zak-games are sent when you play a game online or submit a leaderboard score, and, if you have signed in, cswithzak-progress and the work in zak-paper-work are synced to your account using the token in cswithzak-account (which is also sent when you ask AskZ to mark answers, so that marking counts against your own daily share).
4. Your choices
- Cookie banner: if you are in the EU/EEA, the UK or Switzerland, a banner asks you on your first visit; analytics stays off until you press Allow analytics, and No thanks is remembered so we do not keep asking. Elsewhere no banner appears (your local law does not require one) and analytics runs from your first page view until you turn it off from the footer. Which applies is decided from the country Cloudflare attaches to your request (used once, never stored) or, failing that, your browser’s time zone — and if we cannot tell, we ask. We record your choice in
zak-consent. - Change your mind: click Cookie settings in the footer at any time.
- Language: the EN / ع switch in the top bar changes the language and remembers it in the
zak-langcookie. Without that cookie, a first visit to the home page from an Arabic-speaking country (worked out from the country Cloudflare attaches to the request, used once and never stored) or from a browser set to Arabic opens the Arabic home page; the switch changes it back. Clearing cookies forgets the choice. - Browser controls: every browser lets you block or delete cookies and site data (usually under Settings → Privacy). Note that deleting site data for cswithzak.com also deletes your progress, planner, lab drafts and saved notes and assignments, because they live there.
- Google opt-out: tools.google.com/dlpage/gaoptout blocks Google Analytics on every site.
- Do Not Track / Global Privacy Control: if your browser sends a Global Privacy Control signal we treat it as “Decline” and never load analytics, regardless of the banner.
5. Changes
If we add a storage key or a cookie, we will list it here and update the date at the top. Removing one needs no notice.


