← AppFactory Studio
1. What we collect
We collect and keep no personal data ourselves. There is no sign-up, no login and no account.
The app sends our server the anonymous usage events described below, which contain no personal data, and —
only if you choose to send it — the feedback you type.
The advertising SDKs bundled in the app do collect data in order to serve ads (see section 4).
- Your games, statistics, dice tally and settings are stored only on your device (and in your device's own Android backup if you use it).
- The advertising identifier (GAID) is used by the ad SDKs. Our own app code neither reads nor stores it.
- Anonymous usage events — the app sends a small, fixed set of anonymous events (first launch, first game won against the computer,
the Pro / "Remove ads" sheet being opened and where from (Settings, out of hints, out of undos, a locked dice colour or the result screen),
purchase started, completed, cancelled or failed, restore attempted, a rewarded-ad offer being shown, tapped or rewarded,
an interstitial ad being shown or failing to display, a loaded ad expiring before it could be shown (ad format only),
each finished game as won or not won together with its running number (1st, 2nd, 3rd game on this install),
the in-app review request being shown, and whether the app was reopened on day 1 and day 7) to a server we operate.
Each event carries only an install identifier the app generates at random, an app tag,
the event name and a timestamp; no advertising ID, device identifier, name, dice, scores or time is included. We use it solely to
see where people drop off, and raw events are deleted within 3 months, leaving only aggregate counts.
- Crash reports — if the app crashes, Firebase Crashlytics (Google) sends a crash report: the stack trace, device model, OS version, app version and a random installation identifier generated by Crashlytics. It contains no personal data and no game content, and is used only to fix bugs. There is no third-party analytics SDK.
- Feedback you choose to send — only if you use “Tell us anything” in the app, we receive the category you picked,
the text you typed (up to 1,000 characters), the app version, your device language, the screen or level you were on,
and a random install identifier generated by the app. There is no name, email, account or advertising ID field, and
email addresses or phone numbers typed into the message are masked before it is stored. Your IP address is not stored.
We use feedback only to fix bugs and improve the game; it is not shared with third parties or used for advertising.
Sending feedback is optional. Messages are kept on our server (Cloudflare) and deleted within 12 months.
- Ad check before ads start — before turning ads on, the app sends our server one request containing only the app's name,
so that automated test devices (such as Google Play pre-launch testing) do not load real ads. The server uses the connection's IP address
only for that check and does not store it; it keeps only a daily count per app.
- Ad settings download — when it starts, the app downloads a small ad-settings file from our website
(hosted by Vercel) that sets how often ads may appear, for example the minimum time between ads, so we can tune
and compare ad frequency without an app update. The request contains no identifier; like any web request it
reveals the connection's IP address to the hosting provider, which uses it only to deliver the file — we receive
no copy and keep no log of it. If the install is placed in an ad-frequency comparison group, that group's name (for example
“gap_test.b”) is sent as one more anonymous usage event. The file can only lower or space out ads within limits built into the app;
it can never place an ad during play. The app also tells our advertising partner (Unity LevelPlay) this ad-settings
group, the install date and whether you look likely to buy (you opened the purchase screen twice or started a
purchase), so ad frequency can be set per group; no name, account or purchase details are included.
2. Where data lives
| Data | Purpose | Location |
| Game in progress (so you can continue after closing the app) | Resuming your game | On device |
| Statistics, best scores, win streaks, dice tally | Showing your records | On device |
| Settings (rule set, mode, computer level, players, score preview, confirm before scoring, theme, dice colour, text size, sound) | Running the app your way | On device |
| Whether "Remove ads" or Pro was purchased | Unlocking and restoring the purchase | On device + Google Play |
| Crash reports (stack trace, device model, OS and app version) | Fixing bugs | Google Firebase Crashlytics — up to 90 days |
| Anonymous usage events (random install identifier only) | Seeing where people drop off | Our server — raw events for up to 3 months, then aggregates only |
Data retention
- On your device (game in progress, statistics, best scores, win streaks, dice tally, settings, purchase status) — kept until you clear the app's data or
uninstall the app. Uninstalling deletes all of it. We have no copy. If you use Android backup, a copy is kept in your own Google account backup under Google's rules.
- Anonymous usage events — stored on our server for up to 3 months, then deleted; only aggregate counts with no install identifier are kept after that.
- Ad check request — the connection's IP address is used only for the check and is not stored; we keep only a daily count per app with no identifier.
- Ad settings file — nothing is stored on our side for this download; the app keeps the last file it
downloaded on your device until you clear the app's data or uninstall the app. The comparison-group event is kept like the other anonymous usage events (up to 3 months).
- Feedback — feedback you send from inside the app (your message, its category, app version, language, the screen or level you were on, and the
random install identifier) is stored on our server for up to 12 months, then deleted.
- Crash reports — retained by Google (Firebase Crashlytics) for 90 days.
- Purchases — payment records are kept by Google Play under Google's own retention rules; we store no payment details.
- Advertising and consent — data processed by Unity LevelPlay and the ad partners in section 4 is retained by those providers under their own policies.
Your consent choice is stored on your device.
- We keep no other user data.
3. App permissions
| Permission | Used for |
| Internet, network state | Showing ads, in-app purchase, sending anonymous usage events and crash reports |
| Advertising ID (com.google.android.gms.permission.AD_ID) | Used by the ad SDKs (section 4), not by our own code |
The app needs no camera, location, contacts, photo or storage permission.
4. Third-party services
Google Play Billing — in-app purchases are processed by Google, and the app
only checks whether you own an item. We never see your payment details. Google's handling is
covered by the Google Privacy Policy.
Firebase Crashlytics (Google) — crash reports as described in section 1, covered by the
Firebase privacy information.
Unity LevelPlay & Unity Ads (Unity Technologies / ironSource) — to serve interstitial and rewarded ads via mediation, it
collects and uses the advertising identifier (GAID), IP address, device information (model,
OS version, language, etc.) and ad-interaction data, which may be passed to advertising
partners during ad bidding. Unity's handling is covered by the
Unity Privacy Policy,
and you can opt out of personalized ads via the information icon shown on ads.
Ad mediation partners — ads are selected through Unity LevelPlay mediation, which runs a
real-time auction among the networks below. Each network's SDK is included in the app and, when it takes
part in an auction, may process the advertising identifier (GAID), IP address (used to estimate an
approximate region), device information, ad-interaction data and SDK diagnostic/crash information for
ad delivery, measurement and fraud prevention. Each partner's handling is covered by its own policy:
5. Consent in Europe (GDPR / EEA, UK, Switzerland)
On devices that appear to be in the EEA, the UK or Switzerland, the app shows the
InMobi Choice consent dialog (CMP) before any advertising SDK starts. It follows the IAB TCF standard.
- If you do not consent, or you dismiss the dialog, the ad SDKs are not initialised at all — no ad request is sent.
- You can reopen it and withdraw consent any time from Settings → "Privacy choices".
- Outside those regions the dialog does not appear; you can still limit personalised ads by resetting or deleting the advertising ID in your device settings.
6. International transfers
We transfer no personal data ourselves. The anonymous usage events in section 1 are processed on
Cloudflare infrastructure (which may be located abroad) and contain no personal data. The advertising partners listed
in section 4 may process data on servers abroad (including the United States) while serving ads, under their own
policies. In Europe this only happens after the consent described in section 5.
7. Ad formats
- The app shows interstitial and rewarded ads. There are no banner ads and no ads when the app opens.
- Interstitials never appear while a game is in progress — not when you start, between your rolls, when you undo or when you ask for a hint. At most one can appear
when you leave the result of a finished game, never within your first two finished games, and at least 3 minutes apart.
- Rewarded ads play only when you choose to watch one, for an extra hint or an extra undo once the free ones in a game (3 hints, 2 undos) are used, or for one extra roll per game. Pass-and-play games have unlimited free undos.
- The one-time in-app purchase "Remove ads" removes all interstitials; optional reward videos stay available. Pro (one-time) removes all ads and gives unlimited hints and undos and the extra roll without a video. No subscription.
8. Children
This app is for a general audience and is not directed at children under 13.
9. Your rights
- Change or withdraw ad consent — Settings → Privacy choices (devices in Europe).
- Reset or delete the advertising ID — device Settings → Privacy → Ads.
- Delete everything — removing the app erases all of its on-device data.
- Questions — email us at the address below.
10. Contact
Email: leehywo1@icloud.com
Privacy contact: AppFactory Studio Privacy | leehywo@gmail.com
11. Change log
| Date | Change |
| 2026-11 | Added the optional in-app feedback form (“Tell us anything”); the Google Play Data Safety declaration was updated the same day. |
| 2026-11-05 | First publication. |
| 2026-11-06 | Described the ad check request sent before ads start (app name only; IP address not stored). |
| 2026-11-06 | Added an explicit data retention section. |
| 2026-11-06 | Retention of anonymous usage data on our server changed from up to 90 days to up to 3 months (it is now stored in Cloudflare Workers Analytics Engine, which keeps data for 3 months). |
| 2026-11-06 | Added the ad-settings download (ad frequency settings from our website, hosted by Vercel) and its anonymous comparison-group event; data retention section updated. It takes effect with the next app update. |