Privacy Policy: Killer Sudoku: Number Puzzle
Last updated: 22 September 2026
This Privacy Policy describes how Killer Sudoku: Number Puzzle ("the app", "we", "us") handles information. It is a single-player number puzzle. It has no accounts, no sign-in, no messaging and no online play.
1. Summary
- Your saved game, your settings and your best scores are stored on your device only.
- The app sends anonymous gameplay counts to a server we run, see section 3. It is a short, fixed list of events and a random identifier the app makes up for itself.
- We hold no personal data: no name, no email, no account, no location, no advertising ID, nothing you have typed. We have no way to work out who you are.
- The app includes the Google AdMob advertising SDK. It shows a banner at the foot of the puzzle screen, a short full-screen advert between puzzles, and the rewarded adverts you choose to watch, see section 4.
- The app offers in-app purchases, paid for through Google Play, see section 3b. We never see your card, your name or your address, and no price is ever recorded in our own events.
- We do not sell data, and there is nothing here that could be sold.
2. What is stored on your device
The app saves the following to your device's local storage, and nowhere else:
- the puzzle you are on: its difficulty and number, the digits and pencil marks you have entered, and how long you have spent on it,
- how many puzzles you have finished at each difficulty and your fastest time for each,
- which days you have completed the daily puzzle, as a list of dates, which is what your streak is counted from,
- your pencils, which colours you have bought and which you are wearing,
- your nibs, the boosters you are holding, how far up the daily gift ladder and the rank ladder you have got, and whether the starter set has been paid out,
- a record of purchases the app has completed, so that a purchase is never credited twice and is never lost if the app is closed mid-way, held at its own storage key and never sent anywhere. It holds what you own and, for each pack you have bought, Google Play's transaction id, the product and the time,
- the day you last collected your daily pencils, and how many days in a row,
- your settings: which highlights are on, and sound and vibration on or off,
- how many free hints you have left on the current puzzle.
None of this is transmitted to us or to anyone else, and all of it is deleted when you uninstall the app.
3. What the app sends to our own server
The app sends anonymous gameplay events to a server we run at https://playbrain.games/api/mobile/ingest. This is how we find out whether the game is being played at all and where people stop. We have no other way of knowing, because there is no account system and nobody writes in.
What is sent:
- a random identifier the app generates for itself on first launch: a string of random characters, created on your device, so that one installation can be told apart from another and we can count returning players rather than launches. It is not the advertising ID, it is not a hardware identifier such as an IMEI, MAC address, serial number or Android ID, and it is not derived from anything about your device or about you,
- a session identifier, valid for the time the app is open,
- gameplay events, listed one by one below,
- the app version and the platform ("android").
The complete list of events:
first_open: the app was opened for the first time after installsession_start: a play session began, and how many sessions this install has hadsession_end: a play session ended, how long it lasted and which screen it ended onscreen_view: which screen you are on, and which screen you came fromfirst_interaction: the first time you touched anything, and how long after openingtutorial_start: the guided first puzzle begantutorial_step: which step of the guide you reachedtutorial_complete: you finished the guidetutorial_skip: you dismissed the guide, and at which steplevel_start: a puzzle was opened, which one, and which attempt this islevel_complete: a puzzle was solved, how long it took and how many moveslevel_fail: a puzzle was lost, and whylevel_abandon: a puzzle was left unfinished, how far through, and how you left itcurrency_earned: in-game currency was earned, and from whatcurrency_spent: in-game currency was spent, and on whatcurrency_blocked: something cost more in-game currency than you hadad_offer_shown: an optional advert was offeredad_offer_hidden: an optional advert was not offered, and whyad_offered: you tapped an optional advert offerad_load_result: whether an advert was available, and how long it tookad_result: how the advert endedad_reward_granted: the reward for watching was giveninterstitial_check: whether an advert break was due after a level, and if not, why notinterstitial_shown: an advert break was shown between levelsinterstitial_result: how the advert break ended, and how long it was openiap_store_open: the shop screen was openediap_offer_shown: a purchasable item was showniap_purchase_start: you tapped buyiap_purchase_result: whether the purchase completed, was cancelled, is pending, or failediap_restore_start: you asked to restore purchasesiap_restore_result: whether the restore found anythingiap_entitlement_changed: what you own in the game changediap_unavailable: the store could not be reachedfeature_used: a feature was opened, completed, claimed or switchedreview_prompt_shown: the rating prompt was requestedreview_prompt_skipped: the rating prompt was not shown, and whycross_promo_open: the More games sheet was openedcross_promo_click: another of our games was tappedapp_error: something went wrong, which kind of error and on which screen, with no message and no personal dataaction_blocked: the app refused something you tried, and why (for example, not enough currency)
The purchase events carry a product identifier our own code chose (such as nibs_small), where in the app the shop was opened, how the purchase or restore ended, a reason from a fixed list if it failed, and whether the app was a test build or the released one. They never carry a price, a currency, a country, a payment method or a transaction id.
What is never sent:
- your name, email address or any account; the app has none of these,
- your advertising ID or any hardware identifier,
- your location, at any precision,
- anything you have typed; the app has no text input,
- your contacts, photos, files, calendar, installed apps, or anything else on your device.
The random identifier is not linked to you, is not shared with anyone, is not used for advertising, and is gone when you uninstall the app. Events are queued on the device and sent in small batches over HTTPS; if you play with no network they simply wait, and nothing is lost or sent twice. The queue is capped, so playing offline for a long time cannot fill your storage.
The event vocabulary is a fixed list in the app's source (src/telemetry/types.ts) and the app cannot send anything outside it.
Apart from those batches, a small settings file described in section 4 and loading adverts, the game works fully offline: every puzzle ships inside the app.
To stop it entirely, uninstall the app. There is no account to delete, because we never knew who you were. If you would like us to remove the events already associated with your installation, email [email protected]. The app shows that identifier on the last line of its Settings sheet, marked User ID: tap it to show the identifier, quote it to us, and we will delete every row that carries it.
Gameplay diagnostics and optional session recording
In updated versions that include diagnostics, we collect crash categories and a short code-location fingerprint to identify bugs. We do not send exception messages, stack traces, account details or anything you type.
If you choose to allow gameplay recording, PlayBrain can reconstruct a sample of your play using screen changes, taps, timing and game state. This is not video or audio recording. Nonogram captures puzzle marks and Idle Tycoon captures business and currency state. Other games provide action timelines. Recordings use a random session identifier, not your advertising ID.
Recording is off until you allow it. Change your choice in Settings, Gameplay recording. Declining does not affect gameplay, rewards or purchases. Each capture lasts at most ten minutes. Captures become unavailable after seven days and are deleted during our daily cleanup. We use our existing backend, not a third-party session-recording service.
Your choice and at most one pending recording are stored on your device. Recordings are encrypted in transit and available only to our private review tools. We use them to identify bugs and confusing gameplay, not for advertising or tracking across apps.
3a. Rating prompt
The app may occasionally ask you to rate it, using Google Play's own in-app review dialog. Google decides whether that dialog actually appears; we only ask. The prompt collects nothing: any rating you leave goes to Google Play, not to us, and we cannot see who left it.
3b. In-app purchases
The app has a shop. Everything in it is optional, and nothing in it unlocks a puzzle: every puzzle is free from the first launch. It sells:
- nibs, in three packs (90, 310 or 900 nibs). Nibs are a second in-game currency, spent only on three boosters: filling in one square, checking your grid for mistakes, and taking moves back,
- a booster bundle: 8 reveals, 6 checks and 10 step-backs,
- a starter set, which can be bought once: 90 nibs, 3 of every booster, and 3 extra nibs on every daily gift from then on,
- No breaks between puzzles, which can be bought once and removes the banner and the full-screen advert between puzzles (see section 4). It does not remove any advert you choose to watch: every button marked AD keeps working.
Prices are shown in the shop in your own currency, as Google Play reports them.
Payment is handled entirely by Google Play. We never see, receive or store your card details, your name, your address or your email, and there is no third party between you and Google Play. Google Play is also the record of what you own, which is how the starter set and the advert removal come back after a reinstall when you press Restore purchases.
On your device, the app stores what you own, your nib and booster balances, and a record of completed purchases (Google Play's transaction id, the product and the time) so that a purchase is never credited twice; see section 2. None of it is sent to us.
Nib packs and the booster bundle are spent in the game and are not restored by a reinstall, because Google Play does not report a purchase once it has been used up and no app can invent one. The restore result says so when you press it.
Our own events (section 3) record that the shop was opened, which items were shown, that you tapped buy, how the purchase ended, restores, and changes to what you own, identified by a product name our own code chose. They never record a price, a currency, a country, a payment method or a transaction id.
4. Advertising (Google AdMob)
The app includes Google's Mobile Ads SDK and shows three kinds of advert: a banner, a short full-screen advert between puzzles, and rewarded adverts you choose to watch.
Rewarded adverts. Each one is a button you decide to press. It says AD before you press it and names exactly what it gives you:
- a hint explaining the next move, after the one free hint on a puzzle is used,
- the answer filled into a single square you have selected,
- a check of the whole grid, marking any squares that are wrong,
- every pencil mark on the board filled in at once,
- keeping the grid you have filled in after three mistakes have stopped the puzzle. Starting the same puzzle again instead is always free,
- doubling the pencils a finished puzzle or your daily pencils have already paid you, or doubling the nibs from the daily gift. The ordinary amount is always collected for free, so declining takes nothing away,
- bringing back a daily streak you have just lost.
Pencils are a purely cosmetic currency. They are earned by playing, stored on your device, and can only be spent on colours: ink, paper and highlight. They buy no hints, no extra lives and no advantage of any kind.
Two adverts are not optional.
The first is a banner. It sits in a strip at the foot of the puzzle screen, below the number pad, and nowhere else: not on the menu, not in the shop and not on the daily gift page. The strip is part of the layout whether or not an advert fills it, so the grid does not move when one arrives. For a new player it stays empty until a puzzle has been solved or three minutes of play have passed.
The second is a short full-screen advert (an interstitial) when you move on from a solved puzzle, never during one. The cadence is capped, and the caps this version ships with are: nothing before your third solved puzzle, then at most one every second puzzle, at least 90 seconds between two of them, nothing in the first minute of a session, and at most ten in a session. The caps are fetched from our server at each launch, as a small settings file, so they can be relaxed or tightened without a new release; they are range checked, so they always stay within fixed limits.
Both of these stop entirely if you buy "No breaks between puzzles", which removes the banner and the advert between puzzles together; see section 3b. Because neither is asked for, this app does request adverts while you play even if you never press a button marked AD. What is sent when it does is the list below, and nothing else.
Undo, erasing a square, writing pencil marks by hand and starting a new puzzle are always free and unlimited; only filling every mark in at once costs anything.
When an advert is requested, Google may collect and process:
- your device's advertising identifier,
- device information (model, operating system, language, coarse region),
- your IP address,
- your interaction with the advert (views, taps).
The rewarded adverts and the full-screen advert are requested as non-personalised, which limits Google to frequency capping, measurement and fraud prevention rather than building an advertising profile of you. The banner is requested with Google's standard settings, so where you have agreed to it on Google's consent form, Google may personalise that one.
Google's handling of that data is governed by its own policies: https://policies.google.com/privacy and https://support.google.com/admob/answer/6128543.
If you are in the EEA or the UK, Google's consent form is shown before any advert is requested and nothing is requested until you have answered it. If you decline, no advert of any kind is loaded: no banner, no full-screen advert and no rewarded advert. The help a rewarded advert would have bought (the hint, the square, the check, the pencil marks and keeping your board) is given to you free instead, and the offers to double a reward or bring back a streak are simply not shown. You can reopen the form at any time from Privacy options in Settings.
You can reset or delete your advertising identifier at any time in your device's settings (Android: Settings > Privacy > Ads).
4c. Daily reminders
The app can send you a local reminder that your daily gift is ready, and a nudge if you have not played for a couple of days. It is off until you switch it on in Settings, and switching it on is the only thing that asks Android for notification permission; the app never asks at launch.
They are local, which is the part that matters here. The reminder is scheduled on your own device by Android and fires there. Nothing is sent to a server, there is no push service, no token, and no third party involved. We cannot tell whether one was delivered, or whether you opened it. Turning the switch off cancels everything already scheduled, and so does revoking the permission in your phone's settings: the switch checks with Android every time the app comes back to the screen and turns itself off if permission has gone.
5. Audio and the microphone
The app plays sound effects. It never records audio and has no microphone access. RECORD_AUDIO is explicitly blocked in the app's configuration and is absent from the built package; the expo-audio plugin is configured with microphonePermission: false and recordAudioAndroid: false.
The permissions the app itself declares are INTERNET (to send the event batches and to load adverts) and MODIFY_AUDIO_SETTINGS (to play sound). The AdMob SDK and the reminder library add their own, such as the notification permission that is only asked for when you switch reminders on.
6. Children
The app is not directed at children under 13, and we do not knowingly collect data from them. The app has no mechanism to receive personal information in the first place. If you believe a child has provided personal information, contact us and we will address it.
7. Your rights
We hold no information that identifies you, so there is nothing to export or correct. To remove everything the app has stored on your device, uninstall it or clear its storage in your device settings. To have the anonymous event rows for your installation deleted, email the address below quoting the install identifier shown on the last line of the app's Settings sheet, under User ID. For advertising data held by Google, use the controls linked in section 4.
8. Changes to this policy
If the app's data practices change (a different advert format, a new event, an analytics SDK, a new kind of purchase, or any online feature), this policy will be updated before that version ships and the "last updated" date above will change. Google Play's Data Safety section for the app is updated at the same time.
9. Contact
Email: [email protected]
10. Error reports and optional gameplay recording
The app reports its own errors as the app_error event in section 3: a fixed error category and a short code-location fingerprint, so that we can find the bug. Exception messages, stack traces, account details and typed text are not sent.
Gameplay recording is optional and off until you choose Allow. You can change your mind at any time in Settings, Gameplay recording. Declining changes nothing about the game, its rewards or its purchases. A recording holds which screen you were on, where you tapped and when, and the same gameplay events listed in section 3. There is no screen video and no audio.
Each recording uses a random session identifier, not your advertising identifier or any hardware identifier. A recording lasts at most ten minutes, is sent to our own PlayBrain server, becomes unavailable after seven days and is deleted in our daily cleanup. Your device stores your choice and at most one recording waiting to be sent. Nothing is shared with a third-party recording service or used for advertising.