Privacy Policy

Last updated: 2026-07-08

Global Data and Consulting Solutions, LLC ("GDACS", "we") publishes the IQ Dominoes mobile application ("the App"). This policy explains what data the App collects, why, and how it is handled.

Data We Collect

Display name. You enter a display name to appear on the game board to other players. This is stored locally on your device and on our multiplayer server only while you are in an active match. It is not linked to any personal identity.

Device identifiers. When you play online, our server assigns a temporary session identifier (Socket.io socket ID) to coordinate the match between players. This identifier is ephemeral and is discarded when you disconnect.

App interaction events. We use PostHog (posthog.com) to collect anonymous analytics about which screens you visit and what game modes you choose. These events are not linked to your real identity. You can opt out in-app via Settings → Analytics & Crash Reports toggle.

Opponent records (on-device only). To show your win/loss history per opponent, the App stores up to your 50 most recent match results — including each opponent's display name — on your device only. This data never leaves your device and is removed if you uninstall.

Age confirmation (on-device only). Before allowing online play, the App asks you to confirm that you are 13 years of age or older. Your answer (yes only) is stored locally on your device so we do not ask again. This confirmation flag never leaves your device.

Crash diagnostics. We use Sentry (sentry.io) to capture information about crashes — stack traces, app version, device model, and OS version. This helps us fix bugs. Crash data does not include your display name or game contents. We have configured Sentry to not attach IP addresses to crash reports (sendDefaultPii: false).

Reports. If you use the in-app Report option after a match, we collect the reported player's display name, the match ID, and any reason text you choose to provide (up to 500 characters). This data is logged on our server for moderation review. We do not log your display name when you submit a report; only your temporary session identifier is recorded.

Push notification tokens. If you opt in to push notifications, we send your Expo Push token, device timezone (IANA, e.g. "America/New_York"), language, and notification preferences to our server, where they are stored in Upstash Redis with a 90-day expiration. Tokens are used only to send match alerts, streak reminders, and lobby notifications you have enabled. They auto-expire if you do not reopen the App within 90 days.

Gameplay stats (server-side, on-device install ID). To keep your progress consistent across sessions, our server stores a small engagement record keyed to a random, app-generated install identifier (a UUID created on your device the first time you play — not linked to any personal identity). This record holds counts and dates such as matches completed, last-active date, your daily-streak count and last-played date, your per-game-mode skill rating (ELO), and the anonymized identifiers of your few most recent co-players. It is used to power streak reminders, skill-based matchmaking, and re-engagement notifications. This record auto-expires 90 days after your last session.

Blocked-players list (server-side). If you block another player, we store that choice on our server keyed to your install identifier so the block is enforced in future matches. The list holds only the blocked players' install identifiers, not names or any personal information.

Referrals (Mesa Maker). When you tap an invite link, we store the inviter's sanitized display name (lowercase letters/digits, up to 16 characters) on your device and send it to our server once on your first match so we can credit the inviter's "Mesa Maker" tally. Tallies are keyed to the sanitized display name and retained while the App remains in service.

Family room codes. A family-room code you create is stored on your device and registered server-side while the code is active so other players can join using it.

Server processors. Persistent data above is stored at Upstash, Inc. (US). Push delivery uses Expo Application Services (EAS) operated by 650 Industries, Inc.

Optional Sign-In & Friends

The App does not require an account. If you choose to sign in with Sign in with Apple or Sign in with Google — an optional feature that lets you keep your friends and progress if you switch devices — the following applies. If you never sign in, none of the data in this section is collected.

Sign in with Apple / Google. When you sign in, Apple or Google sends us a signed sign-in token that includes your email address. We use your email only to recognize your account across devices. We never store your raw email address. On our server we immediately convert it into an irreversible, salted one-way hash and store only that hash — we cannot read your email back from it. We also store the sign-in provider's opaque account identifier so we can recognize you if you change your email. If you use Apple's "Hide My Email" private-relay feature, that works normally — we only ever see the hashed value.

Friends. If you add friends, we store a friends list on our server so you can invite each other to games and play 2-vs-2. The list contains only anonymous install identifiers — not names, emails, or contacts. We never access your phone's contacts.

Deleting your account. If you sign in, the App offers a Delete Account option in Settings. Choosing it permanently removes your account and everything linked to it — the hashed email, the sign-in provider identifier, your friends list, your blocked-players list, and your gameplay stats (streak, skill rating, and engagement record) — from our server and its processor (Upstash). This satisfies Apple's account-deletion requirement (App Store Review Guideline 5.1.1(v)).

Advertising and Attribution

To measure the effectiveness of advertising campaigns we run on third-party platforms (Google, Meta, and Apple Search Ads), the App integrates attribution SDKs from AppsFlyer and Meta, and uses Google's app-conversion measurement.

On Android, the App collects and shares the Android Advertising ID (AAID) and related device identifiers with AppsFlyer, Meta, and Google in order to attribute an app install to the campaign that drove it and to measure ad performance. You can reset this identifier, or opt out of ad personalization, at any time in your device's Settings → Privacy → Ads.

On iOS, the App does not request App Tracking Transparency permission, so the IDFA is not collected and you will not see the ATT prompt. iOS attribution relies only on Apple's privacy-preserving SKAdNetwork and aggregated signals.

Meta Platforms, Inc. (Facebook SDK) receives install and app-open events — and, on Android, the advertising identifier — to measure campaigns we run on Facebook and Instagram. Meta's data handling is governed by the Meta Privacy Policy.

AppsFlyer Inc. (Mobile Measurement Partner) receives install-attribution signals — the advertising identifier on Android, and SKAdNetwork / aggregated signals on iOS — to attribute installs across Google, Meta, and Apple Search Ads. AppsFlyer's data handling is governed by the AppsFlyer Services Privacy Policy.

What We Do NOT Collect

Third Parties

We share anonymized analytics and crash data with PostHog Inc. and Functional Software Inc. (Sentry) under their respective data processing agreements. We share install and ad-attribution data with Meta Platforms, Inc. and AppsFlyer Inc. as described in the "Advertising and Attribution" section above. We do not sell your data to any third party.

Our sub-processors and their data terms:

Legal Basis for Processing (GDPR)

For users in the EU/EEA and UK, we rely on the following lawful bases under Article 6(1) of the GDPR:

On Android, the advertising identifier is collected and shared with our attribution partners to measure our own advertising. On iOS, no IDFA is collected and no App Tracking Transparency prompt is shown. You can reset or limit the advertising identifier in your device's ad settings at any time.

Your Privacy Rights (GDPR)

If you are in the EU/EEA or UK, you have the right to access, rectify, erase, restrict, or object to our processing of your personal data, and the right to data portability. To exercise any of these, email [email protected] (see "Data Deletion" for what we hold and our 30-day turnaround). You also have the right to lodge a complaint with your local data-protection supervisory authority.

International transfers. Our servers and sub-processors are located in the United States, so the data described in this policy is processed in the US. Where required, transfers rely on Standard Contractual Clauses or equivalent safeguards offered by our sub-processors.

California Privacy Rights (CCPA/CPRA)

Under the California Consumer Privacy Act, California residents have the right to know what personal information we collect (described above), to request its deletion or correction, and to opt out of any sale or sharing of personal information.

We do not sell your personal information for money. On Android, we share the advertising identifier with our attribution partners (AppsFlyer, Meta, Google) to measure our own advertising, which may constitute "sharing" under the CPRA. You can opt out by resetting or deleting your Advertising ID, or enabling "Opt out of Ads Personalization," in your device's Settings → Privacy → Ads, and by emailing [email protected] to exercise your California rights. On iOS, attribution uses Apple SKAdNetwork (aggregated, device-anonymous) only.

Children

The App is intended for players age 13 and older. We ask users to confirm they are 13 or older before allowing online play, and we do not knowingly collect personal information from users under 13. If we discover that a user under 13 has provided identifying information, we will delete it. Parents or guardians who believe their child has provided us with information may contact us at [email protected] to request its removal.

Data Deletion

If you signed in: the fastest way to delete everything is the Delete Account option in the App's Settings. It immediately and permanently removes your account and all linked data (see "Optional Sign-In & Friends") from our server.

How to request deletion by email: email [email protected] with your in-app display name and the approximate dates you played. No account is required. We respond within 30 days.

What we delete: your push-notification token, daily-streak record, skill rating, per-install engagement record, blocked-players list, Mesa Maker referral tally, family-room codes, any moderation reports tied to your sessions, and — if you signed in — your hashed email, sign-in identifiers, and friends list — from our servers and our processors (Upstash, Expo). We also instruct our advertising and analytics partners (AppsFlyer, Meta, Google, PostHog) to delete data associated with your device / advertising identifier where their systems support deletion requests.

What is kept: aggregated, non-identifying analytics and crash statistics that cannot be linked back to you, plus any records we are legally required to retain. On-device data (display name, opponent history, age-confirmation flag) is removed when you uninstall the App.

Most server data also auto-expires on its own — push tokens, streaks, and engagement records are deleted 90 days after your last session.

Changes

We may update this policy as the App evolves. Material changes will be announced in the App and the "Last updated" date above will change.

Contact

Global Data and Consulting Solutions, LLC
[email protected] (general)
[email protected] (technical)

Back to home · Terms of Service