1. Who we are
BilliardPro with Sandor Tot is made by Adžić Solutions, a software studio from Serbia (“we”, “us”), and co-authored with TesCreations. Adžić Solutions is the controller of the personal data described here. This policy applies to the BilliardPro apps for iPhone, iPad and Android.
We follow the Serbian Law on Personal Data Protection (ZZPL) and, for users in the European Union and the UK, the GDPR.
Questions or requests? Use the contact form on our website and choose the topic Privacy / data request:
Contact us about privacy2. What we collect and why
Here is every kind of data the app handles, what it is for and how long it is kept.
Your account
On the first launch the app creates an anonymous account for you with Firebase Authentication (Google). It's a random user ID, not your name. You can later upgrade it to an email-and-password account, or use Sign in with Apple or Sign in with Google. Firebase Authentication then also stores your email address and, if Apple or Google shares them, your name (with Google also the link to your profile photo). With Apple you can choose “Hide My Email”, and we then receive only a private relay address. The user ID stays the same, so your training stays with you.
- Why
- To save and sync your training and to link your Master edition purchase to you.
- Legal basis
- Needed to provide the app to you (contract).
- Kept
- Until you delete your account.
Your training
Stored in Cloud Firestore (Google) under your user ID: your profile (the name you enter, if any, the playing experience you chose, level, XP, streak, badges and your chosen training plan), every exercise attempt and its score, your Ghost sets, Straight Pool games and highest runs, and the tournaments you add.
- Why
- A backup of your progress and sync between your devices.
- Legal basis
- Contract.
- Kept
- Until you delete your account. Reset statistics in the app deletes your session, Ghost and Straight Pool history earlier.
The BilliardPro server
Our own server, apps.adzic-solutions.in.rs, is operated by Adžić Solutions. For each player it stores the user ID, the display name and country you set (if any), whether you signed in with Apple, Google or email, the XP and highest run of each finished session or game, and whether Master edition is active (status and expiry date, as reported by RevenueCat).
- Why
- The weekly XP and highest-run leaderboards, and unlocking Master edition lessons on every device.
- Legal basis
- Contract.
- Kept
- Until you delete your account. Leaderboard activity that is no longer needed for any ranking may be removed earlier.
Lesson videos
Šandor's videos are streamed from our server through short-lived signed links. To create a link, the app asks the server with your signed-in user ID, and the server checks whether that lesson needs Master edition. The user ID is part of the signed link. Like every web server, ours keeps standard access logs (IP address, time, requested address and app or browser type).
- Why
- To deliver the videos, protect them from unauthorised copying and keep the server secure.
- Legal basis
- Contract, and our legitimate interest in a secure service.
- Kept
- Links expire after a short time. Access logs are rotated and deleted regularly.
Purchases and subscription
Master edition (monthly or yearly subscription with a 7-day free trial, or a one-time lifetime purchase) is paid through the App Store or Google Play. No card or payment details ever reach us. RevenueCat (RevenueCat, Inc., USA) manages the subscription: it receives the store's purchase record linked to your app user ID and tells the app and our server whether Master edition is active, which product it is and when it expires.
- Why
- To give you what you paid for, on all your devices, and to restore purchases.
- Legal basis
- Contract.
- Kept
- For as long as needed to manage the subscription and meet legal accounting obligations. The stores keep their own purchase records.
Crash reports
If the app crashes, Firebase Crashlytics (Google) sends a technical report: the crash stack trace, device model, operating system version, app version and your user ID, so related crashes can be grouped.
- Why
- To find and fix crashes.
- Legal basis
- Our legitimate interest in a working app.
- Kept
- 90 days.
Usage statistics Optional
Firebase Analytics (Google) tells us how the app is used: which screens are opened, which lessons and drills are trained and with what result (score, passed or not, training mode), finished Ghost and Straight Pool games, whether the Master edition screen was shown, the sign-in method and whether reminders are on. It is linked to a random app-instance ID and your user ID, together with device model, operating system, app version, language and an approximate country. The advertising ID is not collected and ad personalisation is switched off.
- Why
- To see which lessons help players most and to improve the app.
- Legal basis
- Our legitimate interest in improving the app. You can switch it off in More → Usage statistics.
- Kept
- Up to 14 months.
Match statistics Optional
Matches you track are stored on your device and in your account in Cloud Firestore (Google), so they sync between devices: discipline, race length, date, event name, the opponent's name as you typed it, and the rack-by-rack events (breaks, safeties, errors, scores). Use a first name or nickname for opponents — the app doesn't need more.
- Why
- To show your match statistics.
- Legal basis
- Providing the feature you use.
- Kept
- Until you delete the match or your account.
Coach mode Optional
If you create or join a team, our server stores the team name, its join code, who coaches it and who is a member, and the team's training plan. To show a coach their players' progress, finished sessions now also report which exercise was trained and the score (in addition to XP, as before).
- Why
- So a coach can assign a plan and follow the team.
- Legal basis
- Providing the feature you use.
- Kept
- Until the team is deleted, you leave it, or you delete your account.
Training lab tools on your device
Stroke vs Sandor uses the camera or your photo library to get a video of your stroke; it is copied into the app and played next to Sandor's video on your phone only. Break speed listens with the microphone while you measure: the sound is analysed in memory and never recorded, stored or sent. Offline videos are lesson videos downloaded to your device. Aim trainer, puzzles and their results stay on your device as well.
Training reminders Optional
Reminders (daily nudge, streak rescue, plan days and weekly recap) are scheduled locally on your device by the app. No server is involved, and your reminder settings stay on your phone. You can switch them off in the app (More → Training reminders) or in your phone's system settings.
- Legal basis
- Your consent (notification permission), which you can withdraw at any time.
- Kept
- On your device until you turn reminders off or uninstall the app.
We may later offer reminders sent from our server as an optional setting. Only if you turn that on would the app send this device's push token, language, time zone and reminder time to our server (delivered through Apple Push Notification service or Firebase Cloud Messaging). We will update this policy before that happens.
On your device
Reading instructions aloud uses your device's own text-to-speech voice. Videos play in the app through the signed links described above. Your settings (language, theme, text size, haptics) and a copy of your training are stored on your device.
3. What we do not collect
- No ads, no advertising identifiers and no third-party advertising or tracking SDKs.
- No tracking across other companies' apps and websites (we do not ask for App Tracking Transparency permission, because we don't track).
- No location or contacts. The camera, microphone and photo library are used only when you start a Training lab tool (see “Training lab tools on your device” above), and what they capture never leaves your phone.
- No payment details.
- We never sell or rent personal data and never share it with data brokers.
4. What other players can see
Only players who signed in with Apple, Google or email and set a name appear on the leaderboards. Others can then see your display name, your country (if you set it), your weekly XP and your highest run. Guests never appear. Your email and user ID are never shown to other players.
In Coach mode, the coach of a team you joined sees your display name, when you last trained, your sessions and XP of the last 7 and 30 days, and your best score on each exercise of the team plan. Other members of the team don't see you. Leaving the team ends this.
6. Where data is stored
Firebase (Google) stores data in the European Union and the United States. RevenueCat is based in the United States. Our own server is hosted in the European Union. When data leaves Serbia or the EU, it is protected by the providers' Standard Contractual Clauses and other safeguards required by law.
7. How long we keep it
- Account, training and server data: until you delete your account.
- Leaderboard activity: until you delete your account; activity older than any ranking needs may be removed earlier.
- Crash reports: 90 days. Usage statistics: up to 14 months. Server access logs: rotated and deleted regularly.
- Subscription records: as long as needed for the subscription and legal accounting obligations.
- On your device: until you uninstall the app.
8. Your choices and deleting your account
- Delete your account in the app: open More → Account → Delete account. This permanently deletes your data on our server (player, leaderboard activity and any devices), your training in Cloud Firestore and your Firebase account, and clears the training stored on the device.
- Subscriptions: deleting the account does not cancel a subscription. Cancel it in your App Store or Google Play account settings. Purchases stay tied to your store account and can be restored.
- Training reminders: More → Training reminders, or your phone's notification settings.
- Usage statistics: switch them off in More → Usage statistics.
- Statistics: Reset statistics deletes your session, Ghost and Straight Pool history.
- Name: change or remove it in your profile at any time.
Delete without the app: send us a request through the contact form with the topic Privacy / data request and the subject “Delete my BilliardPro account”, using the email address of your BilliardPro account. We delete your account, your training in Cloud Firestore and your data on our server within 30 days and confirm by email. Guest accounts are not linked to an email address, so we may not be able to find them; for those, deleting in the app is the reliable way, and uninstalling removes everything on the device.
Request account deletion9. Your rights
You have the right to access your data, to have it corrected or deleted, to restrict or object to processing, to data portability, and to withdraw consent at any time (this doesn't affect processing done before). To use a right, contact us through the form and tell us the email of your account. We reply within 30 days.
You can also complain to a supervisory authority. In Serbia, that's the Commissioner for Information of Public Importance and Personal Data Protection. In the EU, it's the data protection authority of your country.
10. Children
BilliardPro is not directed at children under 13, and we do not knowingly collect personal data from them. If you think a child has given us personal data, contact us and we will delete it.
11. Security
All data is sent over encrypted connections (HTTPS). Cloud Firestore access rules let each user read and change only their own data. Our server accepts requests only with a valid Firebase sign-in token, and video links are signed and expire after a short time. Access to the Firebase, RevenueCat and server consoles is limited to us.
12. Changes and contact
If we change how the app uses data, we will update this page and the date at the top. If the change is significant, we'll also tell you in the app. Questions, requests or complaints are welcome:
Contact us about privacy