Datenschutzerklärung (DSGVO)
- 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 (
localStorageunter dem Schlüsselwizzle_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 deineuid, 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 ZeitstempelupdatedAt. -
Sanctuary-Bestenliste (
leaderboards/{uid}): Für authentifizierte Spieler sichtbarer Ranglisteneintrag mituid,personalStage,currentStreak,solvedCount, ausgerüstetem Avatar/Rahmen/Titel (selectedAvatarId,selectedFrameId,selectedTitleId) undupdatedAt(sowie optionalemdisplayName; standardmäßig zeigt die App nur den Namen des gewählten Avatars bzw. ein Pseudonym wieSeeker #ABCDaus den letzten 4 Zeichen deruid). 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) deineuid, 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.
- 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 FunctionverifyPurchase(europe-west3). Diese prüft das Token über die Google Play Android Developer API (androidpublisherv3) und speichert in Firestore unterpurchases/{purchaseToken}folgende Daten:purchaseToken,uid,skuId,packageName,orderId(Google-Play-Bestellnummer),coinsGranted, Club-Berechtigung / membership entitlement,status(GRANTEDoderREVOKED),verifiedAtund ggf.revokedAt. - Rückerstattungen (
playBillingRtdn): Über Google Play Real-Time Developer Notifications (Cloud Pub/Sub-Topicplay-billing-rtdnineurope-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 enthalteneuidkeinem 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 pseudonymeuidzur Verhinderung doppelter Einlösungen. Nach Kontolöschung ist dieuiddauerhaft 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
uidgespeicherten 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