Clockwork Courier
Clockwork Courier has no accounts of its own and no game server. Your progress, keys, settings and unlocked finishes are saved in a few small files on your phone and never leave it. If you use Google Play Games, the achievements you earn are also kept with your Play Games profile.
The advertising and analytics components do collect data. The game shows optional rewarded ads and occasional ads between rooms through Unity LevelPlay, which requests them from ironSource Ads, Unity Ads and Google AdMob and uses device and advertising identifiers to serve and measure them. With your consent, it sends measurements to Google Firebase Analytics under a random app instance ID: which rooms are started, solved or failed and how, which chapters are opened and finished, hints and skips, which optional ads are offered, watched or turned down, what ads earn, and which purchases are completed. That's how I find out which rooms are too hard and whether the ads are fair.
If you buy Remove Ads, a Master Key or Unlimited Keys, Google Play handles the payment and I never see your payment details.
Everything below is the long version of those paragraphs.
Clockwork Courier is developed and published by Andy Marcus ("I", "me", "the developer"), an independent developer. For the purposes of the UK GDPR and EU GDPR, I am the data controller for the limited processing described in this policy.
Contact: clockworkcourier@andymarcus.com
I do not operate an account system, leaderboard or game server. The game keeps its state in small files in the app's private storage on your phone:
These files are never uploaded, are not backed up to me, and are excluded from Android's app backup. I have no way to read them. Uninstalling the game or clearing its storage deletes them. Reset Progress in the game's settings also wipes your progress.
One distinction is worth stating plainly: the files stay on your phone, but some of what they record (rooms solved, cogs earned, rooms skipped) is also sent as separate analytics events when it happens, described in section 03. Those events carry no name, email or account identifier.
The game includes Unity's and Google's advertising components, and Google's consent, analytics, billing and Play Games components. Unity and Google operate these services under their own policies. I receive analytics reports through Firebase and revenue reports from Unity LevelPlay.
Clockwork Courier shows two kinds of ad:
The game shows no banner ads.
To serve and measure these, the Unity LevelPlay SDK and the ad networks it requests ads from (ironSource Ads, Unity Ads and Google AdMob, which bid for each ad) may collect and process:
This is used to choose ads, limit how often you see the same one, measure performance, and detect invalid or fraudulent traffic. ironSource Ads and Unity Ads are both operated by Unity. See Unity's privacy policy for game players and app users, and, for AdMob and the consent message described in section 06, Google's Privacy Policy and how Google uses data from apps that use its services.
Unity LevelPlay and Google Play already report installs, sessions and revenue without any extra code. Firebase Analytics answers the questions they can't: which rooms players get stuck on or give up at, how far through the four chapters they get, and how often an optional ad is offered and turned down. An ad network only ever sees the offers that were accepted, and refusals are how I find out an offer is annoying rather than useful.
When analytics is allowed (see section 06), the Firebase SDK collects and processes:
BIND_GET_INSTALL_REFERRER_SERVICE
permission in section 05 is for.
What it deliberately does not collect: no free text of any kind, no contacts, no account or email, and no advertising ID. Analytics is built with advertising-ID collection switched off; that identifier belongs to the ads SDK described above. The game sets no user ID and no user properties, and makes no attempt to link any of this to a real identity.
Read Firebase's privacy and security documentation and the list of data Google Analytics for Firebase collects.
The game offers three optional purchases: Remove Ads (stops the ads between rooms; optional rewarded ads stay available because you always choose to start them), the Master Key (24 hours of unlimited wind-up keys) and Unlimited Keys (unlimited wind-up keys for good). Payment is handled entirely by Google Play. I receive only confirmation that a purchase of one of my product identifiers succeeded. I never receive or store your name, card number, billing address or any other payment detail. Restore Purchases in the game's settings asks Google Play what you own; it sends nothing to me.
The game has 16 achievements through Google Play Games. Play Games connects using your Google gaming profile: it signs you in automatically if you've used Play Games before, and otherwise asks once, on the first launch, and again only if you open Achievements in Settings. When you're connected, the game sends Google your achievement unlocks and progress counts, worked out from your saved progress, and Google keeps them with your Play Games profile. Google may show your gamer name and avatar on its own achievement and profile screens, and other players may see your achievements according to your Play Games profile visibility settings.
There are no leaderboards. The game doesn't read your gamer name, email address, contacts or friends list, and doesn't store your Play Games player ID. Google also collects Play Games SDK analytics and diagnostics to maintain and improve the service; this is separate from the game's Firebase analytics and its ad consent controls. See Google's Play Games data disclosure and Google's Privacy Policy. The game plays the same without a Play Games connection; only achievements need it.
The game is distributed through Google Play and relies on Google Play Services on your device. Google may process data in connection with app distribution, updates and integrity checks independently of this policy.
| Data type | Collected | Shared | Purpose |
|---|---|---|---|
| Advertising ID | Yes | Yes | Advertising, frequency capping, fraud prevention (ads SDK only) |
| App instance ID | Yes | No | Counting one player's events as one player's; processed by Google Firebase on my behalf |
| Device & app info | Yes | Yes | Ad serving and measurement; analytics |
| Approximate location (from IP) | Yes | Yes | Regional ad selection, analytics, legal compliance |
| App interactions: rooms played, chapters, hints, skips, ads offered, watched or declined | Yes | No | Finding rooms that are too hard; measuring how intrusive the game's ads are |
| Play Games achievements and player ID | Yes | No | Awarding achievements; held by Google with your Play Games profile |
| Purchase history | Yes | No | Delivering what you bought; held by Google Play |
| Name, email, phone, address | No | No | — |
| Precise location | No | No | — |
| Contacts, photos, files, messages | No | No | — |
| Your saved progress | No | No | Stays on your device (section 02) |
Google Play's Data safety form uses broader categories and its own definitions of collection and sharing. The table above explains what each service receives.
| Permission | Why |
|---|---|
| INTERNET | Requesting ads, sending analytics events, talking to Google Play Billing and syncing achievements with Google Play Games. Every room plays offline. |
| ACCESS_NETWORK_STATE | Checking whether a connection exists before requesting an ad. |
| VIBRATE | Haptic feedback as you place pieces and during runs. Can be turned off in Settings. |
| AD_ID | Reading the advertising identifier, required by the ads SDK on Android 13 and above. |
| ACCESS_ADSERVICES_AD_ID, _ATTRIBUTION, _TOPICS | Added by the ads and analytics SDKs for Android's Privacy Sandbox advertising APIs. |
| BILLING | Offering Remove Ads, the Master Key and Unlimited Keys through Google Play. |
| BIND_GET_INSTALL_REFERRER_SERVICE | Added by Firebase Analytics. Lets Google attribute an install to the listing or campaign it came from. |
| WAKE_LOCK, FOREGROUND_SERVICE, READ_BASIC_PHONE_STATE | Added by the ads SDKs, Firebase and Google Play Services components; not used by the game directly. |
This list is read from the merged manifest of the game's release build, not written
from memory. The build also declares one permission of its own,
com.clockworkcourier.game.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION, an
Android support-library guard that stops other apps talking to the game's internal
broadcast receivers. It grants the game nothing.
Before any ad is requested, the game shows a Google-certified consent message using Google's User Messaging Platform. You may refuse personalised ads and the game stays fully playable; non-personalised or limited ads may still be available, depending on your choices and the network. You can reopen that choice at any time from Settings → Privacy Options in the game, on the title screen or from the pause menu.
Analytics follows the analytics choice in that message, separately from permission to show ads. Until you allow it, Firebase collection is switched off and every Google consent signal defaults to denied. The few events that happen before you answer are held in memory only: they are sent if you allow analytics, and discarded if you don't or when the app closes. Nothing is written to storage for later sending. Refusing or withdrawing consent switches Firebase analytics off again.
Where no consent message is required, ads and analytics run as described in section 03. Where Google's consent tool can't confirm your status (for example, on a first launch with no connection), ads and analytics stay off until it can.
Ad personalisation may count as a "sale" or "sharing" of personal information, or as targeted advertising, under some US state privacy laws. In the states where those laws apply, Google's consent tool shows a US privacy message, and you can opt out there or later from Settings → Privacy Options.
From version 1.0.4, the game passes an opt-out of sale, sharing or targeted advertising to Unity LevelPlay before any ad is requested, and LevelPlay passes it on to the ad networks it uses. If the game can't read a US choice, it treats it as an opt-out. When you change your choice, ads already loaded under the old one are discarded. The device advertising controls above work everywhere. Section 09 describes your other US rights.
Where the UK or EU GDPR applies:
The analytics events in section 03 are kept in my Firebase project for 14 months of user-level data, after which Google deletes them automatically. Aggregate reports built from them may be kept longer, in a form that describes players in general and no player in particular. Advertising data held by Unity and Google follows each provider's own retention schedule. Purchase records held by Google Play, and achievements held by Google Play Games, follow Google's schedules.
Because those events carry a randomly generated app instance ID and nothing else, I can't look up "your" data, which is also why I can't delete it on request: there is nothing to match a request against. Clearing the app's data severs the identifier immediately, and the retention window disposes of what came before.
Unity and Google operate globally and may process data outside your country, including in the United States. Their privacy policies describe the safeguards and transfer mechanisms they use.
Depending on where you live, you may have rights to access, correct, delete or port your personal data, to object to or restrict processing, and to withdraw consent. Withdrawing consent is the one you can do yourself in seconds, from Settings → Privacy Options.
For data held by Unity or Google, you can also use the rights and contact channels in their privacy policies linked in section 03. The analytics data in my own Firebase project is pseudonymous, as section 08 explains, which limits what a request can be matched to. Write to me anyway and I'll do what can be done and tell you plainly what can't.
If you are in the EEA or UK you may also complain to your national data protection authority. In the UK that is the Information Commissioner's Office.
This part is the notice that California and other US state privacy laws ask for. In the last 12 months the game has collected these categories of personal information, all from your device and the game itself:
| Category | What it covers here | Who receives it | Sold or shared? |
|---|---|---|---|
| Identifiers | Android advertising ID; Firebase app instance ID; Play Games player ID | Advertising ID: Unity (LevelPlay, ironSource Ads, Unity Ads) and Google (AdMob). App instance ID: Google (Firebase), on my behalf. Player ID: Google (Play Games) | Advertising ID: may be, for targeted advertising. App instance ID and player ID: no |
| Internet or other electronic network activity | Interactions with ads; the gameplay events in section 03 | Ad interactions: the ad networks above. Gameplay events: Google (Firebase), on my behalf | Ad interactions: may be. Gameplay events: no |
| Device information | Model, operating system and app version, language, network type | The ad networks above; Google (Firebase) | May be, with ads |
| Geolocation | Approximate only, inferred from your IP address | The ad networks above; Google (Firebase) | May be, with ads |
| Commercial information | Which in-app products you bought | Google Play (which handles payment); Google (Firebase), on my behalf | No |
"Sold or shared" means made available to ad networks so they can personalise ads, which some US laws treat as a sale, as sharing for cross-context behavioural advertising, or as targeted advertising. Apart from that, I don't sell or share personal information. I don't collect sensitive personal information, and I don't knowingly sell or share the personal information of anyone under 16. How long each category is kept is in section 08.
Depending on your state, you have the right to:
To make a request, email clockworkcourier@andymarcus.com. An authorised agent may make one for you with your written permission. I'll answer within 45 days. As section 08 explains, I hold nothing that names you, so for access, correction or deletion I can usually only tell you what the game collects and how to clear it yourself, and point you to Unity and Google for what they hold.
If I turn down your request, you can appeal by replying to my answer with the word "Appeal". I'll reply within 45 days. If you're still not satisfied, you can contact your state's Attorney General.
Clockwork Courier is intended for players aged 13 and over and is not directed to children. It is not enrolled in Google Play's Designed for Families programme. I do not knowingly collect personal information from children. If you believe a child has provided information through this app, contact me and I will act on it.
If this policy changes, the date at the top of the page changes with it. Material changes, such as a new third party or a new category of data, will also be noted in the app's release notes. This policy describes how data is handled; it does not replace any consent Google or the game asks for.
Questions, requests or corrections: clockworkcourier@andymarcus.com