Dice Tavern

Privacy Policy

Effective date: November 4, 2026

This policy describes what data the Dice Tavern app ("the app", for Android and iOS) processes, why, and what you can do about it. The app is developed by underdog co ("we"). Contact: underdogco@proton.me.

Dice Tavern is a collection of dice games played against computer opponents and, if you choose online play, against other players. The app is free and shows ads from Google AdMob (section 4); the one-time purchase "Remove ads" removes the ads between games (section 6). With your consent, where the law requires it, ads can be personalized and the Meta (Facebook) SDK measures our ad campaigns (section 5). No account is needed and we never ask for your name, email address or phone number; online play uses an anonymous online profile that the app creates for you, and on Android you can choose to connect it to Google Play Games to keep it on any device (section 3). The app never involves real money, betting or prizes. Version 1.0 of the app showed no ads, offered no purchases and did not use the Meta SDK.

1. Data stored on your device

Your games in progress, statistics (including your online results), roll history, daily quests and streaks, unlocked dice sets and tables, settings (such as language, sound and accessibility options) and, while you sit at an online table, which table to return to, are stored on your device. So are the ad timing state (when the last ad was shown), whether you own "Remove ads", your consent answers (stored by Google's consent form in the standard format of the ad industry) and how many times the app was launched (on the first launch the consent form waits until you have finished a game). If you turn on reminders, their plan (which reminders, at what local time) and your answer are stored on the device too; reminders are local notifications scheduled by the app on your device, with no push service and nothing sent to a server. So is when the app last asked the system for the store's rating card. On Android, the app reads once, on the first launch, which game a Google Play store link pointed to (Google Play Install Referrer), to open that game; only the game is kept, on the device. We do not receive any of this. On Android, this app data can be included in your device's Google backup (if you use it) and restored on a new device; on iOS it can be included in your iCloud or computer backup. Uninstalling the app deletes it from the device; a backup made earlier keeps its copy until that backup is replaced or deleted.

2. App statistics and crash reports (Google Firebase)

We use Google Firebase services provided by Google LLC to understand how the games are played and to fix crashes. Google acts as our service provider (processor).

Firebase Analytics

Pseudonymous usage events, sent with a random app instance identifier and basic device information (device model, operating system and app version, language, approximate location such as the country, derived from the IP address). The app sends exactly these events of its own:

The number of error events sent per app session is limited.

If you play online, the app sends these events instead of game_start and game_end for online games: online_search_start and online_search_result (a search for an online table and how it ended, with the waiting time in seconds and, when it failed, a fixed reason category), online_room_create (an attempt to create a private table and how it ended, for example created, no connection or too many attempts), online_join (the outcome of joining with a table code, and whether the code was typed or came from a link, never the code itself), online_game_start and online_game_end (the number of seats and players, how the game started, how you reached the table (search, your own table, a code or link, a rematch), your result and place), online_error (an online step failed: which step, a fixed error category such as "no connection" or "server busy", and how you reached the table), online_timeout and online_reclaim (a computer player took your turn when the time ran out; you took your seat back), online_profile_delete (you deleted your online profile), games_link (an attempt to connect Google Play Games and how it ended: connected, switched to the profile the Play Games account already had, which of two profiles you kept, cancelled, not possible while you sit at an online table, or failed) and leaderboard_view (a leaderboard was shown, with the game and whether it was the season or the all-time board). They never contain your online profile ID, table codes, nicknames, emotes, your rating or rank, or anything from your Google Play Games account.

For ads and the "Remove ads" purchase (sections 4 and 6), the app also sends: consent_result (the answer to the consent form and whether the form was shown), att_result (iOS: the answer to the tracking prompt), ads_init (whether the ad service started and how long it took), ad events (ad_offer_shown, ad_offer_skipped, ad_offer_tap, ad_opportunity, ad_request, ad_load_failed, ad_shown, ad_show_failed, ad_dismissed, ad_reward_earned, reward_claimed, ad_paid: where in the app an ad was offered or shown, its format, a fixed error category, whether a reward was earned, and the ad's revenue as the ad network reports it) and purchase events (iap_offer_shown, iap_purchase_start, iap_purchase_result, iap_restore: the "Remove ads" offer was shown, a purchase or restore was started and how it ended). They never contain an advertising ID, an order number, a purchase token or a price.

User properties: build_type (the kind of app build, so that test builds can be told apart), app_locale (the app language you use), first_game (the first game you played after installing), games_bucket (a range of how many games you have finished, such as "2 to 4"), ads_removed (whether "Remove ads" is owned), consent_state (your stored consent answer) and reminders (whether reminders are on, off, blocked by the system or not decided yet).

The Firebase SDK also records these events automatically: first_open (first launch), session_start, user_engagement (time the app is in the foreground), app_update, os_update, app_remove and app_clear_data (Android only), firebase_campaign (when the app is opened from a link with campaign details), app_exception (a crash, recorded by Crashlytics), in_app_purchase (a "Remove ads" purchase, with the product, price and currency; on iOS the app passes the finished store transaction to Firebase for this) and ad_impression (an ad shown, with the ad format, ad source and the revenue the ad network reports). Firebase's automatic screen reporting stays turned off: the app itself reports the fixed screen names described under screen_view above, and Firebase can attribute the time the app is in the foreground to them.

Event values are fixed categories and numbers only: no names, no email addresses, no text you type, no precise location.

Firebase Crashlytics

Crash and error reports with the type of error and the stack trace (where in the app's code it happened), the device model, operating system version and device state at the time of the crash (such as free memory), the app version and build type, and the most recent analytics events above as context. For errors in the app's own game code only the error type is sent, never the error message; an app launch step that takes longer than 3 seconds or exceeds its time limit is reported as an error naming that step. Crashes inside the operating system or native libraries are reported as the system records them. No user ID or other custom data is attached. Crash reports are kept for 90 days.

Firebase Remote Config

Downloads app settings (for example, which games are switched on and how many missed days a streak forgives), using a random installation identifier. Nothing about your games is sent.

Identifiers

Firebase uses a random Firebase installation ID and an app instance ID, both created when the app is installed and replaced when you reinstall it, and the device identifiers the Firebase SDK collects for analytics: on iOS the identifier for vendor (IDFV), on Android the Android ID (SSAID). On Android, Firebase Analytics can also read the advertising ID; it is used for ads measurement only while the Consent Mode signals below allow it. On iOS, Firebase Analytics can read the IDFA only after you have answered the consent form with consent for ads and allowed tracking in the App Tracking Transparency prompt. The ad and Meta SDKs use the advertising identifier as described in sections 4 and 5. We do not set a user ID and do not link this data to your name or to any account.

Google's Consent Mode advertising signals (ad storage, ad user data, ad personalization) are allowed by default on Android and denied by default on iOS. On every start the app first sets them to denied. On every launch, the first included, the app asks Google's consent service, without showing anything, whether your region requires consent. Where it does not (for example in Brazil), the signals are allowed right away, so Google can measure which of our ads led to people playing the app; on iOS this also needs your permission in the App Tracking Transparency prompt. Where consent is required (for example in the EEA, the UK and Switzerland), the signals stay denied until you answer the consent form (section 4), and then your answer is passed on to it; Google signals and ads personalization stay switched off in our analytics property.

Google processes this data under its own terms and privacy policy (policies.google.com/privacy, and Privacy and Security in Firebase) and may process it in the United States and other countries, relying on safeguards such as the EU Standard Contractual Clauses or the EU-US Data Privacy Framework where required. Analytics data is kept for 14 months and then deleted.

3. Online play

Online play is optional: you can play every game offline without it. Only when you start or join an online table, open a leaderboard, or connect Google Play Games, does the app create an online profile and exchange the data below with our game server. The server runs on Google Cloud (Cloud Run, Cloud Firestore) and uses Firebase Authentication and Firebase App Check, provided by Google as our service provider (processor). Game data is stored in Google's europe-west1 region (Belgium); Firebase Authentication may process the profile ID and, if you connect Google Play Games, the Play Games details described below in the United States and other countries, with the safeguards described in section 2.

What is processed

What other players see

Players at your table see your nickname, your seat, your bids and challenges, your dice when they are revealed at a challenge or at the end of the game, your emotes and your result. They never see your online profile ID. If you appear on a leaderboard, your entry there can be read by anyone using the app with an online profile, as described in «Ratings and leaderboards» below.

Why

To run online games (find a table, seat players, take turns, let a computer player take over a turn when time runs out, show results), to compute ratings and show leaderboards, to keep your online profile on a new device if you connect Google Play Games, to let you block players, to make retries safe on a bad connection, and to prevent cheating, abuse and attacks on the server.

How long it is kept

Sharing

Google processes this data only to provide the services above for us. We do not use online play data for advertising, do not share it with advertisers or data brokers and do not sell it. Other players see only what is listed above.

Fair dice

The dice in an online game are computed by the server from a secret random value drawn at the start of the game. The server publishes a fingerprint (hash) of that secret before the first roll and the secret itself after the game ends. With it, anyone can check that the dice and the computer players' moves were fixed before the game started and never adjusted to any player; the app checks the dice you saw automatically. The secret of a game that ends without a result is not published.

Ratings and leaderboards

Where your version of the app offers them, games at public online tables (the tables the app finds for you) are rated. Not rated: private tables (your own tables, tables joined with a code or link, and rematches), and a public game in which fewer than two players could be rated, in which every rated player left, or that ended while ratings were switched off or could not be computed. If fewer than two players finish a game, only the players who left are rated (placed last); the players who finished keep their ratings. Our server computes a rating for each game type (for example Liar's Dice or Yatzy) only from the results it recorded itself at those tables; nothing you enter and nothing from your device is used. A player who leaves a game, is away at the end or whose turns were mostly played by a computer player is placed last. Ratings never change the dice (see «Fair dice» above) and have no money value.

For each game type the server keeps your rating values, the rating shown in the app, how many rated games you played (in total and in the current season), the season, the change from your last rated game, which table that game was at and when it was rated, your "Show me on leaderboards" choice and whether your profile is connected to Google Play Games. Only you can see these in the app. For every rated game it also keeps a record with pseudonymous codes of the rated players and of their leaderboard entries, their places and their ratings before and after the game, so that each result is counted exactly once and so that two players cannot raise their ratings by playing together again and again: once two players have played 3 rated games together within 24 hours, neither is rated in a further game they both play in that time, while the game stays rated for the other players.

Each game type has a leaderboard for the current season (a calendar quarter, in UTC) and one for all time. You appear on a leaderboard after 10 rated games of that game type (on a season leaderboard: 10 in that season), unless you turn off "Show me on leaderboards". It is on by default and you can turn it off at any time, also before your first rated game. Your entry shows only your generated nickname, your rating, the number of rated games it counts and the day it last changed. Your entry can be read by anyone using the app with an online profile; the app shows the top 100 of each leaderboard and your own place. Leaderboards never show your online profile ID or anything from your Google Play Games account, and the code that identifies an entry is a different pseudonymous code from the ones in our logs and block lists.

To hide, turn off Settings → "Show me on leaderboards" (the leaderboard screen offers the same choice). Your entries are removed from every leaderboard at once; your rating stays private to you and keeps counting. If you turn it on again, you appear on the all-time leaderboard and on the current season's leaderboard where you qualify.

Google Play Games (optional, Android)

You can connect your online profile to Google Play Games in Settings → "Google Play Games" or from the offer shown after a rated game ("Keep your rating on any device"). This is optional: online play, ratings and leaderboards work without it, and the app never signs you in to Google Play Games on its own. We use the connection only to keep your online profile, with your nickname and ratings, when you change or reset your phone: connecting the same Google Play Games account on another device brings the profile back.

When you connect, Google Play Games gives the app a one-time code, which Firebase Authentication exchanges with Google. Google then shares with Firebase Authentication your Google Play Games player ID and, as Google provides them, your Play Games display name and a link to your Play Games profile picture; Firebase Authentication stores them in your online profile's account record so that it can recognize you the next time you connect. The app does not ask Google for your email address or for access to anything else in your Google account. Our server uses only whether a Google Play Games account is connected and stores just that fact. Your Play Games name and picture link can reach the app and our server inside Firebase sign-in data, but neither uses, stores or shows them, and other players never see them. Google processes your use of Google Play Games itself under its own privacy policy.

If the Google Play Games account you connect already has another online profile: when this phone's profile has no rated games, the app switches to the Play Games account's profile and deletes this phone's profile; otherwise it asks you which of the two to keep. The profile you do not keep is deleted as described in «Deleting your online profile» below, but the Play Games account's profile only if the app can reach it; if it cannot, that profile stays connected to that Google Play Games account until it is deleted there. The ratings of the two profiles are never combined. There is no separate "disconnect": to remove the connection, delete your online profile. A connected profile is not deleted automatically after 180 days without use; it is kept until you delete it or until 24 months without use (see «How long it is kept» above). Deleting your data in Google Play Games or in your Google account does not delete your online profile.

Deleting your online profile

In the app, open Settings and tap "Delete online profile". The server then removes you from your current game (a computer player takes your seat), deletes your online profile, nickname, deletion key, block list and ratings, removes your entries from every leaderboard and you from other players' block lists, replaces your profile ID with "deleted" in the game logs it keeps and your pseudonymous code with "deleted" in the records of rated games. If your profile is connected to Google Play Games, the connection and the Play Games details that Firebase Authentication stored with it are deleted with the profile. Tables you played at keep your moves and nickname until they expire as described above, without your profile ID. Playing online or opening a leaderboard again later creates a new profile with a new nickname and a new deletion key.

Without the app or the phone, you can have any online profile, including one connected to Google Play Games, deleted by email: copy its deletion key in Settings → Online → "Deletion key" ("Show", then "Copy") while you still have the app, and email it to underdogco@proton.me with the subject "Delete online profile". Within 30 days we delete the profile the key belongs to in the same way as above, reply to you and then delete your email and our reply. Anyone who has the key can have the profile deleted, and a deletion cannot be undone, so keep the key private and never post or share it. Without the key we cannot identify a profile on request by email (it is anonymous, and nicknames are public and not unique); we can answer questions about it. A profile is also deleted automatically after 180 days without use, or 24 months if it is connected to Google Play Games (see «How long it is kept» above). To delete a connected profile when you no longer have the phone it was on and did not save the key, you can also install the app on an Android device, connect the same Google Play Games account in Settings (this brings the profile back) and tap "Delete online profile". See Data Deletion Instructions.

4. Ads and your choices (Google AdMob)

The app shows ads served by Google AdMob (the Google Mobile Ads SDK, provided by Google LLC and, in the EEA and the UK, Google Ireland Limited):

The ads come from Google's own ad demand. If we add other ad networks, we will name them here before they are used. We block ads for gambling, dating, alcohol and other mature categories.

When ads start

On the first launch the app shows no ads, no consent form and no tracking prompt, and starts no ad SDK until you have finished your first game (before that it only checks, without showing anything, whether your region requires consent; see section 2). The Meta SDK can start earlier; section 5 says when. After that game, once you leave its result screen, or on a later launch on the home screen (never during a game), the app shows Google's consent form (Google User Messaging Platform) where the law requires one, for example in the EEA, the UK and Switzerland, or an opt-out message in US states that require it. On iOS, the system's App Tracking Transparency prompt follows only after that answer is settled, and not at all if you declined consent in the EEA, UK or Swiss consent form (ads then start non-personalized, without the IDFA). The ad SDK starts only after these steps, with your answers.

What the ad SDK processes

To show, measure and protect ads (for example against fraud), and to personalize them if you allow it, the Google Mobile Ads SDK processes: the advertising identifier (the Android advertising ID; on iOS the IDFA only if you allow tracking), your IP address and the approximate location derived from it, device and app information (such as device model, operating system, language and app version), ad interactions (ads requested, shown, tapped and rewards earned) and diagnostics of the SDK. Google uses this data as an independent controller under its own policies: How Google uses information from sites or apps that use its services.

Personalized and non-personalized ads

If you consent, Google may personalize ads based on your interests. If you do not consent where consent is required, the app requests non-personalized ads, chosen from the context (such as the app and your approximate location) rather than your profile; Google may then show limited ads or none.

Your choices

5. Meta (Facebook) SDK

We use the Meta SDK (provided by Meta Platforms Ireland Limited and Meta Platforms, Inc.) to measure how our ads on Facebook and Instagram bring new players and to improve those ad campaigns. Where Google's consent service reports that no consent is needed, it starts on the first launch. Elsewhere it starts only after the consent step (section 4) and only when your answer allows it: where the consent form is shown under EU or UK rules, only if you consent and Meta is among the advertising technology providers you allow; where US state law offers an opt-out, not if you opted out. Automatic event logging and automatic purchase logging are switched off. The app sends Meta only these events:

With these events the Meta SDK sends its own anonymous installation ID, the advertising identifier (on iOS only if you allow tracking), device and app information and your IP address. The app sends no name, email, user ID, game content or text you type. Meta processes this data under its own Privacy Policy and may combine it with other information it has, for example about a Facebook or Instagram account on the same device. You can see and disconnect such activity in Meta's Accounts Center ("Your activity off Meta technologies"). Withdrawing consent in Settings → "Ad privacy choices" stops the Meta SDK and deletes events it has not sent yet.

6. The "Remove ads" purchase

"Remove ads" is a one-time in-app purchase through Google Play or the App Store. The store processes the payment under its own terms and privacy policy; we never receive your payment details, name or email address. The app receives the store's confirmation of the purchase, confirms (acknowledges) it with the store, remembers on your device that you own it and checks it with the store at every start, so a refunded purchase brings the ads back. "Restore purchases" in Settings restores it on another device with the same store account. The purchase is recorded in Firebase Analytics as described in section 2 and, if the Meta SDK is running (section 5), sent to Meta with its price and currency.

7. Legal basis

We process the data above on the basis of our legitimate interest in keeping the app working, fixing errors and improving the games (for example GDPR art. 6(1)(f) in the EU and UK, LGPD art. 7, IX in Brazil), with the right to object described in this policy, and on your consent where the law requires it. Online play data (section 3) is processed to provide the online play you ask for (GDPR art. 6(1)(b), LGPD art. 7, V) and, for abuse prevention and security, on our legitimate interest in keeping online games fair and the server safe. Ratings and the connection to Google Play Games are part of the online play you ask for (GDPR art. 6(1)(b)); showing your entry on a leaderboard, which you can turn off at any time, relies on our legitimate interest in offering public rankings (GDPR art. 6(1)(f), LGPD art. 7, IX). Personalized ads, ads measurement, storing or reading information on your device for ads, and the Meta SDK rely on your consent where the law requires it (for example GDPR art. 6(1)(a)); non-personalized ads, which fund the free app, rely on our legitimate interest. The "Remove ads" purchase is processed to perform the purchase you make (GDPR art. 6(1)(b)).

8. Your rights

Depending on where you live you can request access, correction, deletion, portability or information about the data, object to its processing or withdraw consent (for example under the GDPR in the EU and UK, LGPD art. 18 in Brazil, the CCPA/CPRA in California and other US state laws), and complain to your data protection authority. We do not sell personal information for money. Under some US state laws, the advertising identifier and app events that the ad SDK and the Meta SDK receive (sections 4 and 5) can count as "selling" or "sharing" personal information for cross-context behavioral advertising, or as targeted advertising; where your state gives you the right to opt out, the consent form offers it, and you can change your choice at any time in Settings → "Ad privacy choices". The data described above is pseudonymous (identifiers, not your name or email) and is held by Google as described; you can delete your online profile yourself in the app or have it deleted by emailing us its deletion key (section 3); a profile is also deleted automatically after 180 days without use, or 24 months if it is connected to Google Play Games. Write to us at underdogco@proton.me and we will help you, including with requests to Google about data it processes for us. We answer within 30 days. How to delete data: Data Deletion Instructions.

9. Children

The app is not directed to children under 13 (or the age of digital consent in your country) and we do not knowingly collect their data. Online play has no chat and no free text: players communicate only through preset emotes and see only generated nicknames, at tables and on leaderboards, so no personal information can be exchanged there. If you believe a child's data was collected, contact us and we will delete what we can.

10. Changes

We will update this page before the app's data processing changes (for example, before a new ad network is used); the effective date above shows the latest version.

11. Contact

underdog co, underdogco@proton.me