THE SMALL PRINT
Privacy policy
Last updated: 10 November 2026
Spectrum Workshop is a puzzle game for iPhone and Android. This page says what the game sends off your device, why, where it is kept and how to have it removed.
In short. You can play without registering. The first three chapters and the daily puzzle are free. Chapters 4–8 are available with the Full Workshop purchase. The app silently creates an anonymous Firebase account when connected. The game shows ads from Google AdMob, which may use your device's advertising identifier where you allow it; a purchase removes the ads between levels. Besides AdMob, the game talks to Google Firebase, to our own server at Cloudflare and, when you buy something, to the App Store or Google Play. Newer versions also send the play statistics to PostHog, which we use for our own dashboards. Play statistics also help us measure and target our own ads for the game with Google Ads: in the European Economic Area, the United Kingdom and Switzerland only with your consent, elsewhere by default. Play statistics (with the performance measurements that go with them) and crash reports can be switched off in the settings; linking Apple, Google or e-mail and sending feedback are optional.
What stays on your device
- Your progress: finished levels, medals and unfinished layouts.
- Your settings.
- A copy of your account wallet (hints, streak freezes, purchases, your support code and any messages from us still waiting to be claimed) and any requests still waiting to be sent, so that what you bought keeps working offline. The wallet itself is kept on our server; see below.
- Your daily puzzle record: the days you solved, the past days you caught up on from the calendar, your streak, and whether you asked for a reminder. Once you are signed in, the solved days, the past days and your best streak also go into the cloud copy described below; the reminder and an unfinished layout stay on the device. The reminder is a notification your own device shows at the set hour; nothing is sent to us or anyone else to make it appear, and it only exists if you turn it on.
- Your weekly tour and seasonal challenge records: which puzzles you solved, which rewards you received, and unfinished layouts. Seasonal challenge progress is stored separately so it can continue across a change of week. It stays on the device and is not part of the cloud copy; only the rewards themselves go into your account wallet described below.
- A log of your recent play events (at most 500). The log itself stays on your device; the play statistics described below are sent separately and can be switched off.
- Share cards. When you share a daily result or an artifact, the game draws the picture on your device and hands it, with a line of text and a link to our daily puzzle page, to your device’s share sheet. It goes only where you choose to send it; we never receive the picture or the text.
What the game sends, and why
Getting announcements and settings
When the game starts it asks Google Firebase Remote Config for the current announcements, update notices and a few switches. To answer, Firebase receives a Firebase installation ID (a random ID made for this installation of the game), the app's identifier and version, your device's operating system version, language, time zone and country, and, as with any internet request, your IP address. We use this only to deliver that content. If the request fails the game simply plays with its built-in defaults.
Crash reports
If the game crashes, Google Firebase Crashlytics receives a report: what the code was doing when it failed, the device model and operating system version, the time, and an installation ID. We use it to find and fix bugs. Google keeps crash reports for 90 days. You can turn this off under Settings → Send crash reports.
Performance measurements
To see whether the game starts slowly or stutters, it sends performance measurements to Google Firebase Performance Monitoring: how long the game takes to start and to load its levels, how smoothly the screen is drawn, how long the network requests made by Firebase and AdMob take on iPhone and iPad (the address without its parameters, the response code and size), and the game's CPU and memory use. Each measurement comes with the device model, operating system, app version, language, network type and carrier, a Firebase installation ID, and the country derived from your IP address. The measurements never include anything you typed, your account or your saved progress. Google keeps the measurements tied to an IP address for 30 days and the rest for 60 days. They follow the play statistics setting: once Settings → Share play statistics is off, none are sent. In the European Economic Area, the United Kingdom and Switzerland they are sent only if, in the consent form described under Ads, you agreed to storing and accessing information on your device and to Google, since they always carry the installation ID.
Play statistics
To see which levels are too hard and whether changes help, the game sends play statistics to Google Analytics for Firebase: that a level was started, tried or finished, how many tries and edits it took, how long it was open and how many hints were shown, whether a hint was used, how far an artifact has been repaired, that the free chapters were played up to the point where only the Full Workshop purchase stands before the next one, that the daily puzzle was finished and how many days in a row, that a past day's puzzle was opened or finished from the calendar (which day, and how many days ago), that the daily reminder was turned on or off or refused by the system, that the game was opened from a reminder (which kind of reminder), that a weekly tour or seasonal challenge puzzle was started or finished (which of the five, whether it was the first time, how many edits it took, whether it belonged to the weekly tour or to a seasonal challenge such as the Black Friday challenge, and the number of the week; events while such a puzzle is open, such as a hint being used, carry the same two labels), that a streak freeze was bought or used, which workshop look was put in use, that a result was shared and which kind of card it was (the daily puzzle, a repaired artifact or its gilded edition, never the picture or the text), that the game was opened from a link to the daily puzzle, that the shop was opened, that a suggestion to remove the ads was shown or tapped (which product, and after which ad), that a level was left unsolved after several tries or edits (how many tries, edits and hints, and roughly how long it was open), that a message from us was claimed (how many hints and streak freezes it held, and whether it was addressed to you alone, never its text), that a product's buy button was tapped and where in the game (for example the shop and which screen opened it, the hint panel, the workshop looks or a suggestion card), that a purchase was delivered once our server had verified it (for a new purchase, also the amount paid and its currency, as the store reported them to our server, so we can measure our advertising), and how a purchase or an ad ended (which product, which kind of ad and whether it was offered in the shop or in the hint panel, never a payment detail or a transaction reference; when an ad could not be shown, why, for example that none had loaded yet or that loading failed, with the ad network's error code), which screen of the game was open, that the Full Workshop's unlock button was shown (on which screen, and whether its price was known), that the store could not list its products, that a step of the account wallet failed (which step and the error code), that signing in or linking an account succeeded, was cancelled or failed (which sign-in method and the kind of failure), what you chose when the progress of two accounts met, that you signed out or deleted your account, and that cloud sync failed (at which step), and, in versions released after 9 November 2026, that the number of hints you hold changed (where they came from or what they were spent on, such as a rewarded ad, a daily puzzle, a purchase or a hint shown, by how many, and how many are left). None of these include your account, its e-mail address or its contents. Each event carries the level and chapter number. The game also gives Google Analytics up to fourteen labels for this installation, updated when they change: the highest chapter reached, and in versions released after 9 November 2026 the next level of the main story you have not solved, how many levels you have solved and how many hints you hold, whether anything has been bought (yes or no, not what or for how much), whether the ads are removed, whether the paid chapters are not reached yet, reached or owned, the daily streak as a range (none, 1 to 6 days, or 7 days or more), whether the game is a store version or a test version, whether the daily reminder is on, off or refused by the system, your answer to the ad consent form as a summary (given, partly given, refused or not needed), on iPhone your answer to Apple's tracking permission, and which version of our game settings is in effect and whether the last update of them arrived. Google Analytics adds what it collects by itself: an app-instance ID (a random ID for this installation), the app version, device model and operating system, language, approximate location by country and city derived from your IP address, and when and for how long the game was open.
The statistics never include anything you typed, your account, your support code, or your saved progress. We also use them for our own advertising of the game with Google Ads: Google Analytics can tell Google which of our ads led to an installation and to later play or purchases, and lets us show our ads to people who already play, or leave them out (for example, players who have not finished a chapter). For this, on Android, Google Analytics may collect your device's advertising identifier; on iPhone and iPad it does not. In the European Economic Area, the United Kingdom and Switzerland, all of this follows your choices in the consent form described under Ads: Google Analytics keeps its app-instance ID on your device only if you agreed to storing and accessing information on your device and to Google; the statistics measure our ads only if you also agreed to measuring ad performance; and they are used to show you our ads only if you agreed to personalised ads. Until the game knows your choices there, nothing is stored and nothing is used for ads; the game also treats your device as being there if its region setting says so. Elsewhere these uses are on by default, from the start. Changing your choices under Settings → Ad privacy choices applies to the statistics too. You can limit what your advertising identifier is used for in your device settings, as described under Ads. Google keeps event data for 14 months at most. You can turn all of this off under Settings → Share play statistics; once it is off, neither events nor these labels are sent.
Apple Ads attribution
Starting with iOS 1.3.1, Google Analytics can use Apple's AdServices framework to measure installations from our Apple Ads campaigns. Apple provides an attribution token and, when a matching ad is found, campaign, ad-group and keyword identifiers. Google Analytics uses this information to attribute installations and later game events to those campaigns. This does not enable IDFA collection by Google Analytics. It follows the same statistics switch and Analytics consent settings described above; turning statistics off stops new collection. This integration does not send your account, e-mail address, saved progress or payment receipts to Apple Ads.
PostHog dashboards
This section applies to versions released after 9 November 2026 that include it. Earlier versions, up to 1.3.1 build 63, send nothing to PostHog.
To follow how the game is doing day by day (how many people play, how far they get, where they stop, and whether hints, ads and purchases are in balance), the game sends its play statistics to PostHog, an analytics service that processes them on our behalf, on its servers in the United States. PostHog receives the same events and the same labels as Google Analytics, described above, except the record of each single try at a level. It also receives: that the game was installed, updated, opened or sent to the background; what each ad shown is estimated to have earned (the kind of ad, the amount and its currency, as AdMob reports it to the game); the app version and build; whether the device is an iPhone or iPad or runs Android, its brand and device model (the hardware model identifier on iPhone and iPad), its operating system version or build name, its screen size and whether it is a phone or a tablet; the device's language and region setting and the language chosen in the game; and a random ID the game makes for this installation and keeps on your device. PostHog derives an approximate location (country and city) from your IP address, as with any internet request.
In versions released after 10 November 2026, when you leave one of the first seven levels of the first chapter without having solved it yet, or the game goes to the background while it is open, PostHog also receives the moves made on that level, so we can see where new players get stuck: which piece was turned, placed or put back and in which square of the board, how many lamps were lit after each move, when a hint was opened or the light was run, when the game left the screen and came back, and how many seconds after opening the level each of these happened. This is sent once per such exit, at most sixty moves, and not at all once the level is solved.
PostHog never receives anything you typed, your account, its e-mail address, your support code, your saved progress, your advertising identifier, your device serial number or custom device name, or a payment detail. The random ID is not your account and is not combined with it. We do not use PostHog for advertising, and the game does not record your screen or your taps: the moves described above are the only record of play on a board.
PostHog uses the same Settings → Share play statistics switch: once it is off, nothing more is sent, and events still waiting on your device are discarded. In the European Economic Area, the United Kingdom and Switzerland the game sends to PostHog only if, in the consent form described under Ads, you agreed to storing and accessing information on your device, as for Google Analytics; until the game knows your choice, events wait on your device and are discarded if you refuse. Elsewhere it is on by default. Events are sent a few at a time, and kept on your device until they have been delivered. PostHog's own terms are in its Privacy Policy.
Meta advertising measurement
This section applies to Android 1.3.0 build 56 and later versions that include the Meta SDK. Android build 55 and earlier, and the iOS 1.3.0 build 54 submitted for review, do not include it and do not send these events to Meta. On iOS, these practices apply only to future versions that include the Meta SDK.
In versions that include Meta App Events, we send installation, app activation and session-duration events, first-time level completions (including milestones for mainline level 5 and all ten main levels of chapter 1), and daily puzzle and weekly tour completions to measure our ads on Facebook and Instagram and build audiences for those ads. Completion events contain only numeric level and chapter identifiers and counts of attempts, edits and tools used, where available. The SDK also receives an installation identifier, app and device information, IP address and, when permitted, the device's advertising identifier. We do not send your account, e-mail address, support code, saved layouts, text you write, links you open or payment-card and bank details. Automatic purchase and interface-event collection is disabled. Build 56 does not report purchases to Meta. In later versions with verified purchase measurement, a new production purchase may also send the product identifier, amount paid and currency after our server verifies and delivers it. Test purchases, restored purchases and duplicate deliveries are excluded. We never send payment-card information or store receipts to Meta.
Meta uses the same Settings → Share play statistics switch as Google Analytics and performance measurements. Turning that switch off stops new Meta events too. In the European Economic Area, the United Kingdom and Switzerland, Meta events also require consent to Meta and the relevant purposes in the existing consent form under Settings → Ad privacy choices. Outside those regions they are enabled only after the consent service confirms consent is not required. On iPhone and iPad they additionally require permission in Apple's tracking prompt; refusal does not affect gameplay. Meta processes and retains received data under its Privacy Policy, including to provide and improve advertising services. You can exercise your data rights through Meta or contact us for help. Switching statistics off does not delete events already received.
Ads
The game shows ads from Google AdMob: a full-screen ad now and then as you move on to the next level, and a video you may choose to watch in exchange for a hint. To pick and show ads, count them and prevent fraud, AdMob receives your IP address (which gives an approximate location), your device model, operating system and language, the app's identifier and version, how you dealt with the ad and, where you allow it, your device's advertising identifier.
- iPhone and iPad: the advertising identifier is only available to the game if you choose "Allow" when iOS asks whether the game may track you. You can change that under iOS Settings → Privacy & Security → Tracking.
- Android: you can reset or delete your advertising ID in the Android settings, under Google → Ads.
- European Economic Area, United Kingdom and Switzerland: the game asks for your consent first, with Google's consent form. Without it, ads are not personalised. You can change your choices at any time under Settings → Ad privacy choices.
How Google uses this data is described in How Google uses information from sites or apps that use its services. Buying "Remove ads" stops the ads between levels; a video for a hint always remains your choice.
Purchases
The Full Workshop, hints, streak freezes, workshop looks and "Remove ads" are bought through the App Store or Google Play. The store takes the payment; we never see your card or bank details. Purchases do not require a sign-in form: they belong to your anonymous or linked game account. Our Cloudflare server verifies the purchase directly with Apple or Google and stores the product, transaction reference or purchase token, purchase environment and time, and delivery or refund status under your account identifier. We send a random account identifier to the store to bind the purchase to your game account. Your hint balance, streak freezes and permanent purchases follow that account across iOS and Android. Items redeemed with a store offer code are added to the account that first reports them from your device. Our server learns from Apple and Google when a purchase is refunded or revoked, and then removes what it granted. Purchases and spending account hints require a connection; solving puzzles and saving progress still work offline.
Anonymous account and optional account linking
Google Firebase Authentication silently assigns a random account identifier when you first connect. No name, e-mail or password is needed for this anonymous account. Your wallet, verified purchases and rewards are stored under this identifier. If you choose to link an account, Firebase also receives the following from the sign-in provider:
- Sign in with Apple: an account identifier from Apple. Our native iOS flow does not request your name or e-mail. On Android, Firebase’s web sign-in flow may request your name and e-mail under its one-account-per-email setting; Apple lets you share a private relay address instead of your real address. These details stay in Firebase Authentication and are not sent to our wallet server.
- Sign in with Google: an account identifier, your e-mail address and the basic profile Google attaches to it.
- E-mail and password: your e-mail address. Your password goes straight to Firebase Authentication, which stores it in scrambled form; it never reaches our server and we cannot read it. Firebase sends a confirmation mail when the account is made, and a mail with a link when you ask for a new password.
Apple, Google and e-mail linking are offered on both iOS and Android. Linking a new credential keeps your account identifier; linking an existing account transfers the anonymous wallet to that account. Paid assets and permanent purchases are retained, and welcome and duplicate completion rewards are counted once.
Once you are signed in, a copy of your progress (finished levels, medals, unfinished layouts, the level you were on, and the days of the daily puzzle you solved or caught up on with your best streak) is stored on our server at Cloudflare under your account identifier, so that it can follow you to another device. Your settings and the play log are not uploaded. The server also keeps your account wallet and an idempotent record of purchase grants, rewards and spending, including relevant level, chapter, day or week numbers. Your device caches the wallet and pending requests so they can retry after a connection failure. Unlinked accounts are not automatically deleted after a period of inactivity. Link an account before uninstalling or changing devices: without a linked sign-in method, you may lose access to the anonymous wallet. Temporary one-use transfer credentials allow interrupted linking to resume safely; unused ones are deleted after 7 days and used ones 30 days after use. Short-lived request counters used to limit abuse are kept for about two hours.
Support code and messages from us
Each game account has a support code: eight letters and digits, such as ABCD-2345, that our server picks at random for your account. It says nothing about you or your device. It is stored with your account wallet on our server at Cloudflare, and once the game has connected you can see and copy it under Settings → Help & support. It reaches us only with feedback you send, or when you write it in an e-mail to us yourself. We use it only to find your account so that we can handle your support request and, where something went wrong, send you compensation in the game. It is not used for advertising and is not part of the play statistics. If you link to an account that already exists, the anonymous account's support code is deleted with that account, and you get the support code of the account you linked to.
Our server can also send in-game messages to your account, or to every account, for example to make up for a problem; some come with hints or streak freezes. They appear under the envelope (News) at the top right of the home screen, and nothing is added until you claim it. The server keeps the messages addressed to your account and, as part of the wallet history, a record of which messages you claimed, so that each one can be claimed only once. When an anonymous account is linked to an existing one, its unclaimed messages and that record move to the account you linked to.
Feedback (optional)
When you send feedback from the settings, we receive what you wrote, the e-mail address you entered if you entered one, your support code once the game has one, the game's version, your platform and operating system version, your device language and the number of levels you have finished. The form lists these before you send. Feedback is stored on our server at Cloudflare for 180 days and a copy is forwarded to our support mailbox by e-mail. Because it carries your support code, we can tell which account it came from; we use that only to answer it and to send compensation where needed.
Rating the game
Ratings and reviews go straight to the App Store or Google Play. The game does not see them before the store does.
What the game does not do
- It does not read your contacts, photos, precise location or microphone.
- It does not sell personal data for money. Data used for advertising is what AdMob receives, as described under Ads, and the play statistics that measure and target our own ads, as described above. Where a law treats this as sharing personal data for advertising, you can opt out by turning off Settings → Share play statistics and by refusing personalised ads in the consent form or in your device settings.
- It does not combine play statistics with your account, your support code or your saved progress.
Who processes the data
- Google LLC (AdMob, Firebase Remote Config, Crashlytics, Performance Monitoring, Authentication, Google Analytics for Firebase, Google Play purchases).
- Meta Platforms (advertising measurement in Meta-enabled versions, as explained above).
- PostHog, Inc. (play statistics for our own dashboards, in versions that include it, as explained above).
- Apple Inc. (App Store purchases, Sign in with Apple, Apple Ads attribution).
- Cloudflare, Inc. (our server and database for cloud saves, purchase verification, account wallets with their support codes and in-game messages, and feedback, and the forwarding of support e-mail).
They operate data centres in the United States and other countries, so your data may be processed outside the country you live in.
How long it is kept, and how to remove it
- Account and cloud save: until you delete the account. You can do that in the game under Settings → Link account (or Account & cloud save) → Delete account, or by e-mail if the game is no longer installed; see Delete your account.
- Feedback: 180 days, or sooner if you ask us to remove it. Deleting your account does not delete feedback you have already sent, but the support code in it no longer leads to any account.
- Crash reports: 90 days.
- Performance measurements: 30 days for those tied to an IP address, 60 days for the rest. Turning play statistics off stops new ones from being sent.
- Google Analytics play statistics: up to 14 months, without your name or account. Turning them off stops new ones from being sent.
- PostHog play statistics: until we delete them or the retention period of our PostHog plan ends, without your name or account. Turning play statistics off stops new ones from being sent. The random ID is tied to the installation; removing the game removes it from your device. As the statistics carry no name or account, we cannot look yours up from an e-mail address.
- Advertising data: kept by Google under its own policy, linked above. Resetting or deleting your advertising identifier separates new ads from what was collected before.
- Account wallet and purchases: retained until you delete your account. Deletion removes your wallet, its reward and spending history, your support code, the in-game messages addressed to you and the record of which ones you claimed, account association and purchase tokens. For each order we keep its transaction reference in hashed form, the product, store environment, purchase time and refund status, no longer linked to you, together with a one-way hash of the deleted account identifier, so that the same purchase cannot be claimed twice and the Full Workshop, "Remove ads" and the bought Starry Night look can still be restored from the same App Store or Google Play account. Deleting your account does not request a store refund; deleted hint and streak-freeze balances cannot be recovered. Uninstalling the game does not delete server records. On Android it also removes the sign-in session; on iPhone and iPad the session can remain in the device keychain and come back when you reinstall. You can delete an unlinked account from Settings while its session is still available.
- Firebase installation ID: it is tied to the installation; removing the game removes it from your device.
- Progress and settings on your device: removed when you remove the game.
Your choices and rights
You can play without signing in, turn crash reports and play statistics (with performance measurements) off, never send feedback, refuse tracking and personalised ads, and never buy anything. Depending on where you live, you may have the right to see, correct or delete the personal data we hold about you, or to object to how it is used. Write to us and we will help.
Children
The game is not directed at children and does not ask for personal information to play. We do not knowingly collect personal data from children. If you believe a child has sent us personal data, write to us and we will delete it.
Changes to this policy
When the game changes what it sends, this page is updated first and the date at the top changes.
Contact
E-mail support@minigamesdesign.com.