This Privacy Policy explains what information Asian Digital Mind LLC ("ADM", "we", "us") collects when you use the Mahjong House app for iPhone and iPad (bundle ID com.adm.mahjonghouse) and its online services (the "App"), why we collect it, who we share it with and the choices you have. ADM is the controller of the personal data described here.
In short: you can play solo without an account, and your solo games stay on your device. Online play uses a small account (a display name, an avatar and your match results). The free version shows ads from Google AdMob, which uses device data subject to your consent and Apple's tracking settings. We use Firebase Analytics to understand how the App is used. We never sell your personal information for money, and there is no real money in the game.
1. Information that stays on your device
The following is stored only on your device and is not sent to us:
- your local profile (display name and avatar choice) and settings (language, tile style, sounds and so on);
- solo games in progress, your statistics, hand records and replays;
- counters used to space out ads (for example when the last ad was shown), and whether you own Remove Ads or Sifu;
- your online sign-in token, kept in the device's secure keychain.
Deleting the App removes this information from your device (the keychain token may remain until the device is erased).
2. Your online account
When you first use online play (Quick Match, Ranked or the League), the App creates an account on our game server. We store:
- Account: a random account ID, your display name, your avatar (one of the App's character portraits) and when the account was created.
- Sign-in tokens: stored only as SHA-256 hashes, so the stored value cannot be used to sign in.
- Linked sign-ins: if you link Sign in with Apple or Google (or Game Center, if offered), the name of the provider and the unique user ID that provider gives for you (the "subject"). We never receive your password.
- Match records: for each online match, the mode (Quick or Ranked), region, season, start and end time, number of hands, and for each seat the player account (or computer club player), final points, place, and hidden matchmaking rating before and after (Ranked).
- League standing: for each season, your season score (jade won or lost in Ranked), number of ranked matches, number of first places, and a matchmaking rating (current and peak) that is used only to match players of similar skill and is not shown to anyone.
During a match, the server also processes your in-game actions (discards, claims and so on) in real time to run the game. These are held in memory for the match and are not stored as a hand-by-hand record.
What other players see: other players at your table see your display name, avatar, points and in-game actions. The season leaderboard, visible to all players, shows your rank, display name, avatar and season score.
3. Sign in with Apple or Google
Linking a sign-in is optional; it lets you use the same online account on another device. Sign-in is handled through Supabase Auth, our authentication provider. When you sign in, the provider shares basic account information with Supabase, which may include your email address (Apple may give a private relay address instead), your name and a provider user ID, and Supabase stores it in our authentication project. Our game server receives only a signed token from which it takes the provider and your provider user ID; it does not store your email address. The sign-in providers process your information under their own privacy policies.
4. Technical data when you connect
When the App talks to our servers (for example to check whether online play is available, to find a match or to load the League), our hosting providers necessarily process your IP address and basic connection information (time, requested address, app version) to deliver the service, protect it from abuse and keep short-term server logs. We do not use IP addresses to identify you.
5. Advertising (Google AdMob)
The free version shows interstitial ads between rounds of solo play, served by Google AdMob. To serve, measure and protect ads, Google's SDK collects information such as:
- device identifiers: Apple's Advertising Identifier (IDFA) only if you allow tracking in Apple's App Tracking Transparency prompt, and otherwise identifiers that are not used for cross-app tracking;
- approximate location derived from your IP address;
- ad interactions (for example ads shown and tapped), device and app information, and performance and diagnostic data.
Your choices:
- App Tracking Transparency (all regions): before ads load, iOS asks whether the App may track you. If you choose "Ask App Not to Track", the IDFA is not shared and ads are not personalised using cross-app tracking. You can change this at any time in iOS Settings > Privacy & Security > Tracking.
- EEA, UK and Switzerland: we use Google's User Messaging Platform to ask for your consent to personalised advertising and related data processing, as required by law. You can refuse, in which case Google may show non-personalised or limited ads. To change your choice later, delete and reinstall the App and the consent form will be shown again, or contact us.
- No ads: buying Remove Ads or subscribing to Sifu turns off ads in the App.
Google's use of data is described at policies.google.com/technologies/partner-sites.
6. Analytics (Firebase)
We use Google Firebase Analytics to understand how the App is used and to improve it, and Firebase Remote Config to adjust settings such as how often ads appear without releasing an update. Firebase collects app events (for example: a round completed, a break screen shown, an ad requested, shown or skipped, a purchase started or completed, purchases restored, the Sifu sheet opened), together with an app-instance identifier, device model, OS and app version, and approximate location derived from your IP address. We do not send your display name or account ID to Firebase, and we do not combine analytics with your online account.
7. Purchases
In-app purchases (Remove Ads and the Sifu subscription) are made through Apple. Apple processes your payment; we never see your payment card or billing details. We use RevenueCat to validate purchases and manage entitlements: RevenueCat receives the App Store transaction and subscription information (such as the product, purchase and expiry dates and the country of the store), an anonymous app user ID, and device and app information. We use this to unlock what you bought on your devices, restore purchases and understand subscription performance.
8. When you contact us
If you email us at support@mahjonghouse.app, we receive your email address and whatever you choose to send (such as your display name, device details or screenshots), and we use it to answer you.
9. How we use information, and our legal bases
- To provide the App and online play (accounts, matchmaking, running matches, season scores, leaderboards, restoring purchases): necessary to perform our agreement with you.
- To keep play fair and secure (preventing cheating, abuse and fraud, protecting our servers): our legitimate interests in running a fair, safe service.
- To show ads and measure them: your consent where required (EEA/UK consent and Apple's tracking permission); otherwise our legitimate interest in funding a free game, for non-personalised ads.
- To understand and improve the App (analytics, remote configuration): our legitimate interests in improving the App.
- To answer support requests and comply with the law: our legitimate interests and our legal obligations.
We do not use your information to make decisions that have legal or similarly significant effects on you based solely on automated processing. Matchmaking (including the matchmaking rating) and season scores are automated but only affect gameplay.
10. Who we share information with
We share information only as described in this policy:
- Supabase (database and sign-in), hosted in Supabase (Singapore, ap-southeast-1): stores online accounts, linked sign-ins, match records and league standings.
- Railway (game server hosting), Railway (Singapore region): runs the online matches.
- Google (AdMob advertising, User Messaging Platform, Firebase Analytics and Remote Config, and Google sign-in).
- Apple (App Store purchases, App Tracking Transparency and Sign in with Apple).
- RevenueCat (purchase validation and entitlement management).
- Other players, who see your display name, avatar, results and leaderboard position as described in section 2.
- Authorities or others when required by law, or to protect the rights, safety and security of our players, ADM or others; and a buyer or successor if our business or the App is transferred, subject to this policy.
Our service providers may only use the information to provide their services to us, except where they act as independent controllers under their own policies (such as Google for advertising and Apple and Google for their sign-in services).
We do not sell personal information for money. Under some US state laws (such as California's), letting advertising partners collect device identifiers for personalised ads can count as "sharing" or a "sale". You can opt out by choosing "Ask App Not to Track", by turning off tracking in iOS Settings, or by buying Remove Ads, and you can contact us to exercise your rights.
11. International transfers
Our game server and database are in Singapore, and our other providers (such as Google, Apple and RevenueCat) may process data in the United States and other countries. These countries may have different data-protection laws from yours. Where the law requires it, we rely on appropriate safeguards for these transfers, such as the European Commission's Standard Contractual Clauses (and the UK equivalents) included in our providers' data-processing terms.
12. How long we keep information
- Online account, linked sign-ins and league standings: for as long as your account exists. If you ask us to delete your account, we delete these within 30 days, except for backups, which are overwritten on their normal cycle.
- Match records: kept to maintain match history and leaderboards. When an account is deleted, its seats in past matches are kept without any link to the account (they no longer identify you).
- Sign-in tokens: until they are replaced or the account is deleted.
- Server logs: for a short period (typically up to 30 days) set by our hosting providers.
- Analytics: for the retention period set in Firebase (no more than 14 months for event-level data).
- Support emails: for as long as needed to handle your request, and then for up to 2 years for our records.
13. Your rights and choices
Depending on where you live, you may have the right to access the personal data we hold about you, correct it, delete it, restrict or object to our processing of it, receive a portable copy of it, and withdraw consent at any time (without affecting processing before the withdrawal). California and other US state residents may also have the right to know what personal information we collect and disclose, to delete and correct it, to opt out of its "sale" or "sharing", to limit use of sensitive information (we do not collect any), and not to be discriminated against for using these rights.
To use any of these rights, email support@mahjonghouse.app from an address we can reply to, and include your display name. To protect your account we may ask you to confirm your request from the App (for example by temporarily changing your display name to a code we send). You may use an authorised agent where the law allows. We will reply within the time the law requires (usually within 30 days). You also have the right to complain to your local data-protection authority.
You can also: change your display name and avatar in the App; turn off tracking in iOS Settings; change your EEA/UK ad consent (see section 5); and delete the App to remove the data stored on your device.
14. Deleting your online account
You can delete your online account in the App: open your Profile and tap Delete Online Profile, then confirm. This immediately deletes your account, display name, avatar, league standings, linked sign-in and sign-in tokens (every device is signed out), and removes the link between you and your past match results. It isn't available while you are seated in an online match. If you signed in with Apple or Google, our authentication provider also keeps a sign-in record; email support@mahjonghouse.app with the subject "Delete my account" and we will remove it within 30 days (you can also ask us by email to delete your whole account if you can't use the App). Purchases are tied to your Apple ID and are not affected; to stop a Sifu subscription, cancel it in your Apple ID settings.
15. Children
The App contains simulated gambling themes and is intended for players aged 17 and over. It is not directed to children, and we do not knowingly collect personal information from children under 13 (or under the age of digital consent where you live, such as 16 in parts of the EEA). If you believe a child has given us personal information, contact us and we will delete it.
16. Security
We protect your information with measures appropriate to the data we hold: connections to our servers are encrypted (HTTPS and secure WebSockets), sign-in tokens are stored only as hashes, sign-ins are verified cryptographically, and our database is not exposed through a public API and is accessible only to our game server. No system is completely secure, so we cannot guarantee absolute security.
17. Changes to this policy
We may update this policy from time to time, for example when we add features or providers. We will post the new version on this page and change the effective date, and where changes are significant we will give notice in the App. This policy is written in English; translations are for convenience, and the English version governs if they differ.
18. Contact us
Asian Digital Mind LLC, 3400 Cottage Way, Sacramento, CA 95825, USA. Email: support@mahjonghouse.app.
