Privacy Policy
Last updated: November 9, 2026
Jump to section
Overview
21 Trainer ("the App") is an educational blackjack strategy training application developed by 21Trainer ("we," "us," or "our"). It is available for iPhone and iPad on the Apple App Store, and for Android on Google Play. This Privacy Policy explains how the App handles information on both platforms.
The short version: The App has no accounts, no sign-in, and no ads, and neither platform includes a crash-reporting SDK. On iPhone and iPad, the App includes Google Analytics for Firebase, which automatically collects limited usage statistics, and Meta's Facebook SDK, which tells Meta about installs, app opens, and purchases so we can measure our ads on Facebook and Instagram; Android includes neither. Your training history and settings stay on your device. The App contacts a small number of outside services, listed under Third-Party Services: Apple, Google, and Meta services on iPhone and iPad, and Google Play and Google's Firebase Remote Config on Android. On both platforms, the App can send the developer a short technical notification when you start or change a purchase, and on iPhone and iPad also when you first install the App (see Developer Notifications).
Information We Collect
The App never asks for or collects your name, email address, phone number, or contacts. It has no accounts or sign-in. It never requests access to your device's location and does not use advertising identifiers, though both platforms send your country, as described below. Neither platform includes a crash-reporting SDK. On iPhone and iPad, the App includes Google Analytics for Firebase, which automatically collects usage events, such as first open, session start, app updates, screen views, and in-app purchases, together with an app instance identifier, device model, OS version, app version, and approximate country derived from the IP address. The iPhone and iPad App also includes Meta's Facebook SDK, which sends Meta install, app open, and purchase events with basic device and app details, as described under Third-Party Services. On Android, the App includes no analytics or advertising SDK; the data it does send is listed below.
On both platforms, the App sends the developer short technical notifications about purchase events, and on iPhone and iPad also about installs, over an encrypted connection. These notifications contain no name, email, or advertising identifier. The exact fields for each platform are listed in the Developer Notifications section.
The iPhone and iPad App also sends the developer usage statistics about its setup screens and purchases, with a random identifier for each installation, for analytics and to improve the App. This data is stored on a service the developer runs on Cloudflare, is never sold or used for advertising, and is deleted within 400 days, or sooner if you ask us through the support page.
When you finish sharing a hand or a Daily Challenge from the App, the App sends the developer one short message saying that a share was completed, which screen it came from, the kind of destination (for example Messages or a copied link), and the app version. It contains no name, identifier or address. The quiz pages at 21trainer.app, whether opened from a shared link, found on an article or on the daily challenge page, count views, answers and store button taps as daily totals, and the site's store links count taps the same way, without cookies and without storing your IP address.
On Android, data leaves your device in two ways: the Firebase Remote Config requests described under Third-Party Services, and the developer notifications about purchases. Using the categories of Google Play's Data safety section, the Android app collects:
- Approximate location: your country (from your device's region setting, or your Google Play storefront country for purchase notifications) and your time zone. Used for app functionality and analytics.
- Personal info (other): your onboarding answers, included in purchase notifications. Used for analytics.
- Financial info (purchase history): the product you bought, its price, the Google Play order number, and the first 24 characters of the purchase token, included in developer notifications. Used for analytics.
- App activity (app interactions): which paywall layout you saw and where in the App the purchase started, included in purchase notifications. Used for analytics.
- Device or other IDs: the Firebase installation identifier, sent with Remote Config requests. Used for app functionality.
The same requests and notifications also carry basic device and app details, such as device model, Android version, language, and app version. All of this is encrypted in transit. None of it is sold, and none of it is shared with other companies for their own use: Google and Telegram deliver it on the developer's behalf. The App has no setting to turn it off; uninstalling the App stops it.
Data Storage
On iPhone and iPad, your training sessions, hand records, bankroll history, and daily challenges are stored in a database inside the App's private on-device storage. Your preferences and onboarding answers are stored in the system's on-device settings storage. There is no cloud sync, and this data does not leave your device.
On Android, your training history is stored in a private on-device database, and your settings and onboarding answers in the App's private on-device storage. Your onboarding answers are also included in developer notifications about purchases (see Developer Notifications); apart from that, your training history and settings do not leave your device except through your own Android backup. Android Auto Backup is enabled for this data: if you have device backup turned on, Android may include it in the backup of your own Google account. That backup is handled by Google under your Google account settings; the developer cannot access it.
Purchases
On iPhone and iPad, purchases and subscriptions are processed entirely by Apple through the App Store. On Android, they are processed entirely by Google through Google Play. In both cases the App reads the purchase status on your device to unlock the Pro features, and it can send the developer a notification about the purchase, described under Developer Notifications. The developer never receives your card number, payment details, or store account credentials.
For information about how each store handles payment data, see Apple's Privacy Policy and Google's Privacy Policy.
Refund Requests on the App Store
When you ask Apple for a refund of a purchase made in the App, Apple asks the developer about that purchase and gives us 12 hours to answer. With the consent you give by making a purchase under our Terms of Service, our notification service answers Apple with three things: that the purchase was delivered and works, whether a free trial or the free version of the App was available before you bought, and that we ask Apple to decline the refund. It names the purchase only by Apple's transaction ID and sends nothing about who you are or how you used the App. Apple weighs this with other factors when it decides your request, and handles it under Apple's Privacy Policy. Apple makes the decision, not the developer.
You can withdraw this consent at any time on our refund consent page by entering the Order ID from Apple's receipt email (also shown at reportaproblem.apple.com). We check the Order ID with Apple to find the purchase, and from then on we do not answer Apple about it. The form asks for nothing else, and keeps your IP address for about an hour to stop abuse. The developer gets a notification about each refund request (Apple's stated reason, the transaction ID and what we answered) and about each withdrawal (the Order ID and transaction IDs), and keeps the withdrawal record for as long as it needs to keep applying. To have it deleted, contact us through the support page. To see or delete what Apple holds about a refund request, visit privacy.apple.com.
Third-Party Services
On iPhone and iPad, the App uses:
- Apple App Store (StoreKit): processes purchases and subscriptions, and shows the App Store rating prompt when it appears. Governed by Apple's Privacy Policy.
- Apple Search Ads attribution (Apple AdServices): on first launch, the App asks Apple whether the install came from an Apple Search Ads campaign, and if so receives campaign and keyword identifiers. See Apple's Privacy Policy.
- Firebase Remote Config (Google): downloads configuration values, such as which onboarding and paywall layouts to show. Fetches are delivered through Firebase Installations, which sends Google a Firebase installation identifier for your installation of the App, along with basic app details such as the app version and device language, so Google can deliver the right configuration. No training data or onboarding answers are sent to it, and the App sets no custom signals or user properties for it. See the Firebase Privacy Information.
- Google Analytics for Firebase (Google): automatically collects usage events, such as first open, session start, app updates, screen views, and in-app purchases, together with an app instance identifier, device model, OS version, app version, and approximate country derived from the IP address. We use it to understand how the App is used in aggregate. It is not used for advertising, and the App does not request tracking permission. See How Google uses information from sites or apps that use our services and the Firebase Privacy Information.
- Meta App Events (Facebook SDK, by Meta): tells Meta when the App is installed and opened, and when a purchase, subscription, or free trial completes, including the product, price, and currency. Each event carries basic device and app details, such as device model, iOS version, app version, language, and time zone, along with an identifier the SDK creates for your installation of the App. Meta also receives your IP address as part of the connection. If the SDK's own code causes the App to crash, the SDK can send Meta a report about that crash. We use this data to measure, in aggregate, how well our ads on Facebook and Instagram lead to installs and purchases. The App shows no ads, and because it never asks for tracking permission, the SDK cannot read your device's advertising identifier. Meta receives this data under Meta's Privacy Policy.
- Telegram Bot API: delivers the developer notifications described in the next section, over HTTPS to a private chat only the developer can read. See Telegram's Privacy Policy.
- Cloudflare: hosts the developer's usage statistics service. See Cloudflare's Privacy Policy.
On Android, the App uses:
- Google Play Billing: processes purchases and subscriptions, and tells the App your Google Play storefront country. See Google's Privacy Policy.
- Google Play In-App Review API: shows the rating prompt, handled entirely by Google. See Google's Privacy Policy.
- Firebase Remote Config (Google): downloads configuration values, such as which onboarding and paywall layouts to show and whether developer notifications are on. Firebase starts each time the App opens, and the App checks for new values at most about once an hour. Each request carries a Firebase installation identifier, which Firebase Installations creates for your installation of the App, along with your device's country and language settings, time zone, Android version, and app version. Google also receives your IP address as part of the connection. No training data or onboarding answers are sent to it, and the App sets no custom signals or user properties for it. The developer does not see your installation identifier. See the Firebase Privacy Information.
- Telegram Bot API: delivers the developer notifications described in the next section, over HTTPS to a private chat only the developer can read. See Telegram's Privacy Policy.
The Android app does not include Google Analytics for Firebase, Meta's Facebook SDK, a crash-reporting SDK, or any advertising SDK, and it does not use your device's advertising ID.
Developer Notifications
Both the iPhone and iPad app and the Android app can send the developer a short message through the Telegram Bot API, over HTTPS, to a private chat that only the developer can read. Each of these messages covers one event. Whether messages are sent at all is controlled by switches the developer manages remotely, so they can be turned on or off without an App update. Messages stay in that chat until the developer deletes them.
On iPhone and iPad, when they are sent: once shortly after the App is first installed; when a purchase, free-trial start, renewal, or restore completes; and when a subscription is refunded or expires.
What each iPhone and iPad message can contain:
- App version and build number
- Device model and iOS version
- Country (the App Store storefront for purchase events, the device region for the install message)
- Product name and displayed price, for purchase events
- Which paywall layout was shown and where the purchase started, for purchase events
- Whether the install was attributed to an Apple Search Ads campaign, and if so the campaign, ad group, keyword, and ad identifiers
- Your onboarding answers (experience level, practice frequency, where you play, your goal, your biggest blocker, minutes per day, casino rules preset), when you answered them
- App Store transaction identifiers, for purchase events
- Whether the transaction is sandbox or production
On Android, when they are sent: when a purchase, free-trial start, renewal, or restore completes; and when the App sees, while checking your purchases with Google Play, that a subscription has lapsed or a lifetime purchase has been refunded. The Android app also contains a one-time message for new installs, which is currently switched off. If the developer turns it on, it contains only your country, device model and Android version, your onboarding answers if you have given them, and the app version.
What each Android purchase message can contain:
- Product name and displayed price, and for a free trial, the price and billing period that apply after the trial
- Google Play order number and the first 24 characters of the purchase token
- Whether the purchase is a test purchase or a real one
- Country (your Google Play storefront country when Google Play reports it, otherwise your device's region setting)
- Device model and Android version
- Which paywall layout was shown and where in the App the purchase started
- Your onboarding answers (experience level, practice frequency, where you play, your goal, your biggest blocker, minutes per day, casino rules preset), when you answered them
- App version and build number
Android refund and expiry messages contain less: the product name, your country, and the app version and build number.
No name, email, phone number, precise location, advertising identifier, payment details, or store account credential is ever included. These notifications are not linked to an account, because the App has no accounts. On Android, the Google Play order number matches the order record Google keeps for your purchase and appears on your Google Play receipt, so you can quote it if you ask us to delete your messages.
From the 21trainer.app website: the website sends the developer one message a day with the previous day's share totals (shares completed, link previews, page views, answers, store button taps and rejected links), and a short message when someone taps the store button on a quiz page or the daily challenge page, at most ten such messages a day. These messages carry daily counts and the kind of page only, never a name, identifier, IP address or anything else that identifies a visitor.
Data Retention and Deletion
Your training history and settings are kept on your device until you delete them, and are removed when you uninstall the App.
- Reset statistics (iPhone, iPad, and Android): go to Settings in the App and tap "Reset All Statistics" to permanently delete your on-device training history. On iPhone and iPad, this deletes your training sessions, hand records, and bankroll history. The Android app has the same "Reset All Statistics" row in Settings, which deletes the same kinds of on-device training history.
- Uninstalling the App: removes the App's on-device data on both platforms. On Android, this includes the Firebase installation identifier, so a reinstall starts with a new, unrelated one. If Android Auto Backup copied your training history and settings to your Google account, managing or deleting that backup is done through your Google account's backup settings.
- Data the developer received (iPhone, iPad, and Android): if you want the developer to delete the developer notifications the App sent about you (see above), contact us through the support page and we will delete them. Because the App has no accounts, tell us how to find them: on Android, the Google Play order number from your receipt email or your Google Play order history (it starts with "GPA."); on either platform, the approximate date, the product, and your country also help. Purchase records held by Apple or Google are managed by those companies under your Apple ID or Google Account.
- Firebase Remote Config (Android): Google keeps Remote Config and Firebase Installations data under the retention terms in the Firebase Privacy Information. The developer never sees your installation identifier, so it cannot look up that data for a specific person. Uninstalling the App stops these requests.
- Google Analytics for Firebase (iPhone and iPad): Google retains Analytics data according to the retention setting in the developer's Firebase project. If you want Analytics data associated with your app instance deleted, contact us through the support page and we will ask Google to delete it.
- Meta App Events (iPhone and iPad): Meta keeps this data under its own retention practices, described in Meta's Privacy Policy. If you have a Facebook or Instagram account, you can review and disconnect activity that apps share with Meta through Your activity off Meta technologies.
Children's Privacy
21 Trainer is intended for adults and is not directed at children. On the App Store it is rated 17+. We do not knowingly collect any information from children. The App contains simulated gambling content for training and educational purposes only. No real money is wagered.
Changes to This Policy
We may update this Privacy Policy from time to time. Any changes will be posted on this page with an updated "Last updated" date. We encourage you to review this page periodically.
Contact Us
If you have any questions about this Privacy Policy, please contact us:
You can reach us through our support page.