Batak — Privacy Policy
Batak is a Turkish trick-taking card game for 4 players. It supports solo mode (1 human vs 3 AI) and online multiplayer (LAN auto-discovery plus public rooms via our server at batak.albooren.com).
Last updated: May 9, 2026 · Effective: May 9, 2026Summary
batak.albooren.com for public online rooms. No account system; player nicknames are user-entered and pseudonymous.Data We Process
| Data type | Purpose | Legal basis | Retention |
|---|---|---|---|
| Player nickname (user-entered) | Display in multiplayer rooms | GDPR 6(1)(b) contract performance | Server memory: lifetime of the room. Local device: until cleared |
| Room code, rejoin token | Reconnection after network drop | GDPR 6(1)(b) contract performance | Server memory: up to several hours (until room ends) |
| IP address (connection metadata) | WebSocket transport, rate limiting (5 room creates/minute/IP), abuse prevention | GDPR 6(1)(f) legitimate interests (security) | Server stdout logs only (no disk persistence inside the app). Logs survive only as long as the host's container/log driver retains them |
| Advertising identifier (IDFA / GAID) | AdMob ad delivery, frequency capping, fraud prevention | GDPR 6(1)(a) consent where personalised (ATT/UMP); (f) legitimate interests where non-personalised | Per Google AdMob retention policies |
| Firebase Analytics pseudonymous ID (App Instance ID) + auto-collected events (first_open, app_update, session_start, screen_view) with device model, OS version, app version, country-level location | Anonymous usage analytics, product improvement | GDPR 6(1)(a) consent (via UMP) or (f) legitimate interests | 2 months (current Firebase Analytics configuration; maximum supported is 14 months) |
| Crash reports (stack trace, OS version, device model, app version, locale, time of crash) — release builds only, disabled in debug | Diagnose and fix bugs that cause the app to crash | GDPR 6(1)(f) legitimate interests | Per Firebase Crashlytics retention (Google retains for up to 90 days) |
| Device-local settings and scores | App functionality | Not personal data transmitted to us | On device only (SharedPreferences); user-deletable |
We do not request or collect real name, email, phone number, precise location, contacts, photos, microphone, or camera access. Player nicknames, though user-entered, should be treated as pseudonymous; we recommend against using your legal name. Batak does not sell in-app purchases.
Third-Party Services
Google AdMob
Ads support free access. AdMob processes advertising identifiers, IP address, device model, and coarse location (city/country level) per its advertising policy. On iOS we request App Tracking Transparency consent; declining limits ads to contextual (non-personalised). The iOS bundle declares one SKAdNetwork identifier (Google's); enabling AdMob mediation with additional ad networks would require declaring more.
Firebase Analytics
Firebase Analytics provides anonymous usage statistics (screens used, session duration, device/OS distribution, multiplayer events such as mp_room_created, mp_room_joined, mp_disconnect, mp_reconnect) to prioritise product improvements. Firebase assigns a pseudonymous App Instance ID; we do not transmit real names, emails, or other identifiers we have linked to your real identity. Event and user-level retention is configured to 2 months, the minimum supported by Firebase Analytics (maximum is 14 months), in line with the data-minimisation principle of GDPR Art. 5(1)(e). Aggregated standard reports (e.g., daily-active-user counts) are retained independently by Google and are not user-identifiable. Users may opt out by declining the ATT prompt (iOS) or the Google UMP consent prompt (Android), or by resetting the advertising identifier. Firebase privacy and security.
Firebase Crashlytics
Crashlytics is enabled in release builds only and disabled in debug builds. When the app crashes or hits an uncaught exception, Crashlytics sends a stack trace together with device model, OS version, app version, locale, the Firebase Installation ID, and the time of the crash. We use this strictly to find and fix bugs. Player nicknames, room codes, rejoin tokens, and game state are not sent to Crashlytics. Google retains Crashlytics data for up to 90 days. Firebase Performance Monitoring is not used.
Self-Hosted Game Server (batak.albooren.com)
Public room creation and online multiplayer connect to a Dart WebSocket server we operate. The server keeps room codes, player nicknames, game state (hands, scores, cards played), and rejoin tokens in memory only; no persistent database is used. When a room ends, the data is discarded. Operational safeguards:
- Room code format validation (4–6 uppercase letters)
- 5 room creations per minute per IP
- Global cap of 200 concurrent WebSocket connections
- 500 concurrent room cap
- Automatic stale-room cleanup (rooms empty for 2 minutes or older than 3 hours are deleted)
- Server emits diagnostic logs (IP + event timestamp) to standard output only; the application itself does not persist them to disk. Persistence is limited to whatever the container or hosting platform's log driver retains
- TLS (HTTPS/WSS) in transit
LAN Multiplayer (Bonjour / mDNS)
To discover devices on the same Wi-Fi network, the app uses Apple Bonjour on iOS (requires Local Network permission) and Android NSD. All traffic stays on your local network; no data is transmitted to us or to third parties during LAN play.
International Transfers
Nickname, game state, and IP address are transmitted to our server located in Turkey. AdMob, Firebase Analytics, and Crashlytics transmissions may reach Google data centres globally, including the United States, under the EU–US Data Privacy Framework and Standard Contractual Clauses (GDPR Art. 46). Full details in the common policy — International Data Transfers section.
Your Rights & Deletion
Online game data is deleted when the room ends. Device-local settings and score history can be removed via "Settings → Clear Data" in-app, or by uninstalling. For all rights (access, rectification, erasure, restriction, portability, objection, complaint to a supervisory authority), see the common policy.
Direct requests: privacy@albooren.com