Wizzle Logo Wizzle Riddles & Puzzles
DE EN

Datenschutzerklärung (DSGVO)

Gültig für die Android-App Wizzle – Riddles & Puzzles (Paketname: de.playwizzle.app) und die Website playwizzle.de • Stand: Oktober 2026

Kurzüberblick zur Transparenz:
  • Keine Analyse- oder Crash-Tracker: Wizzle integriert weder Firebase Analytics noch Firebase Crashlytics oder sonstige Drittanbieter-Analyse-SDKs.
  • EU-Serverstandort: Unsere Cloud-Datenbank (Cloud Firestore) und sämtliche Backend-Funktionen (Cloud Functions v2) werden in der Region europe-west3 (Frankfurt am Main, Deutschland) betrieben.
  • Website ohne Tracking: Diese Website lädt keine externen Schriftarten, keine CDNs und setzt keine Tracking-Cookies ein.
  • Selbstbedienungs-Löschung: Du kannst dein Spielerkonto und deine Cloud-Daten jederzeit direkt in der App oder über /delete-account endgültig löschen.

1. Verantwortlicher (Art. 4 Nr. 7 DSGVO)

Verantwortlich für die Datenverarbeitung im Zusammenhang mit der App „Wizzle – Riddles & Puzzles“ und dieser Website ist:

Sebastian Zimmermann
Amberg 5
18055 Rostock
Deutschland
E-Mail: [EMAIL support@playwizzle.de]

2. Datenverarbeitung beim Besuch dieser Website (Firebase Hosting)

Diese statische Website wird über Firebase Hosting (Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Irland / Google LLC, USA) bereitgestellt. Beim Aufruf der Seiten werden durch die Infrastruktur von Firebase Hosting technisch notwendige Server-Logdaten verarbeitet (IP-Adresse, Datum und Uhrzeit des Abrufs, aufgerufene URL, HTTP-Statuscode, Referrer-URL sowie Browser-/Betriebssystem-Kennung).

  • Keine externen Ressourcen oder Tracker: Die Website verwendet ausschließlich lokal eingebundene Systemschriftarten, lokale Bilder und lokales CSS/JS. Es werden keine Analyse-Cookies gesetzt.
  • Lokale Spracheinstellung: Wenn du den Sprachumschalter (DE/EN) betätigst, wird deine Auswahl lokal im Browser (localStorage unter dem Schlüssel wizzle_lang) gespeichert. Diese Information verlässt dein Endgerät nicht.
  • Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an der sicheren, stabilen und performanten Bereitstellung der Website sowie Abwehr von Angriffen) und § 25 Abs. 2 Nr. 2 TDDDG.

3. Datenverarbeitung in der Android-App „Wizzle“

3.1 Authentifizierung: Gast-Konto & optionales Google-Konto (Firebase Authentication)

Damit unser 100 % server-authoritatives Spielsystem deinen Fortschritt ohne Registrierungszwang zuordnen kann, meldet sich die App beim ersten Start automatisch über Firebase Anonymous Authentication an (AuthManager.ensureSignedIn()). Dabei wird eine zufällige, pseudonyme Nutzerkennung (uid) erzeugt.

Optional kannst du dein Gast-Konto in den Einstellungen (Boutique / Profil → Cloud Save) über den AndroidX Credential Manager und Google Identity Services (linkWithCredential / signInWithCredential) mit deinem Google-Konto verknüpfen, um deinen Spielstand geräteübergreifend zu sichern. Hierbei werden deine Google-E-Mail-Adresse (email), deine Google-OAuth-Kennung sowie Zeitstempel der Kontoerstellung und letzten Anmeldung in Firebase Authentication gespeichert.

  • Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung zur Bereitstellung des Spielkontos und der Cloud-Sicherung).

3.2 Spielstand, Bestenliste & Cloud Functions in Frankfurt (europe-west3)

Direkte Schreibzugriffe vom Endgerät auf die Datenbank sind durch Sicherheitsregeln gesperrt (allow write: if false). Alle Spielaktionen werden über Firebase Cloud Functions v2 in der Region europe-west3 (Frankfurt am Main) geprüft und in Cloud Firestore (europe-west3) gespeichert:

  • Spielerprofil (users/{uid}): Speichert deine uid, aktuelles Level (personalStage), Münzbestand (coins), Serien-Zähler (currentStreak, dailyLoginStreak, streakShieldsCount), gelöste Rätsel-IDs und -Kategorien (solvedRiddleIds, solvedRiddleTypes), freigeschaltete Erfolge (unlockedAchievementIds), Statistikzähler (consecutiveNoHintSolves, hardModeSolvesCount), das aktuell zugewiesene Rätsel samt Seed und freigeschalteten Hinweisen (currentActiveRiddleId, currentActiveVariantSeed, unlockedHintTierOnActive, unlockedHintsOnActive, revealedFirstLetterOnActive, eliminatedTileIndicesOnActive, revealedSlotsOnActive), freigeschaltete und ausgerüstete Kosmetik-Elemente (selectedAvatarId, unlockedAvatarIds, selectedFrameId, unlockedFrameIds, selectedTitleId, unlockedTitleIds), UTC-Datumsmarkierungen für tägliche Boni und Werbelimits (lastDailyEnigmaDate, lastDailyRewardDate, lastRewardedAdDate, rewardedAdsClaimedToday, dailyHintDate, dailyHintTierUsed), den Wizzle-Club-Status sowie den Zeitstempel updatedAt.
  • Sanctuary-Bestenliste (leaderboards/{uid}): Für authentifizierte Spieler sichtbarer Ranglisteneintrag mit uid, personalStage, currentStreak, solvedCount, ausgerüstetem Avatar/Rahmen/Titel (selectedAvatarId, selectedFrameId, selectedTitleId) und updatedAt (sowie optionalem displayName; standardmäßig zeigt die App nur den Namen des gewählten Avatars bzw. ein Pseudonym wie Seeker #ABCD aus den letzten 4 Zeichen der uid). Klarnamen oder E-Mail-Adressen werden niemals in der Bestenliste veröffentlicht.
  • Rätsel-Inhalte (riddles/{riddleId}, daily_enigmas/{dateKey} & Firebase Cloud Storage): Öffentliche Rätselfragen und Grafiken werden lesend synchronisiert.
  • Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (Bereitstellung der Kernfunktionen des Spiels).

3.3 Missbrauchsschutz, Rate-Limiting & Geräte-Integrität (Firebase App Check / Play Integrity)

Zum Schutz vor automatisierten Brute-Force-Angriffen, Manipulationen der Spielökonomie und unautorisierten API-Aufrufen setzen wir zwei Schutzmechanismen ein:

  • Server-seitiges Rate-Limiting (rate_limits/{uid}): Speichert bei Antwortversuchen (submitAnswer) deine uid, das aktuelle Zeitfenster (windowStartMs), die Anzahl der Versuche (attemptCount, maximal 15 Versuche pro 60 Sekunden), Fehlversuche in Folge beim selben Rätsel (wrongStreakCount, lastRiddleId) sowie eine temporäre Sperrzeit (lockedUntilMs, 30 Sekunden Pause nach 8 falschen Antworten in Folge).
  • Firebase App Check mit Google Play Integrity API: Alle aufrufbaren Cloud Functions erzwingen enforceAppCheck: true. In Release-Versionen nutzt die App die Google Play Integrity API (PlayIntegrityAppCheckProviderFactory). Dabei prüft Google Play Services Geräte- und App-Integritätsmerkmale auf deinem Android-Gerät, um ein kurzlebiges kryptografisches Attestierungs-Token auszustellen, das bestätigt, dass die Anfrage von einer unveränderten Original-App stammt.
  • Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an IT-Sicherheit, Betrugsprävention und Schutz der Server-Infrastruktur).

3.4 Werbung & Einwilligungsmanagement (Google AdMob & Google UMP)

Wizzle nutzt Google AdMob (com.google.android.gms:play-services-ads) ausschließlich für freiwillige Belohnungs-Videos. Mitglieder des Wizzle Club sehen keine Werbe-Angebote.

  1. Freiwillige Belohnungs-Videos (Rewarded Video Ads): Nur auf deine Anfrage, z. B. für Münzen oder einen zusätzlichen Skip; maximal 5 pro UTC-Tag.

Einwilligung vor Initialisierung (Google UMP SDK): Beim Start ruft die App zunächst die Google User Messaging Platform (UMP) (com.google.android.ump:user-messaging-platform) auf und zeigt – sofern im Europäischen Wirtschaftsraum (EWR), dem Vereinigten Königreich oder der Schweiz erforderlich – das zertifizierte DSGVO/TCF-Einwilligungsformular an. Das AdMob-SDK (MobileAds.initialize) wird erst initialisiert, wenn consentInfo.canRequestAds() dies zulässt.

Verarbeitete Daten durch AdMob: Je nach deiner Auswahl im UMP-Dialog verarbeitet Google AdMob deine IP-Adresse, Geräte- und Netzwerkinformationen, die Google-Werbe-ID (com.google.android.gms.permission.AD_ID / AAID), Anzeigeninteraktionen sowie deinen Einwilligungsstatus.

Server-Side Verification (SSV) für Belohnungs-Videos: Wenn du freiwillig ein Belohnungs-Video ansiehst, übergibt die App deine uid und eine zufällig generierte Transaktions-ID (ssv_<timestamp>_<uuid>) über ServerSideVerificationOptions an AdMob. AdMob ruft anschließend unsere Cloud Function admobSsvCallback (in europe-west3) auf, die die kryptografische ECDSA-Signatur von Google prüft und den Datensatz in ad_rewards/{transactionId} (Felder: transactionId, uid, adUnit, rewardItem, rewardAmount, customData, status: "VERIFIED", claimed, verifiedAt, claimedAt) speichert, damit dir die Münzen über claimAdReward gutgeschrieben werden können.

  • Rechtsgrundlage: Art. 6 Abs. 1 lit. a DSGVO i. V. m. § 25 Abs. 1 TDDDG (Einwilligung über das UMP-Consent-Banner für personalisierte Werbung und den Zugriff auf Gerätekennungen); für die kryptografische SSV-Belohnungsgutschrift Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung). Du kannst deine Werbe-Einwilligung jederzeit in den Android-Systemeinstellungen (Google → Werbung) oder durch Zurücksetzen der App-Daten widerrufen bzw. ändern.

3.5 In-App-Käufe (Google Play Billing v7, Google Play Developer API & RTDN)

In der App können virtuelle Münzpakete (coins_250, coins_800, coins_2500) sowie das Monatsabo Wizzle Club über Google Play Billing (com.android.billingclient:billing-ktx) erworben werden.

  • Keine Zahlungsdaten bei uns: Die Zahlungsabwicklung erfolgt ausschließlich über Google Play (Google Ireland Limited). Wir erhalten zu keinem Zeitpunkt deine Kreditkarten-, Bank- oder Rechnungsadressdaten.
  • Server-seitige Kaufprüfung (purchases/{purchaseToken}): Nach Abschluss eines Kaufs sendet die App die Produkt-ID (skuId) und das Kauf-Token (purchaseToken) an unsere Cloud Function verifyPurchase (europe-west3). Diese prüft das Token über die Google Play Android Developer API (androidpublisher v3) und speichert in Firestore unter purchases/{purchaseToken} folgende Daten: purchaseToken, uid, skuId, packageName, orderId (Google-Play-Bestellnummer), coinsGranted, Club-Berechtigung / membership entitlement, status (GRANTED oder REVOKED), verifiedAt und ggf. revokedAt.
  • Rückerstattungen (playBillingRtdn): Über Google Play Real-Time Developer Notifications (Cloud Pub/Sub-Topic play-billing-rtdn in europe-west3) informiert Google Play unser Backend automatisch, wenn ein Kauf storniert oder erstattet wurde, woraufhin die entsprechenden Münzen bzw. die Wizzle-Club-Mitgliedschaft angepasst werden.
  • Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung), Art. 6 Abs. 1 lit. c DSGVO (gesetzliche Aufbewahrungspflichten nach Steuer- und Handelsrecht) sowie Art. 6 Abs. 1 lit. f DSGVO (Verhinderung von doppelter Token-Einlösung und Betrug).

3.6 Google Play Spiele-Dienste (Play Games Services v2)

Die App integriert Google Play Games Services v2 (com.google.android.gms:play-services-games-v2). Wenn du auf deinem Gerät bei Google Play Spiele angemeldet bist, synchronisiert die App deine 36 im Spielverlauf serverseitig freigeschalteten Erfolge (Achievements) mit deinem Google-Play-Spiele-Profil (PlayGames.getAchievementsClient) und ermöglicht das Öffnen der nativen Play-Games-Erfolgsübersicht. Sofern du nicht bei Play Games angemeldet bist, werden deine Erfolge ausschließlich im internen „Trophy Sanctuary“ der App angezeigt.

  • Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (Bereitstellung der plattformweiten Erfolgsfunktionen).

3.7 Lokale Datenspeicherung auf dem Endgerät (Room SQLite & SharedPreferences)

Auf deinem Android-Gerät speichert die App im geschützten internen App-Speicher:

  • Room-Datenbank (wizzle_server_auth_v2.db): Einen Offline-Cache der öffentlichen Rätsel (riddles), eine lokale Kopie deines Spielstands (player_progress) sowie eine Offline-Warteschlange (pending_submissions), die bei fehlender Internetverbindung eingereichte Antworten zwischenspeichert und nach erfolgreicher Übermittlung an den Server sofort wieder löscht.
  • SharedPreferences (wizzle_sound_prefs): Speichert ausschließlich deine beiden Audio-Schalter für Soundeffekte (sfx_enabled) und Hintergrundmusik (music_enabled).
  • Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO und § 25 Abs. 2 Nr. 2 TDDDG (unbedingt erforderlich für den vom Nutzer gewünschten Offline- und App-Betrieb).

3.8 Keine Analyse- oder Absturzberichte (Kein Analytics / Kein Crashlytics)

In der App sind weder Google Analytics for Firebase noch Firebase Crashlytics oder vergleichbare Telemetrie-/Profiling-Dienste eingebunden.

4. Auftragsverarbeiter, Empfänger & Drittlandtransfer

Dienst / Funktion Anbieter / Empfänger Rolle & Standort
Cloud Firestore, Cloud Functions v2, Cloud Storage, Cloud Pub/Sub Google Ireland Limited (Dublin, Irland) / Google Cloud EMEA Limited Auftragsverarbeiter (Art. 28 DSGVO) • Region europe-west3 (Frankfurt, Deutschland)
Firebase Authentication, Firebase App Check (Play Integrity), Firebase Hosting Google Ireland Limited / Google LLC (1600 Amphitheatre Parkway, Mountain View, CA 94043, USA) Auftragsverarbeiter • EU / global (USA)
Google AdMob & User Messaging Platform (UMP) Google Ireland Limited / Google LLC Eigenständiger / gemeinsamer Verantwortlicher für Werbeauslieferung • EU / USA
Google Play Billing & Google Play Games Services v2 Google Ireland Limited / Google LLC Eigenständiger Verantwortlicher für den Google Play Store & Play Games • EU / USA

Datenübermittlung in Drittländer (USA): Soweit im Rahmen von Firebase Authentication, Firebase Hosting (CDN), App Check oder AdMob personenbezogene Daten an die Google LLC in den USA übermittelt werden, stützt sich diese Übermittlung auf den Angemessenheitsbeschluss der Europäischen Kommission zum EU-US Data Privacy Framework (DPF) gemäß Art. 45 DSGVO (Google LLC ist unter dem DPF zertifiziert) sowie ergänzend auf die EU-Standardvertragsklauseln (SCCs) gemäß Art. 46 Abs. 2 lit. c DSGVO. Weitere Informationen findest du unter https://firebase.google.com/support/privacy und https://policies.google.com/privacy.

5. Speicherdauer & Kontolöschung

  • Spielerprofil, Bestenliste, Rate-Limits & Auth-Konto (users/{uid}, leaderboards/{uid}, rate_limits/{uid}, Firebase Auth): Werden gespeichert, solange du das Spiel nutzt. Sobald du in der App (Boutique / Profil → Konto & Daten löschen) oder über unser Web-Formular unter /delete-account die Löschung auslöst, werden diese Datensätze sowie dein Firebase-Authentication-Konto sofort und unwiderruflich gelöscht.
  • In-App-Kaufbelege (purchases/{purchaseToken}): Werden zur Erfüllung gesetzlicher handels- und steuerrechtlicher Aufbewahrungspflichten (§ 257 HGB, § 147 AO – in der Regel 6 bis 10 Jahre) sowie zur Abwicklung von Google-Play-Rückerstattungen (RTDN) aufbewahrt. Nach Löschung deines Kontos ist die darin enthaltene uid keinem aktiven Konto oder einer E-Mail-Adresse mehr zuordenbar.
  • AdMob-SSV-Transaktionsprotokolle (ad_rewards/{transactionId}): Enthalten keine Klarnamen oder E-Mail-Adressen, sondern lediglich die Transaktions-ID und die pseudonyme uid zur Verhinderung doppelter Einlösungen. Nach Kontolöschung ist die uid dauerhaft verwaist.
  • Technische Server-Logs (Firebase Hosting / Cloud Functions): Werden gemäß den Standardvorgaben von Google Cloud für maximal 30 Tage vorgehalten und danach automatisch rotiert/gelöscht.

6. Deine Rechte als betroffene Person (Art. 15–21, Art. 7 Abs. 3 DSGVO)

Dir stehen gegenüber uns folgende gesetzliche Datenschutzrechte zu:

  • Auskunftsrecht (Art. 15 DSGVO): Du kannst Auskunft über die von uns zu deiner Person bzw. deiner uid gespeicherten Daten verlangen.
  • Recht auf Berichtigung (Art. 16 DSGVO): Du kannst die Berichtigung unrichtiger Daten verlangen.
  • Recht auf Löschung / „Recht auf Vergessenwerden“ (Art. 17 DSGVO): Du kannst die Löschung deiner Daten verlangen oder diese jederzeit selbstständig in der App sowie unter https://playwizzle.de/delete-account durchführen.
  • Recht auf Einschränkung der Verarbeitung (Art. 18 DSGVO).
  • Recht auf Datenübertragbarkeit (Art. 20 DSGVO): Du hast das Recht, Daten, die wir auf Grundlage deiner Einwilligung oder zur Vertragserfüllung verarbeiten, in einem strukturierten, gängigen und maschinenlesbaren Format zu erhalten.
  • Widerspruchsrecht (Art. 21 DSGVO): Soweit wir Daten auf Grundlage unseres berechtigten Interesses (Art. 6 Abs. 1 lit. f DSGVO) verarbeiten, kannst du aus Gründen, die sich aus deiner besonderen Situation ergeben, jederzeit Widerspruch einlegen.
  • Widerruf von Einwilligungen (Art. 7 Abs. 3 DSGVO): Eine erteilte Einwilligung (z. B. für personalisierte Werbung im UMP-Dialog) kannst du jederzeit mit Wirkung für die Zukunft widerrufen.

Zur Ausübung deiner Rechte genügt eine formlose E-Mail an support@playwizzle.de.

7. Beschwerderecht bei einer Aufsichtsbehörde (Art. 77 DSGVO)

Unbeschadet eines anderweitigen verwaltungsrechtlichen oder gerichtlichen Rechtsbehelfs steht dir das Recht auf Beschwerde bei einer Datenschutz-Aufsichtsbehörde zu, insbesondere in dem Mitgliedstaat deines gewöhnlichen Aufenthaltsorts, deines Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes.

In Deutschland kannst du dich unter anderem an die für den Sitz des Verantwortlichen zuständige Landesdatenschutzbehörde ([ZUSTÄNDIGE LANDESDATENSCHUTZBEHÖRDE GEMÄSS BUNDESLAND DER IMPRESSUMSADRESSE]) oder an die Bundesbehörde wenden:

Der Bundesbeauftragte für den Datenschutz und die Informationsfreiheit (BfDI)
Graurheindorfer Str. 153, 53117 Bonn, Deutschland
Website: https://www.bfdi.bund.de

Privacy Policy (GDPR)

Applicable to the Android app Wizzle – Riddles & Puzzles (Package: de.playwizzle.app) and the website playwizzle.de • Last updated: October 2026

Privacy at a Glance:
  • No Analytics or Crash SDKs: Wizzle integrates neither Firebase Analytics nor Firebase Crashlytics, nor any other third-party analytics/telemetry SDK.
  • EU Data Residency: Our Cloud Firestore database and all backend Cloud Functions v2 operate in the europe-west3 region (Frankfurt am Main, Germany).
  • Zero-Tracking Website: This website loads no external fonts, no external CDNs, and sets no tracking cookies.
  • Instant Self-Service Deletion: You can permanently delete your account and cloud data at any time directly inside the app or via /delete-account.

1. Data Controller (Art. 4(7) GDPR)

The controller responsible for data processing in connection with the "Wizzle – Riddles & Puzzles" mobile application and this website is:

Sebastian Zimmermann
Amberg 5
18055 Rostock
Germany
Email: [EMAIL support@playwizzle.de]

2. Data Processing on This Website (Firebase Hosting)

This static website is hosted via Firebase Hosting (Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Ireland / Google LLC, USA). When you access this website, Firebase Hosting processes technically necessary server connection logs (IP address, date and time of request, requested URL path, HTTP status code, referrer, and user-agent header).

  • No External Fonts, CDNs, or Trackers: All stylesheets, scripts, and images are served locally from the same origin, using system fonts. No tracking cookies or analytics scripts are used.
  • Local Language Preference: Using the language toggle (DE/EN) stores your choice locally in your browser's localStorage under the key wizzle_lang. This value is never transmitted to any server.
  • Legal Basis: Art. 6(1)(f) GDPR (legitimate interest in secure, reliable delivery of the website and defense against malicious requests) and Section 25(2) No. 2 TDDDG.

3. Data Processing in the "Wizzle" Android App

3.1 Authentication: Anonymous Guest Account & Optional Google Account Linking (Firebase Auth)

Because Wizzle uses a 100% server-authoritative gameplay architecture, the app automatically signs in on first launch via Firebase Anonymous Authentication (AuthManager.ensureSignedIn()) without requiring registration. This creates a random, pseudonymous user identifier (uid).

You may optionally link your guest profile to a Google Account in Boutique / Profile → Cloud Save using AndroidX Credential Manager and Google Identity Services (linkWithCredential / signInWithCredential) so your progress carries across devices. When linked, Firebase Authentication stores your Google email address (email), your Google OAuth provider identifier, and account creation/sign-in timestamps.

  • Legal Basis: Art. 6(1)(b) GDPR (performance of a contract to provide player progression and cross-device cloud save).

3.2 Gameplay State, Leaderboards & Cloud Functions in Frankfurt (europe-west3)

Direct client writes to Firestore are blocked by security rules (allow write: if false). All gameplay mutations are executed via Firebase Cloud Functions v2 in region europe-west3 (Frankfurt, Germany) and persisted in Cloud Firestore (europe-west3):

  • Player Profile (users/{uid}): Stores your uid, current level (personalStage), coin balance (coins), streak counters (currentStreak, dailyLoginStreak, streakShieldsCount), solved riddle IDs and types (solvedRiddleIds, solvedRiddleTypes), unlocked achievements (unlockedAchievementIds), precision counters (consecutiveNoHintSolves, hardModeSolvesCount), active riddle state and unlocked hints (currentActiveRiddleId, currentActiveVariantSeed, unlockedHintTierOnActive, unlockedHintsOnActive, revealedFirstLetterOnActive, eliminatedTileIndicesOnActive, revealedSlotsOnActive), unlocked/equipped cosmetics (selectedAvatarId, unlockedAvatarIds, selectedFrameId, unlockedFrameIds, selectedTitleId, unlockedTitleIds), UTC date markers for daily rewards and ad limits (lastDailyEnigmaDate, lastDailyRewardDate, lastRewardedAdDate, rewardedAdsClaimedToday, dailyHintDate, dailyHintTierUsed), Wizzle Club membership status, and updatedAt timestamp.
  • Sanctuary Leaderboard (leaderboards/{uid}): Readable by authenticated players to render the in-app leaderboard. Contains uid, personalStage, currentStreak, solvedCount, equipped cosmetic IDs (selectedAvatarId, selectedFrameId, selectedTitleId), and updatedAt (plus an optional displayName; by default the app displays only the equipped avatar title or a pseudonym derived from the last 4 characters of your uid, such as Seeker #ABCD). Real names and email addresses are never published on the leaderboard.
  • Public Riddles (riddles/{riddleId}, daily_enigmas/{dateKey} & Firebase Cloud Storage): Read-only puzzle prompts and visual clues downloaded by authenticated clients.
  • Legal Basis: Art. 6(1)(b) GDPR (performance of the game service).

3.3 Anti-Cheat, Rate Limiting & Device Attestation (Firebase App Check / Play Integrity)

To protect the server-authoritative economy against brute-force guessing, tampered APKs, and automated abuse, Wizzle uses two security mechanisms:

  • Server-Side Rate Limiting (rate_limits/{uid}): Records uid, sliding window start time (windowStartMs), attempt count (attemptCount, max 15 submissions per 60 seconds), consecutive wrong guesses on the active riddle (wrongStreakCount, lastRiddleId), and temporary cooldown timestamp (lockedUntilMs, 30-second cooldown after 8 consecutive wrong guesses).
  • Firebase App Check with Google Play Integrity API: All callable Cloud Functions enforce enforceAppCheck: true. Release builds use the Google Play Integrity API (PlayIntegrityAppCheckProviderFactory), which evaluates device and application integrity signals via Google Play Services to issue a cryptographic attestation token confirming requests originate from an unmodified Wizzle binary on a genuine Android device.
  • Legal Basis: Art. 6(1)(f) GDPR (legitimate interest in IT security, anti-cheat enforcement, and API abuse prevention).

3.4 Advertising & Consent Management (Google AdMob & Google UMP)

Wizzle uses Google AdMob (com.google.android.gms:play-services-ads) solely for optional rewarded video ads. Wizzle Club members see no ad prompts.

  1. Optional Rewarded Video Ads: Shown only when you choose to watch one, e.g. for Coins or an extra skip; up to 5 per UTC day.

Consent Before Initialization (Google UMP SDK): On launch, the app queries the Google User Messaging Platform (UMP) (com.google.android.ump:user-messaging-platform) and presents a certified GDPR/TCF consent dialog where required in the EEA, UK, or Switzerland. The Mobile Ads SDK (MobileAds.initialize) is only initialized after consentInfo.canRequestAds() permits ad requests.

Data Processed by AdMob: Depending on the choices made in the UMP consent dialog, Google AdMob may process your IP address, device and network metadata, the Google Advertising ID (com.google.android.gms.permission.AD_ID / AAID), ad impression/click events, and consent strings.

Server-Side Verification (SSV) for Rewarded Video Ads: When you watch a voluntary rewarded video ad, the app passes your uid and a randomly generated transaction ID (ssv_<timestamp>_<uuid>) via ServerSideVerificationOptions. Google AdMob invokes our admobSsvCallback HTTPS Cloud Function in europe-west3, which verifies Google's ECDSA SHA-256 signature and records ad_rewards/{transactionId} (fields: transactionId, uid, adUnit, rewardItem, rewardAmount, customData, status: "VERIFIED", claimed, verifiedAt, claimedAt) so that claimAdReward can credit your Coins.

  • Legal Basis: Art. 6(1)(a) GDPR and Section 25(1) TDDDG (consent collected via the UMP consent form for personalized ads and advertising identifiers); Art. 6(1)(b) GDPR for SSV reward fulfillment. You can withdraw or modify your ad consent or reset your Advertising ID at any time in your Android system settings (Google → Ads) or by clearing app storage.

3.5 In-App Purchases (Google Play Billing v7, Google Play Developer API & RTDN)

Players may purchase optional Coin Packs (coins_250, coins_800, coins_2500) or the monthly Wizzle Club subscription via Google Play Billing (com.android.billingclient:billing-ktx).

  • No Payment Card Data Stored by Wizzle: All financial transactions are processed directly by Google Play (Google Ireland Limited). We never receive or store your credit card, bank account, or billing address details.
  • Server-Side Purchase Verification (purchases/{purchaseToken}): After checkout, the app sends skuId and purchaseToken to our verifyPurchase Cloud Function (europe-west3), which validates the token against the Google Play Android Developer API (androidpublisher v3) and stores a verification record in purchases/{purchaseToken} containing: purchaseToken, uid, skuId, packageName, orderId, coinsGranted, Club-Berechtigung / membership entitlement, status (GRANTED or REVOKED), verifiedAt, and revokedAt.
  • Refund Handling (playBillingRtdn): Real-Time Developer Notifications on the play-billing-rtdn Cloud Pub/Sub topic in europe-west3 notify our backend of canceled or refunded orders so entitlements can be adjusted accordingly.
  • Legal Basis: Art. 6(1)(b) GDPR (contract performance), Art. 6(1)(c) GDPR (statutory tax and commercial retention obligations), and Art. 6(1)(f) GDPR (prevention of purchase token replay fraud).

3.6 Google Play Games Services v2

The app integrates Google Play Games Services v2 (com.google.android.gms:play-services-games-v2). If you are signed into Google Play Games on your device, the app synchronizes the 36 server-unlocked achievements with your Play Games profile (PlayGames.getAchievementsClient) and lets you open the native Play Games Achievements UI. If you are not signed into Play Games, achievements are displayed locally in the in-app Trophy Sanctuary.

  • Legal Basis: Art. 6(1)(b) GDPR (provision of achievement synchronization).

3.7 Local On-Device Storage (Room SQLite & SharedPreferences)

Inside the app's private sandbox storage on your Android device, Wizzle stores:

  • Room Database (wizzle_server_auth_v2.db): A local read-through cache of published riddles (riddles), cached player progress (player_progress), and an offline answer queue (pending_submissions) that temporarily holds guesses made while offline and deletes them immediately once confirmed by the server.
  • SharedPreferences (wizzle_sound_prefs): Stores only the two boolean audio preferences sfx_enabled and music_enabled.
  • Legal Basis: Art. 6(1)(b) GDPR and Section 25(2) No. 2 TDDDG (strictly necessary to provide offline caching and user-requested app settings).

3.8 No Analytics or Crash Reporting SDKs

Wizzle does not include Firebase Analytics, Firebase Crashlytics, or any third-party behavioral tracking or crash-reporting SDKs.

4. Processors, Recipients & International Data Transfers

Service / Component Processor / Recipient Role & Region
Cloud Firestore, Cloud Functions v2, Cloud Storage, Cloud Pub/Sub Google Ireland Limited (Dublin, Ireland) / Google Cloud EMEA Limited Data Processor (Art. 28 GDPR) • Region europe-west3 (Frankfurt, Germany)
Firebase Authentication, Firebase App Check (Play Integrity), Firebase Hosting Google Ireland Limited / Google LLC (1600 Amphitheatre Parkway, Mountain View, CA 94043, USA) Data Processor • EU / Global (USA)
Google AdMob & User Messaging Platform (UMP) Google Ireland Limited / Google LLC Independent / Joint Controller for ad delivery • EU / USA
Google Play Billing & Google Play Games Services v2 Google Ireland Limited / Google LLC Independent Controller for Google Play Store & Play Games • EU / USA

Third-Country Transfers (USA): Where personal data is transferred to Google LLC in the United States (for example, via Firebase Authentication, Firebase Hosting CDN edges, App Check, or AdMob), transfers are safeguarded by the European Commission's adequacy decision under the EU-US Data Privacy Framework (DPF) (Art. 45 GDPR, under which Google LLC is certified) as well as the EU Standard Contractual Clauses (SCCs) (Art. 46(2)(c) GDPR). For details, see https://firebase.google.com/support/privacy and https://policies.google.com/privacy.

5. Data Retention & Deletion

  • Player Profile, Leaderboard, Rate Limits & Auth Identity (users/{uid}, leaderboards/{uid}, rate_limits/{uid}, Firebase Auth): Retained while your account remains active. When you trigger account deletion in-app (Boutique / Profile → Delete Account & Data) or via our web portal at /delete-account, all three Firestore documents and your Firebase Auth user record are deleted immediately and permanently.
  • In-App Purchase Records (purchases/{purchaseToken}): Retained to comply with statutory commercial and tax retention laws in Germany (Section 257 HGB, Section 147 AO — generally 6 to 10 years) and to handle RTDN refunds. Once your account is deleted, the uid stored on historical purchase records is permanently orphaned from any email or active user profile.
  • AdMob SSV Reward Ledger (ad_rewards/{transactionId}): Contains no name or email address — only the transaction ID and pseudonymous uid to prevent duplicate reward claims. Once your account is deleted, the uid is permanently orphaned.
  • Technical Infrastructure Logs (Firebase Hosting / Cloud Functions): Retained temporarily in accordance with Google Cloud's standard log retention schedule (typically up to 30 days) and then automatically deleted.

6. Your Rights Under the GDPR (Art. 15–21 & Art. 7(3) GDPR)

Under the General Data Protection Regulation, you have the following rights:

  • Right of Access (Art. 15 GDPR): Request confirmation of what personal data associated with your uid or email is processed.
  • Right to Rectification (Art. 16 GDPR): Request correction of inaccurate personal data.
  • Right to Erasure / "Right to be Forgotten" (Art. 17 GDPR): Delete your account and cloud data at any time in-app, via https://playwizzle.de/delete-account, or by contacting us.
  • Right to Restriction of Processing (Art. 18 GDPR).
  • Right to Data Portability (Art. 20 GDPR): Receive your personal data in a structured, commonly used, machine-readable format.
  • Right to Object (Art. 21 GDPR): Object at any time to processing carried out on the basis of legitimate interests (Art. 6(1)(f) GDPR).
  • Right to Withdraw Consent (Art. 7(3) GDPR): Withdraw any consent previously granted (such as ad personalization consent in the UMP dialog) at any time with future effect.

To exercise any of these rights, contact us at support@playwizzle.de.

7. Right to Lodge a Complaint with a Supervisory Authority (Art. 77 GDPR)

Without prejudice to any other administrative or judicial remedy, you have the right to lodge a complaint with a data protection supervisory authority, in particular in the EU Member State of your habitual residence, place of work, or place of the alleged infringement.

In Germany, you may contact the state data protection authority responsible for the controller's registered seat ([COMPETENT STATE DATA PROTECTION AUTHORITY / LANDESDATENSCHUTZBEHÖRDE FOR CONTROLLER ADDRESS]) or the federal authority:

The Federal Commissioner for Data Protection and Freedom of Information (BfDI)
Graurheindorfer Str. 153, 53117 Bonn, Germany
Website: https://www.bfdi.bund.de

Wizzle Logo Wizzle
  • Startseite Home
  • Datenschutzerklärung Privacy Policy
  • Nutzungsbedingungen (AGB) Terms of Service
  • Konto & Daten löschen Delete Account & Data
  • Impressum Legal Notice (Impressum)
© 2026 Wizzle (support@playwizzle.de). Kein Tracking, keine externen Schriftarten oder CDNs. No tracking, no external fonts or CDNs. Deutsch • English