Konfeti Games

Privacy Policy

Starlane — iOS and Android
Last updated: 15 September 2026 (evening)

This policy describes what Starlane collects, who receives it, why, and how to stop it. It is written to be read, not to be survived: if anything below is unclear, that is a defect and you should tell us at support@konfetigames.com.

The game is operated by Konfeti Games ("we"), the data controller for the purposes of the UK and EU General Data Protection Regulation.

  1. What we collect
  2. What we never collect
  3. Advertising and your advertising ID
  4. Who else receives your data
  5. Why we are allowed to process it
  6. How long it is kept
  7. Where it goes
  8. Your rights, and how to actually use them
  9. Children
  10. Security
  11. Changes
  12. Contact

1. What we collect

1.1 Identifiers

IdentifierWhat it isWho gets it
Advertising ID
(IDFA on iOS, AAID on Android)
A resettable device-level ID used to target and measure ads. On iOS it is only read if you tap Allow on the system tracking prompt. On Android it is available unless you switch it off in system settings. Google AdMob and its advertising partners
Firebase installation / app instance ID A random ID identifying this installation of the app, regenerated if you reinstall. Google Firebase
Anonymous account ID (UID) A random ID created on first launch by Firebase Anonymous Authentication. It is not linked to an email, a phone number, or any account you own. Google Firebase, and us
Pilot code A short code derived from your UID so friends can look you up on the leaderboard. Anyone who can see your leaderboard entry

1.1a Creating an account, and syncing across devices — optional

By default your progress lives under the anonymous ID above and is not recoverable if you lose the device. If you choose to create an account (Settings → Cloud Account), you can do it with Sign in with Apple, Sign in with Google, or an email and password. Whichever you pick, it is attached to your existing anonymous ID rather than replacing it, so nothing you've already earned is lost.

MethodWhat we then hold, linked to your account
Sign in with AppleA stable, app-specific identifier from Apple, and whichever email address Apple hands us — your real one, or, if you choose "Hide My Email," a private relay address that forwards to you without revealing it to us.
Sign in with GoogleYour Google account's email address and the display name and profile photo URL Google shares for sign-in, from Google Sign-In.
Email and passwordThe email address you type. Your password is sent straight to Firebase Authentication over an encrypted connection and stored there only as a salted hash — not in plain text, and not somewhere we can read it back.

Once signed in, the cloud save described in §1.3 is no longer just a write-only mirror: it is readable back, so the same account opened on a second device restores your progress. If that device already had different local progress, you are shown a one-time choice — keep this device's save or the account's — before anything is overwritten.

You can sign out at any time (Settings → Sign Out), which returns you to a fresh anonymous session; your account and its cloud save are untouched and you can sign back in later. You can also delete your account entirely (Settings → Delete Account): this removes your Firebase Authentication identity, your cloud save, and — because a leaderboard or Daily Flight entry under your UID would otherwise outlive an account nobody can prove they own — your leaderboard row and any Daily Flight entries and ghost traces you published. This is immediate and irreversible, unlike the cloud-save deletion in §8, which previously required emailing us.

1.2 Gameplay analytics

Every one of the following events is sent to Google Analytics for Firebase, with the parameters listed. This is the complete list; there are no others.

EventParameters sent
run_startedlevel, difficulty, ship skin
run_endedlevel, score, distance, reason the run ended, credits earned
level_clearedlevel, score, seconds taken
victoryscore
coins_earned / coins_spentamount, source or item
upgrade_boughtupgrade id, level, price
skin_bought / skin_selectedskin id, price
ad_requested / ad_shown / ad_rewarded / ad_failedplacement (revive, double coins, free coins, interstitial)
daily_claimedstreak length, amount
mission_claimedmission kind, reward
revive_usedmethod (ad or credits), level
language_changedlanguage code
iap_purchasedproduct id, credits granted

Four properties are attached to your anonymous profile so events can be grouped: your language, your difficulty setting, your selected ship skin, and your highest level reached.

Google Analytics also automatically records, without us asking it to: device model, operating system version, app version, country and language, session start and length, and first-open time. It derives approximate location (usually country or city level) from your IP address. Google does not give us your IP address, but Google has it.

1.3 Cloud save

When the app goes to the background, we write one document to Google Cloud Firestore at players/<your UID> containing exactly: your best score, your highest level reached, your credit balance, your total number of runs, the platform (ios or android), and a server timestamp. Nothing else.

1.4 Leaderboard — only if you opt in

The leaderboard is opt-in by construction: it requires a pilot name, and there is no name by default. If you leave the name field in Settings empty, nothing is ever published and your scores stay on your device and in your private cloud save.

If you do enter a name, we write to leaderboard/<your UID>: the name (truncated to 18 characters), your best score, your highest level, your pilot code, the current ISO week key, your best score this week, and a server timestamp. Anyone using the app can see this. Choose a name accordingly — do not use your full legal name.

1.5 Daily Flight and challenge links — also only with a pilot name

The Daily Flight is one course a day, the same for every player. If you have a pilot name and beat your own best for the day, we write to daily/<day>/entries/<your UID>: the name, your pilot code, that day's best score and distance, your ship skin, the platform, and a server timestamp. Beside it, daily/<day>/ghosts/<your UID> holds the same fields plus a ghost trace — your ship's position across the lane, sampled once every 4 km of that run — which other players race against. Anyone using the app can see that day's board: your name, score and ghost. With no pilot name nothing is written, and your daily best stays on your device.

If you share a challenge link, the link itself carries your pilot name, your pilot code, the day and your score, so anyone who receives it can read them. It opens a page on our website (starlane.konfetigames.com) that runs no analytics, sets no cookies and loads nothing from third parties; it only hands the challenge to the app. Opening someone else's link adds that pilot to your friends list, which is kept only on your device.

1.6 Crash and performance data

Firebase Crashlytics receives crash stack traces, the device model, operating system version, app version, and the device's memory, storage and orientation state at the moment of the crash. It is not linked to your leaderboard name.

1.7 Data that never leaves your device

Your settings, credit balance, unlocked levels, upgrades, daily reward streak, mission progress, this week's best score, your friends list, and the past week's Daily Flight bests and ghosts are stored locally (iOS UserDefaults, Android SharedPreferences). They leave the device only as part of the cloud save, leaderboard and Daily Flight entries described above. Deleting the app deletes all of it.

1.8 In-app purchases

The game sells three kinds of one-time purchase: a Remove Ads upgrade, a one-time Welcome Pack, and consumable Credit Packs. Every purchase is processed entirely by Apple (StoreKit) or Google (Play Billing) — your card number, bank details, and any other payment credentials go directly to them and are never sent to us or to Firebase. Once StoreKit or Play Billing confirms the transaction, the only thing we receive is the iap_purchased analytics event described in §1.2: the product's ID and the number of credits it granted. Not the price, not your payment method, not your name. Restoring a purchase on a new device goes through Apple or Google directly (Store → Restore Purchases) — it does not require or create an account with us.

2. What we never collect

3. Advertising and your advertising ID

The game shows two kinds of ad: full-screen ads between runs, and optional rewarded ads you choose to watch in exchange for credits or a second life. Both are served by Google AdMob.

To sell an ad, AdMob transmits to its ad partners: your advertising ID, your IP address (and the approximate location derived from it), your device model and operating system, your language and country, and information about the ad itself — that it was requested, shown, clicked, or that a reward was earned. Under Google's participation in the IAB Transparency and Consent Framework, this can be shared with a large number of separate advertising companies; the current list is shown in the consent form itself, behind the "List of partners" link, and we recommend actually opening it once.

If you are in the EEA, the UK, or Switzerland

On first launch you are shown a consent form. If you choose Do not consent, the advertising SDK is not started at all and no ad request is made. You can change that decision at any time from Settings → Ad privacy options, and the new choice takes effect on the next ad request.

If you are on iOS

iOS shows Apple's App Tracking Transparency prompt. Choosing Ask App Not to Track means the IDFA is not available to us or to Google, and the ads you see are chosen without it. The game remains fully playable and every reward is still obtainable; only the ads become less specific.

If you are on Android

You can reset or delete your advertising ID in Settings → Privacy → Ads on your device.

Ad content rating

We ask AdMob to serve only ads rated T (teen) or lower — G, PG or T. Ads rated MA (mature audiences) are never requested. Ad content is nonetheless chosen by Google, not by us, and we cannot review individual ads before they appear.

4. Who else receives your data

RecipientWhat they receiveTheir policy
Google Ireland Ltd / Google LLC — AdMobAdvertising ID, IP address, device and ad interaction datapolicies.google.com
Google — Firebase AnalyticsThe events and properties in §1.2, plus automatic device datafirebase.google.com/support/privacy
Google — CrashlyticsCrash reports and device state (§1.6)firebase.google.com/support/privacy
Google — Cloud Firestore & AuthenticationYour anonymous UID, cloud save, and leaderboard and Daily Flight entries if you set a pilot name; if you create an account, your email and the account identifiers in §1.1afirebase.google.com/support/privacy
Apple — Sign in with AppleOnly if you choose that sign-in method: your Apple ID's app-specific identifier and the email or relay address you allow through (§1.1a)apple.com/legal/privacy
Google — Google Sign-InOnly if you choose that sign-in method: your Google account's email, display name and profile photo URL (§1.1a)policies.google.com/privacy
AdMob's advertising partnersAs disclosed in the consent form's partner listListed individually in that form
Other playersYour pilot name, scores, level and pilot code, and on the Daily Flight board your distance, ship skin and ghost trace — only if you entered a name—
Whoever you send a challenge link toThe pilot name, pilot code, day and score written in the link (§1.5)—

We do not sell your personal data, and we do not share it for cross-context behavioural advertising beyond the advertising described in §3. If you are a California resident, that advertising may nonetheless count as a "sale" or "share" under the CCPA/CPRA; declining consent, or opting out through the form available in your region, stops it.

5. Why we are allowed to process it

6. How long it is kept

7. Where it goes

Google processes this data on servers in the United States and elsewhere. Transfers out of the EEA and the UK rely on the European Commission's Standard Contractual Clauses and, where applicable, the EU–US Data Privacy Framework, both of which Google has adopted.

8. Your rights, and how to actually use them

If you are in the EEA, the UK or Switzerland you have the right of access, rectification, erasure, restriction, portability, and objection, and the right to withdraw consent at any time. If you are in California you have the right to know, delete, correct, and to opt out of sale or sharing, and not to be discriminated against for exercising them.

In practice:

9. Children

The game is a general-audience product. It is not directed to children under 13 (or under 16 in jurisdictions that set that age), and we do not knowingly collect personal data from them. If you believe a child has provided personal data — realistically, by typing a real name into the leaderboard — contact us and we will delete the entry.

10. Security

Traffic between the app and Google's services is encrypted in transit. Leaderboard and Daily Flight documents are readable by any player by design; write access is restricted to the owner of the anonymous UID by Firestore security rules, and a Daily Flight entry can only be written around its own day and only to raise the score. No system is perfectly secure, and we will not claim otherwise.

11. Changes

If this policy changes materially — a new category of data, a new recipient, a new purpose — we will update the date at the top and, where the law requires it, ask for your consent again through the in-app form.

12. Contact

Konfeti Games
support@konfetigames.com