Skip to content
Sudocrime logoSudocrime
Menu
Play now

Privacy Policy

Last updated: 2026-10-22

This policy explains what personal data is processed when you use Sudocrime: the app for iPhone and iPad, the Android app, the version that runs in your web browser (the “web app” at play.sudocrime.app) and the sudocrime.app website with these legal pages. It is based on the EU General Data Protection Regulation (GDPR) and the German Telecommunications Digital Services Data Protection Act (TDDDG, called “TTDSG” until May 2024). This English text is provided for your convenience; the German version is the governing one.

The short version

  • There is no account. We never ask for your name or email address.
  • No ads and no advertising ID. No tracking across other companies’ apps or websites. We do not sell data.
  • Your saved games and settings stay on your device.
  • So that we can spot errors and improve the game, Sudocrime records from the first launch how the app is used, under a pseudonymous ID: the screens you open, the buttons you tap and game events. You can object at any time with the “Opt out of usage analytics” switch under Settings → Privacy.
  • Random, pseudonymous IDs are also used when stories are downloaded, for purchases and for crash reports.

1. Who is responsible

The controller under the GDPR is:

GuruSense UG (haftungsbeschränkt)
represented by its managing director, Daniel Defiebre
Eichelsheimer Straße 5
68163 Mannheim
Germany

Email: daniel.defiebre@gurusense.de
Commercial register: Amtsgericht Mannheim (Mannheim Local Court), HRB 753579
More details: Legal Notice

For any privacy question, or to exercise your rights, a short email to this address is all it takes. We have not appointed a data protection officer, as the law does not require one for us.

2. Overview

Purposes, services and legal bases
PurposeServiceLegal basisCan you turn it off?
Saved games, settings and purchases on your devicenone – stays on the deviceArt. 6(1)(b) GDPR; § 25(2) no. 2 TDDDGdelete the app or the site data
Downloading stories, abuse protectionCloud Storage for Firebase, Firebase App CheckArt. 6(1)(b) and (f) GDPR; § 25(2) no. 2 TDDDGno, technically required
Checking, unlocking and restoring purchasesApp Store, Google Play, RevenueCatArt. 6(1)(b) GDPRno, required for purchases
Usage data: keeping the app working, finding errors, improving the gameGoogle Analytics for Firebase, AmplitudeArt. 6(1)(f) GDPR; § 25(2) no. 2 TDDDG (section 6)yes, object with the “Opt out of usage analytics” switch
Crash and error reportsFirebase Crashlytics (iOS, Android), Sentry (web)Art. 6(1)(f) GDPR; § 25(2) no. 2 TDDDGobject by email (section 7)
Serving the web app and the websiteFirebase HostingArt. 6(1)(f) GDPRno, technically required
Answering your emailour mailboxArt. 6(1)(b) or (f) GDPR–

Development builds of Sudocrime (debug and profile builds) send neither usage data nor crash reports. Everything below refers to the published versions; test versions distributed through TestFlight or Google Play behave the same way.

3. Data on your device

Sudocrime keeps the following on your device: your saved games (progress, entries and notes), your settings (for example sound, automatic narration, large text and your choice for “Opt out of usage analytics”), downloaded stories and cover images, the last confirmed state of your purchases, and small markers that stop a game event from being counted twice. In the web app, this data sits in your browser’s storage for the web app’s address (IndexedDB and local storage). None of it is sent to us, and we have no access to it. The services described below also keep their own IDs on the device.

Legal basis: storing this data is strictly necessary for the game you asked to play (§ 25(2) no. 2 TDDDG) and serves to provide the app (Art. 6(1)(b) GDPR).

Deleting it: uninstalling the app, or clearing the site data in your browser, removes this data. Browsers may also remove it on their own when storage runs low or after a private window is closed.

Device backups: depending on your device settings, Android (backup to your Google account) and iOS (iCloud or computer backup) include saved games, settings and the services’ IDs in your backup. Large files that can be downloaded again at any time, such as stories, are left out. Google and Apple are responsible for these backups as part of your account with them; we cannot access them.

4. Downloading stories and abuse protection

Cloud Storage for Firebase

The story list, the stories, their images and prerecorded narration are stored in Cloud Storage for Firebase, a Google service, on servers in Frankfurt am Main, Germany (region europe-west3). The app fetches these files when it starts, from time to time when you return to it, and when you open a story. To deliver them, Google necessarily processes your IP address, the time, the file requested and details of the app or browser version. No account or sign-in is involved.

Story narration

When you first play a text, the app sends our fixed German or English story text, language and voice to our Guru Backend service. It creates a recording with Google Gemini through Vertex AI or returns the version already held in its permanent cache. Your input and saved games are not sent for this purpose. The app does not use the microphone.

For the first such request, Firebase Authentication creates a random technical user ID without asking for a name, email address or password. The app stores the resulting sign-in on your device and uses it along with App Check to protect narration. Our backend processes this ID, request time, app assignment and technical errors for operation, abuse prevention and cost attribution. We do not join this ID with your analytics or purchase IDs. This serves the narration you request and its secure operation; the legal bases are Article 6(1)(b) and (f) GDPR and, for necessary device storage, section 25(2)(2) TDDDG.

Recordings already downloaded remain playable offline on your device. A text requested for the first time needs a connection. Playback, pause and the “Read automatically” setting, off by default, remain separate from game sound effects. The shared audio cache contains our fixed story texts, not user input. Section 12 explains retention of the technical ID and operation logs.

Firebase App Check

To make sure only the genuine Sudocrime app can fetch these files, we use Firebase App Check. With every request, the app presents a short-lived token, valid for one hour in our setup. The token comes from a check provided by the platform:

  • iOS: Apple’s App Attest, with DeviceCheck as a fallback. The app sends a device-bound proof issued by Apple.
  • Android: Google Play’s Play Integrity. Google Play checks, among other things, the package name, app version, signing certificate, the app’s licensing status and a confirmation of the device by Google Play services.
  • Web: Google’s reCAPTCHA Enterprise. To detect automated access, reCAPTCHA evaluates your IP address, details of your browser and device and how you interact with the page, and may store and read data in your browser for this purpose.

According to Google, App Check does not keep this attestation material; it is passed to the relevant provider for the check, under that provider’s terms.

Legal basis: providing the stories you want to play (Art. 6(1)(b) GDPR) and our legitimate interest in protecting the content from automated scraping and abuse (Art. 6(1)(f) GDPR). The storage and access on your device that this requires is strictly necessary for the download (§ 25(2) no. 2 TDDDG).

5. Purchases

You can buy individual stories and collections in the iOS and Android apps. Payment there runs through Apple’s App Store or Google Play. Apple and Google handle payment, invoicing, taxes and refunds on their own responsibility; we never receive payment details such as card or bank data. Their own privacy policies apply: Apple, Google. Please send refund requests to Apple or Google.

To check and unlock purchases – including after reinstalling, via “Restore purchases” – we use RevenueCat. It processes:

  • a random, anonymous customer ID created on your device by the RevenueCat SDK, not tied to any name, email address or account,
  • store receipts and transaction IDs,
  • the products bought, the time of purchase and whether they are unlocked,
  • technical details such as platform, app version, and the country and currency of your store account.

The RevenueCat SDK’s automatic collection of further device IDs and its diagnostics are switched off. Legal basis: performance of the contract (Art. 6(1)(b) GDPR).

Browser payments through Stripe and PayPal

Browser purchases use Stripe's hosted checkout, with cards and, where available, PayPal, Apple Pay or Google Pay. Stripe processes payment and transaction details, the payment email and information for invoices, taxes and fraud prevention. PayPal also processes payment data when selected. Full card or bank details do not reach the Sudocrime app or our purchase server.

The browser creates a random purchase identity in localStorage. Our purchase server sends this identity, the Checkout Session and product to RevenueCat to unlock the story. Stripe sends confirmed purchases and refunds to RevenueCat through server notifications. Your invoice includes a secret recovery link. Its code is in the URL fragment, is removed from the address before the app starts and is sent only to the purchase server for verification. The link lets you transfer access to another browser. The payment email does not create a Sudocrime account; browser purchases do not automatically unlock stories in the store apps.

Legal bases are performance of the contract (Art. 6(1)(b) GDPR), statutory retention of payment records (Art. 6(1)(c) GDPR) and protection against abuse and incorrect duplicate imports (Art. 6(1)(f) GDPR). Necessary browser storage relies on § 25(2) no. 2 TDDDG. Payment records are retained for the applicable statutory period; purchase and receipt status remain necessary to restore and verify access. Further information: Stripe privacy, PayPal privacy, terms and withdrawal information.

6. Usage data

Sudocrime is developed and run by a small company and has a modest number of players. That is why we can only tell reliably whether the app works as intended on every device – whether screens load, buttons respond, downloads succeed and chapters can be finished – from the usage data of as many installations as possible. Like many other app makers, we use analytics services for this: from the first launch, the published versions send pseudonymous usage data to Google Analytics for Firebase and to Amplitude. You can object at any time (see “Your objection” below).

What is collected

  • Screens you open, such as the library, the evidence wall, a sudoku or the settings – by a fixed screen name and, for game screens, the story and chapter.
  • Controls you tap, such as “Continue” or “Hint” – by a fixed name we assigned to the control and the screen it is on. Labels, text and anything you type are not collected. Individual moves in the sudoku or the floor plan (cells, digits, notes) are not collected; they only feed into game events in summary form, such as “sudoku solved”.
  • Game events from a fixed list: chapter started and solved; moving between parts of the game, with active play time; sudokus solved or skipped; accusations made (right or wrong); hints used; stories finished; opening the library and the purchase page; purchase attempts and their outcome (product and outcome, no price or payment data); restoring purchases; and the outcome of a download. Events carry only fixed values: the story and its version, the chapter or number of chapters, the app language, the game mode, the difficulty and grid size, the part of the game and why it was left (next, back, app in the background), the hint level and puzzle type, whether a story is free, whether a sudoku was caught up on or the finale was played, the product ID and outcome of a purchase, and a fixed error category for downloads.
  • Technical device and app data that the services collect on their own: device type and model, operating system and version, app version, your device’s language setting, timestamps, session start and length. Google Analytics also records standard events by itself (such as first launch and app update), in-app purchases with product ID, product name and price, and, on Android, the install source from Google Play (install referrer).
  • Approximate location: when the data arrives, Google Analytics roughly derives the country, region (for example the German state) and, where possible, the city from the IP address; according to Google, it does not store IP addresses. Amplitude only takes the country from your device’s language and region settings (for example “DE”); in our Amplitude settings, locating you by IP address and storing the IP address are switched off. We do not receive a precise position, and the app does not use location services.
  • A pseudonymous app ID for each installation: the app instance ID for Google Analytics (stored in cookies in the browser) and a random device ID for Amplitude (stored in local storage in the browser). It groups the events of one installation without telling us who you are.

What is not collected

No name, no email address, no account and no user ID; no text or input, no screen recordings, no photos or contacts, and no precise (GPS) location. No advertising ID: the Android permission for it is removed, and iOS never asks you for permission to track. For Google Analytics, also no iOS vendor ID (IDFV), no Google signals, no link to Google Ads and no ad personalization. We do not combine the data with data from other apps or websites, and we do not pass it on for advertising.

What we use it for

  • to make sure the app works technically and to spot errors early – for example screens that do not load, buttons that do not respond or downloads that fail,
  • to understand how people get on with the controls – where they tap, where they get stuck, which hints they need,
  • to improve the game and future stories.

We look at the data in aggregate. We do not use it to make decisions about individuals, and we do not build advertising profiles.

Notice in the app

On first launch, a line on the start screen points out that Sudocrime measures how the app is used under a pseudonymous ID, and where you can find out more.

Legal basis and balancing of interests

We process this data on the basis of our legitimate interest (Art. 6(1)(f) GDPR): offering an app that works reliably, finding errors quickly and improving the controls and the stories. With only a few users, samples or data shared only on an opt-in basis are not enough – errors on particular devices or in particular chapters would often go unnoticed.

We protect your interests by keeping the data to a minimum:

  • no account, no names and no text input – only pseudonymous IDs,
  • no advertising ID, no ads and no passing on for advertising,
  • EU data centers where we have the choice: Amplitude stores the data in its EU data center in Frankfurt am Main,
  • only approximate location (country, region and, where possible, city) for Google Analytics, and only the country from your device settings for Amplitude, never a precise position; the IP address is not stored (by Google Analytics according to Google, by Amplitude in our settings),
  • limited retention periods (section 12),
  • a notice on first launch and the right to object at any time with a switch, without any disadvantage.

Having weighed these points, we consider that your interests do not override ours. If you see it differently, you can object at any time.

Storing and reading data on your device: Google Analytics and Amplitude store the pseudonymous app ID on your device and read it back (in the browser, in cookies or local storage). In our view, this is strictly necessary for us to provide the app to you in working order, because with so few users it is the only reliable way to detect errors. We therefore rely on § 25(2) no. 2 TDDDG for this access.

Your objection

You can object to the collection of usage data at any time (Art. 21 GDPR) – no reason needed and without any disadvantage: turn on Settings → Privacy → “Opt out of usage analytics” in the app. Both services then stop right away; if the web app starts after you opted out, Google Analytics is not even loaded. Your choice is saved and still applies after a restart; if saving fails, the app says so below the switch. Data already sent is deleted when its retention period ends (section 12).

7. Crash and error reports

iOS and Android: Firebase Crashlytics

If the app crashes or detects an error, it sends a report to Firebase Crashlytics. Among other things, it contains the time, app version, operating system and version, device model, processor architecture, memory and disk space, whether the device is rooted or jailbroken, whether the app was in the background, the call stack with the parts of the program involved, a random Crashlytics installation ID and the Firebase installation ID. The app itself adds only a fixed error code, the severity and cleaned-up program locations to its error reports – no error messages, game content, purchase IDs or user IDs. In addition, Crashlytics reports a session each time the app starts (session ID, Firebase installation ID, device and app details) to work out the share of crash-free sessions. Unless you have opted out of usage analytics, a report also contains the most recent usage events from section 6.

Web: Sentry

In the web app, error reports go to Sentry. The app builds each report from scratch: a fixed error code, the severity, the version and cleaned-up program locations, plus an event ID and the time. When receiving it, Sentry technically sees your IP address and browser identifier. Storing the IP address is switched off in our Sentry project, but Sentry may derive an approximate location (city, country) from the connection. Reports are stored in the EU (Frankfurt am Main).

Crash and error reports are sent regardless of the “Opt out of usage analytics” switch.

Legal basis: our legitimate interest in a stable, secure app and in fixing errors quickly (Art. 6(1)(f) GDPR). In our view, storing the installation ID on your device is strictly necessary for running the app reliably; we rely on § 25(2) no. 2 TDDDG for it.

You can object to this processing on grounds relating to your particular situation by email (section 13). The app does not have a separate switch for crash reports.

8. The web app and the website

Hosting: the web app (play.sudocrime.app) and the website (sudocrime.app) are served by Firebase Hosting (Google). For every request, Google processes your IP address, the time, the address requested, your browser identifier and, where sent, the page you came from. Google states that it keeps IP data for a few months to detect abuse and to provide usage statistics. We do not look at access logs. Legal basis: Art. 6(1)(f) GDPR – no page can be delivered without this processing.

Fonts and images are served from our own hosting; there is no connection to font services such as Google Fonts. The sudocrime.app website sets no cookies and loads no analytics or advertising scripts. Our own scripts provide navigation and the availability notice. These legal pages are displayed without scripts.

Store availability notice: On the website, Firebase Hosting selects a notice using the country derived from your IP address. This only requests a file from our own domain, without an additional location service. We do not request your precise location or create location profiles. We cannot read the country of your Apple or Google account; you can select it yourself for the notice.

Browser storage: apart from the game data in section 3, the services named here keep their own data, in particular: Firebase App Check the current check token (IndexedDB), reCAPTCHA Enterprise data for abuse protection, Google Analytics cookies and a Firebase installation ID (IndexedDB), and Amplitude an ID in local storage – those of Google Analytics and Amplitude only as long as you have not opted out. While you have not, the Amplitude script is also loaded from cdn.amplitude.com, which gives Amplitude your IP address.

9. Contacting us by email

If you write to us, we process your email address, your name if you give it, and the content of your message to answer you (Art. 6(1)(b) GDPR, otherwise point (f)). Our email provider receives and stores the message on our behalf. We delete it once the matter is closed, unless legal retention duties – for business correspondence, for example – require us to keep it longer.

10. Recipients

Processors

These service providers process data on our behalf and on our instructions, under their data processing terms (Art. 28 GDPR):

Google – Firebase Crashlytics, Firebase Installations, Firebase Hosting
Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Ireland, under the Firebase Data Processing and Security Terms. Sub-processors include Google LLC, USA. Privacy and security in Firebase
Google – Cloud Storage for Firebase, Firebase App Check, reCAPTCHA Enterprise
Google Cloud EMEA Limited, 70 Sir John Rogerson’s Quay, Dublin 2, Ireland, under the Google Cloud Platform terms and their Cloud Data Processing Addendum.
Google – Google Analytics for Firebase
Google Ireland Limited (address above), under the Google Analytics terms and the Google Ads Data Processing Terms. Sharing our analytics data with Google to improve other Google products and services is switched off.
Amplitude
Amplitude, Inc., 201 Third Street, Suite 200, San Francisco, CA 94103, USA; data stored in its EU data center (Frankfurt am Main). Amplitude privacy notice
Sentry
Functional Software, Inc. (Sentry), 45 Fremont Street, 8th Floor, San Francisco, CA 94105, USA; storage location EU (Frankfurt am Main). Sentry privacy policy
RevenueCat
RevenueCat, Inc., 1032 E Brandon Blvd #3003, Brandon, FL 33511, USA. RevenueCat privacy policy
Email
our email provider for the gurusense.de mailbox.

Independent controllers

Apple Distribution International Ltd., Hollyhill Industrial Estate, Hollyhill, Cork, Ireland (App Store, payments, App Attest/DeviceCheck, device backup) and Google Ireland Limited (Google Play, payments, Play Integrity, device backup) process data on their own responsibility under their own privacy policies.

Beyond this, we do not pass on data, do not sell it and do not use it for advertising. Authorities receive data only where the law requires us to provide it.

11. Transfers outside the EU

Where we could, we chose storage in the EU: Cloud Storage in Frankfurt am Main, and EU storage for Amplitude and Sentry. Even so, some services also process data outside the European Economic Area, in particular in the USA: Firebase services such as Crashlytics, Hosting and Google Analytics run on Google’s worldwide infrastructure, RevenueCat processes data in the USA, and even with EU storage, access from the USA (for example for operations and support) cannot be ruled out. We rely on these safeguards:

  • Google LLC is certified under the EU-U.S. Data Privacy Framework (DPF), for which the European Commission adopted an adequacy decision in July 2023 (Art. 45 GDPR). The Firebase terms also provide for the EU standard contractual clauses.
  • Amplitude, Inc. is certified under the EU-U.S. Data Privacy Framework; its data processing agreement also includes the EU standard contractual clauses.
  • Functional Software, Inc. (Sentry) is certified under the EU-U.S. Data Privacy Framework.
  • RevenueCat, Inc.: EU standard contractual clauses under Art. 46(2)(c) GDPR (Commission Implementing Decision (EU) 2021/914), included in its data processing agreement.

You can look up the certifications at dataprivacyframework.gov. We will send you a copy of the standard contractual clauses on request.

12. How long data is kept

  • On your device: until you uninstall the app or clear the site data.
  • Google Analytics: event data is deleted automatically after two months; user-level data linked to the pseudonymous app ID, including key events such as the first launch, 14 months after that installation was last active. Aggregate reports not tied to a single installation remain.
  • Amplitude: for as long as we need the data to check that the app works and to improve the game; after that, and at the latest when we stop using Amplitude, we delete it.
  • Firebase Crashlytics: crash reports and related IDs for 90 days; after that, deletion from live and backup systems begins.
  • Sentry: error reports for 90 days at most.
  • Firebase Hosting: IP data for a few months (as stated by Google).
  • Cloud Storage for Firebase: we have not turned on access logs, so we do not store the connection details of a download.
  • Narration: automatic cleanup of anonymous Firebase accounts is enabled. Accounts older than 30 days become eligible for automatic deletion; an exact deletion date is not guaranteed. Guru Backend operation logs are kept for 30 days. Shared recordings of our fixed story texts remain permanently cached.
  • Firebase App Check: attestation material is not kept; a token is valid for one hour in our setup. reCAPTCHA Enterprise follows Google Cloud’s retention periods.
  • RevenueCat: for as long as your purchases should stay restorable. On request, we delete the record; your purchases remain on file with the store and can be fetched again with “Restore purchases”.
  • Emails: until the matter is closed; longer only where the law requires it.

13. Your rights

You have the right of access (Art. 15 GDPR), rectification (Art. 16), erasure (Art. 17), restriction of processing (Art. 18) and data portability (Art. 20). A short email to daniel.defiebre@gurusense.de is enough.

Right to object (Art. 21 GDPR)

Where we process data on the basis of legitimate interests (Art. 6(1)(f) GDPR), you may object at any time on grounds relating to your particular situation. We will then stop processing the data unless we can show compelling legitimate grounds that override your interests, or the processing is needed to establish, exercise or defend legal claims. For usage data, simply turn on the “Opt out of usage analytics” switch under Settings → Privacy – no reason needed.

No account: because Sudocrime works without an account, we usually cannot link stored data to a person (Art. 11 GDPR). For purchases, the order number in the purchase receipt from Apple or Google helps us find the record at RevenueCat. Usage data and crash reports cannot be found without the random ID, which the app does not display. You can still end their collection – with the switch, or by deleting the app or the site data, after which a new, unconnected ID is created.

14. Right to lodge a complaint

You may lodge a complaint with a data protection supervisory authority (Art. 77 GDPR), for example in the country where you live. The authority responsible for us is:

The State Commissioner for Data Protection and Freedom of Information Baden-Württemberg
(Der Landesbeauftragte für den Datenschutz und die Informationsfreiheit Baden-Württemberg)
Lautenschlagerstraße 20
70173 Stuttgart, Germany
www.baden-wuerttemberg.datenschutz.de

15. No obligation to provide data

You are under no legal or contractual obligation to provide us with data. Without the technically required processing, however, stories cannot be downloaded and purchases cannot be completed. You can object to usage data without any disadvantage.

16. No automated decisions

We make no decisions based solely on automated processing that have legal effects on you or similarly affect you in a significant way (Art. 22 GDPR), and we do not profile you. The automatic App Check only decides whether a file is delivered.

17. Children

Sudocrime is meant for adults. The mysteries show no murder methods, no blood and no bodies, but they are not made for children. We do not knowingly collect data from children. If you believe a child has sent us data, please write to us.

18. Changes

We update this policy when the app, the services we use or the law change. The current version is always available at this address and from the app’s settings.

Last updated: 2026-10-22