Effective 14 August 2026
Magnetic Dots is a single-player puzzle game. It has no account, no ads, and nothing to buy. This page describes everything in the app that can send data anywhere: two diagnostics settings, both shown to you on the very first launch before anything is sent, and one settings check that carries no data about you.
Your level progress, best move counts, sound/haptics settings, and a plain count of how many times the app has been opened are stored locally on your device. The app never transmits them anywhere itself, and they are not visible to the developer.
On Android they are included in the system backup, so that reinstalling the app or moving to a new phone doesn't wipe the levels you have finished. That backup is made and held by Android under your own Google account, encrypted with your device credentials, and the developer has no access to it. You can switch it off in Android Settings → Google → Backup, and turning it off means a reinstall starts you from level one. On iOS there is no equivalent: progress travels only inside a full device backup, so deleting the app deletes it.
Before the game starts, a screen shows both diagnostics settings and lets you decide. It cannot be skipped, and nothing is sent before you have seen it. Both settings live in Settings afterwards and can be changed at any time.
<aside> 🔵
Crash reports (Firebase Crashlytics) — on by default, switchable off on the first-launch screen and in Settings. If the app crashes or hits an unexpected error, a report with the technical details (stack trace, what was happening) is sent so it can be fixed. It is not linked to you personally. It is on by default because a crash that is never reported is a crash that is never fixed — the legal basis is the developer's legitimate interest in keeping the game working, not consent.
</aside>
<aside> 🔴
Gameplay events (Firebase Analytics) — off unless you allow it, with no pre-selected answer: the first-launch screen offers "Allow" and "Not now" as equal choices, and declining costs you nothing in the game. When allowed, the app sends anonymous events about what happens in the game: the app being opened (with the number of that launch on this device — a count, not an identifier), a level started, restarted, undone, completed or left, tutorial steps started, finished or abandoned, a block or the campaign finished, and a diagnostics/sound/haptics switch being flipped. Each carries only numbers and fixed labels — a level or block id, attempt number, move count, elapsed time, the level's par, the tutorial step, the name of the switch and whether it ended up on or off. No name, no email, no advertising identifier, and no free-text input — the game doesn't collect any to begin with.
</aside>
Both services automatically attach the basic technical context every Firebase-based app reports — app version, OS version, device model, and a coarse country/language derived from IP address. This is Firebase's standard behavior, not something Magnetic Dots adds on top.
On launch the app asks Google's servers for a small set of switches the developer can flip without shipping a new build — for example, to turn diagnostics off for everyone at once if something goes wrong, or to note that a newer version is out. This request runs regardless of your diagnostics choices, because it is the only way to switch something off remotely when it misbehaves — including diagnostics themselves.
It sends nothing about you and nothing about your game: no events, no progress, no crash data. Like any request over the internet it reaches Google with your IP address and the app-installation identifier that Firebase creates when the app starts, and Google answers with the switches. Nothing from this request is stored by the developer, and the developer cannot see individual devices in it. If the request fails — no network, airplane mode — the app simply keeps its built-in defaults and plays exactly the same: the whole game works offline.
The update notice this can show is a card on the home screen with a "Not now" button. The game is never blocked or locked behind it.
Switching either setting off in Settings stops that collection immediately. Switching off Crash reports also deletes any report queued but not yet sent. The two are independent: declining gameplay events leaves crash reporting untouched, and vice versa. There is no confirmation step and no penalty to gameplay either way.