← 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 boards, level progress, stars, daily streak, statistics 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 board cleared,
the Pro / "Remove ads" sheet being opened and where from (Settings, out of hints, out of hearts, a locked arrow colour style 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 board as cleared or given up together with its running number (1st, 2nd, 3rd board on this install), a tap on one of our other games in “More games from us” (which game only), the ad-frequency test group this install was placed in,
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, board layout, moves 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.
2. Where data lives
| Data | Purpose | Location |
| Board in progress (so you can continue after closing the app) | Resuming your board | On device |
| Level progress, stars, statistics, daily streak | Showing your records | On device |
| Settings (path preview, vibration, theme, arrow colours, text size, sound, keep screen on) | 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 (board in progress, level progress, stars, daily streak, statistics, 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.
- 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 board is in progress — not when you start, when an arrow moves or bumps, when you restart or when you ask for a hint. At most one can appear
when you leave the result of a finished board, never within your first three finished boards, and at least 3 minutes apart.
- Rewarded ads play only when you choose to watch one, for an extra hint once the free hint on a board is used, or for one more heart when a board runs out of hearts.
- 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 one more heart 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-06 | First published (including the data retention section). |