Español
Klaro Privacy Policy
Last updated: May 16, 2026 (v2.0)
Klaro is an iOS app for training your mind with questions in math, common sense, memory, trivia, and vocabulary, and includes 1 vs 1 online multiplayer matches via room code. This policy explains what information the app collects and how it's used.
1. Information we do NOT collect
- We do not ask for an account, email, or name.
- We do not collect your location.
- We do not access your contacts, photos, microphone, or camera.
- We do not sell or share your personal data with third parties.
2. Information stored locally on your iPhone
- Game progress: level, XP, streak, correct/incorrect answers, unlocked achievements, Marathon and Daily Challenge personal bests. Stored in SwiftData and UserDefaults on your device.
- Preferences: language, sound, haptics, daily reminder time, active icon. Stored in UserDefaults.
- Anonymous identifier (UUID): generated on your device the first time you open the app, used only to tag your anonymous question reports. Not associated with your Apple ID or identity.
All this information stays on your iPhone and is deleted when you uninstall the app.
3. Question reports (optional)
When you report a question as incorrect using the flag button, we send to the review server:
- The question ID (e.g.
math_032).
- The selected reason (5 closed options).
- Your anonymous installation identifier (UUID).
- The language and app version.
- Date and time of the report.
This data is used solely to improve question quality. We do not share it with third parties.
4. In-App Purchases
Klaro offers optional purchases to remove ads (monthly or one-time). These are processed by Apple (App Store) and governed by Apple's privacy policy. Klaro does not receive or store your payment information.
5. Online multiplayer (PvP)
When you use "Play online" (1 vs 1 with room code), Klaro uses Firebase (Google) as backend to coordinate matches. When you create or join a room:
- Anonymous Firebase Auth identifier: on first PvP use, an anonymous UID (no email or real name) is generated and stored in your iPhone's Keychain. Used to identify you as "player A" or "player B" of the room for the duration of the match.
- Display name: the nickname you set in Settings (defaults to an auto-generated handle like "FastFox"). Letters and numbers only, max 12 chars, server-side filtered against offensive words. It's the only thing your opponent sees about you.
- Room data: 6-char code, chosen modules, language, average ELO rating, per-question answers (0-3 index + elapsed time), scores, and reactions (1 of 5 pre-approved emotes). Stored temporarily in Firebase Realtime Database while the room is active; deleted or expired afterward.
- No free-form chat: there's no way to send text messages to your opponent. Reactions are a closed set of 5 pre-approved emotes.
- App Check: Klaro uses Firebase App Check (Apple DeviceCheck/App Attest) to verify backend calls come from the legitimate app. This does NOT collect user info, only validates binary integrity.
If you want to remove your anonymous Firebase identifier and associated data, use Settings → Delete account in the app. This deletes your anonymous UID from the server, any active rooms, rate-limit counters, and your local progress; the next app launch generates a completely new identifier.
6. iCloud sync
Klaro uses Apple's NSUbiquitousKeyValueStore (iCloud Key-Value Storage) to sync your progress across devices signed in with the same Apple ID. Synced data:
- Current streak, longest streak, weekly activity dots, available streak freezes.
- Level, XP, and ELO rating per module.
- Unlocked achievements.
- Onboarding flags (tutorial seen, notifications accepted, FitTest done).
This sync uses Apple's native iCloud infrastructure; data is encrypted in transit to your iCloud and does not pass through Klaro servers. You can disable this sync from iPhone Settings → your Apple ID → iCloud → Klaro.
7. Advertising
The free version shows ads served by Google AdMob. When ads are active:
- If you grant App Tracking Transparency permission, AdMob may use the iOS IDFA to show you more relevant ads.
- If you decline, only contextual non-personalized ads are shown.
- You can change this preference at any time in iOS Settings → Privacy → Tracking.
- For EU users, additional consent will be requested via CMP (Google UMP) in compliance with GDPR.
Google AdMob's privacy policy is available at https://policies.google.com/privacy.
8. Notifications
If you enable the daily reminder, Klaro schedules a local notification on your iPhone at the chosen time. These are managed by iOS and not sent from a server.
9. Diagnostic data
Klaro uses MetricKit, Apple's built-in framework, to collect anonymous performance metrics (launch time, hangs, dropped frames, crashes). This data is stored locally and not sent to any Klaro server.
10. Your rights · GDPR / CCPA
Although Klaro doesn't collect PII (personally identifiable information) and your anonymous identifier isn't tied to your real identity, we want to give you full control:
- Right of erasure: use Settings → Delete account in the app to wipe your anonymous UID and associated data from the server.
- Right not to be tracked: decline the iOS ATT (App Tracking Transparency) permission to prevent AdMob from personalizing ads.
- Subscribe to Pro to remove ads entirely and stop sharing your IDFA with AdMob.
- For any further data inquiries, contact us at the address below.
11. Minimum age
Klaro is rated for all audiences (4+). It does not collect personally identifiable information from minors or adults. The PvP system does NOT allow free-form chat — only pre-approved emotes — and matchmaking is via shared code (not random between strangers).
12. Changes to this policy
If we update this policy, we will publish the new version at this same URL with the update date at the top.
13. Contact
If you have questions about this privacy policy, write to juanmanuelchio12@gmail.com.