Privacy Policy - Fish & Keep
Last updated: 06.11.2026 (effective from 06.11.2026)
This Privacy Policy explains what information the mobile game Fish & Keep (the "Game"), developed and published by Progus, handles when you play it. It covers all versions of the Game. Version 2.0 adds a consent window, our own game server, a weekly tournament and other features. Where versions differ, this Policy says so: if you have not updated to version 2.0 yet, the parts about "versions before 2.0" apply to you.
1. Data Controller
Progus sp. z o.o., ul. Sklepowa 27, 97-500 Radomsko, Poland (KRS 0001078024, NIP 7722434496) ("PROGUS", "we") is the controller of the data described below. Processing follows the GDPR (Regulation (EU) 2016/679). Contact: [email protected].
2. Summary
- The Game needs no account, email address or phone number, and it shows no advertisements.
- We do not sell your data, and we do not use it for advertising or to track you across apps and websites of other companies.
- Versions before 2.0 use services of Unity Technologies, which collect technical and usage data automatically (section 3.1).
- From version 2.0, analytics are sent only if you agree, and they go to our own server, not to Unity or any other analytics company. Purchases are verified and the weekly tournament runs on our server.
- From version 2.0, if your result enters the weekly tournament, your nickname, the weight of your fish, the fishing spot, your level and your platform are shown publicly on the leaderboard, and in the group table your nickname and the flag of your country, unless you hide the flag. The nickname is the one you type in your in-game profile. If you have not typed one, it is your Game Center or Google Play Games nickname when you are signed in there, otherwise an automatically generated one (for example "Mossy Trout 318"). Nicknames are public content written by players: they pass a word filter, and players can report or block each other (section 3.2e).
- Your profile photo, if you choose one, is never sent to our server, and other players do not see it.
3. What Data We Process and Why
3.1 Versions before 2.0
Versions before 2.0 do not ask for consent and do not use our game server. To run the Game, process in-app purchases and understand how the Game is played, they use services of Unity Technologies, the maker of the game engine (Unity Gaming Services and, in earlier versions, Unity Analytics). These services automatically collect:
- device and installation identifiers;
- information about how the Game is used (sessions and in-game events);
- technical and diagnostic data (for example device model, operating system version and app version) and your IP address, from which Unity may determine your approximate location.
We use this data only for analytics and to keep the Game working. The player name you can enter in your profile stays on your device in these versions.
3.2 From version 2.0
a) Consent window and analytics (only with your consent).
When you first open version 2.0, the Game shows a consent window with two equal buttons ("I agree" and "Not now"). If you choose "Not now", the Game may ask you once more after 30 days. You can change your choice at any time in Settings, Privacy (switch "Game data with installation ID").
Only if you agree, the Game sends analytics events to our own server (section 3.2c). Until then it creates no events and keeps no queue. The events are:
-
app_open: start of a session, whether it is the first start after installation and whether the Game returned from the background; -
session_end: length of the session in seconds, the number of fish caught and the number of fights, line breaks and escaped fish in that session, and the last screen you were on; tutorial_step: the tutorial step you completed;-
catch: rarity of the fish, fishing spot, your level and the weight of the fish; -
rare_catch: for legendary fish, wonders and special variants: rarity, whether it was a wonder, the variant and the fishing spot; -
purchase: which product you bought, whether our server confirmed it and whether it was a test purchase; level_up: your new level.screen_time: which screens and tabs you opened, how many times and for how many seconds in total (sent at the end of a session, as numbers);shop_buy: what kind of item you bought in the Game with coins or diamonds, its number and level, and the price in coins or diamonds;gear_equip: which gear you put on (slot, level, finish);skill_up: which skill you raised and its new rank;quest_claim: a daily task or chest reward you collected (coins and diamonds);album_new: a new species in your album and how many species you have;aquarium: keeping or selling a fish, feeding, collecting visitor coins;league: promotion, relegation or staying in your league, the league number and your place;fight_lost: why a fish got away (line break, unhooked, missed strike), its rarity, the fishing spot and your level;account: at most once a day: your level, coins, diamonds, number of species, heaviest fish, total fish caught, days played, fish in aquariums, gear levels and skill points spent.
With each package of events the Game sends a random installation ID (created by the Game on its first start, not derived from your device, your accounts or any advertising ID), the platform (Android or iOS), the version of the Game, and the version and time of your consent (kept as proof of consent). Our hosting provider, Cloudflare, adds your country, which it determines from your connection. Our server does not read or store your IP address, and it stores only the day of each event, not the exact time. Analytics do not include your player name, device model, advertising ID, exact location, contacts or any text you type.
We use these events to see how players progress: for example at which level or screen people stop playing, how long they play each day and which parts of the Game they use. Our team can view this per installation, under a random panel ID that is different from your installation ID. That view does not show your nickname or tournament results, and we do not use it to match a profile to a nickname. All these values are numbers: no text you typed, and no exact time, only the day. We do not make automated decisions about you from this data. Test installations (TestFlight and test builds) send a flag that keeps them out of our statistics.
Events wait in a queue on your device (at most 500) until they can be sent. If you switch analytics off, the Game deletes the events not yet sent and sends nothing more. You lose nothing in the Game if you do not agree.
Purpose: to understand how the Game is played, fix problems and balance the Game. The events use the same installation ID as your purchase and tournament records on our server, so we treat them as personal data (pseudonymous data), even though they contain no name.
b) Unity.
The Game is made with the Unity engine. From version 2.0 the Game switches off Unity Analytics and Unity's device statistics, and it starts Unity Gaming Services (used by Unity's in-app purchase component) only after you agree in the consent window. If you do not agree, in-app purchases still work through Google Play or the App Store without Unity Gaming Services. The Unity engine itself may still contact Unity's servers for technical configuration. In that case, and after Unity Gaming Services start, Unity receives the data that such a connection reveals, such as your IP address and technical data about your device and the Game, and handles it under its own privacy policy. We do not send our analytics events to Unity.
c) Our game server.
From version 2.0 the Game uses our own server, hosted by Cloudflare (Cloudflare Workers with a D1 database located in the European Union), to:
- get the current time and the state of the game world (the weather in each fishing spot, the fish of the week), so that rewards cannot be obtained by changing the clock of your device. This request contains no installation ID;
- verify in-app purchases (section 3.2d);
- run the weekly tournament and its leaderboard, and handle reports of nicknames (section 3.2e);
- receive analytics events if you agreed (section 3.2a) and delete them when you ask (section 9).
Requests that send data to the server contain the installation ID and a signature that protects the server against forged requests. Like any internet connection, each request reveals your IP address and technical connection data to Cloudflare. We use them only to deliver the response and to protect the server, and we do not store them: our server code does not read the IP address, and Cloudflare's request logs (addresses and headers) are switched off, so only our own error messages, which contain no IP address, are logged.
d) In-app purchases.
Where available, the Game offers optional purchases of virtual currency. Payment is handled entirely by Google Play or the Apple App Store; we never receive your card or payment details. In versions before 2.0, the Game on your device receives only the store's confirmation that the purchase was completed.
From version 2.0, to give you what you bought and to prevent fraud, the Game sends our server the product, the purchase receipt (a purchase token on Android, a transaction ID on iOS), the platform and the installation ID. Our server asks Google (Google Play Developer API) or Apple (App Store Server API) whether the purchase is genuine and was not used before. We store: platform, product, installation ID, the transaction ID (iOS) or a hash of the purchase token (Android), the order ID or original transaction ID, the purchase time, whether it was a test purchase, and when and how often the purchase was checked. Purchases are verified whether or not you agreed to analytics.
e) Weekly tournament and leaderboard.
From version 2.0, from level 5, when you catch the fish of the week and it is heavier than your best catch of that species in that week, the Game sends our server: the installation ID, your nickname, platform, level and experience points, the species, fishing spot, weight and time of the catch, your gear levels and the rank of one skill (Trophy Eye), the counters of your catches in that week, whether your saved game passed the Game's integrity check, and your country code. To show your own rank, the Game may also send the installation ID when it loads the leaderboard.
Your country. From version 2.0 the Game takes a two-letter country code from the region set on your device (for example "PL"). It does not use your IP address or GPS for this. The Game sends the code to our server with your tournament result and when it opens your league group, and we store it with your installation ID. Other players see it as a small flag next to your nickname in the group table and on the leaderboard. To hide the flag, turn off Country flag in Settings, Privacy: the Game then sends an empty code and our server overwrites the stored one the next time the Game connects. The country from your device region is separate from the country in analytics described in this section, which comes from Cloudflare and is stored only if you agree to analytics.
Our server checks automatically whether the result is realistic (section 10). For accepted results we store your best result of each week (week, installation ID, nickname, species, weight, fishing spot, time of the catch, level and platform) and the catch counters of your latest result, used to check later results. For rejected results we store the reason and the submitted data, including the nickname, only to tune the checks; they are never shown.
The leaderboard is public: anyone who opens it, including other players, can see the top 100 results of a week with nickname, weight of the fish, fishing spot, level and platform, plus a short code calculated from the installation ID, which the Game uses to report or block a player. The installation ID itself cannot be read back from that code and is never shown. Unless you hide it, the flag of your country is shown as well.
Your nickname. If you type a nickname in your in-game profile (3 to 16 characters), that nickname is sent to our server and shown publicly. Nicknames are unique: our server keeps a list of nicknames in use, each with an installation ID. When you save a nickname that is already taken, the Game asks you for another one; if a nickname from Game Center or Google Play Games is taken, our server adds a number to it (for example "Kuba 2"). It is content you write, so do not use your real name or anything else you do not want to make public. A name saved in a version before 2.0 is not used until you save the profile field again. If you have not typed a nickname and you are signed in to Game Center (iOS) or Google Play Games (Android), the nickname of that account is used, as you set it there. Otherwise a nickname is made automatically from the installation ID (two words from a fixed list and a number). The Game shows you which nickname it uses before it sends your first result, and the tournament window always shows it. If your device is already signed in to one of these services, the Game uses that account automatically, without a separate sign-in in the Game. If your nickname there contains your real name, that name becomes public on the leaderboard, so type your own nickname in the Game, change it in that service or switch the tournament off. If you do not want to take part, switch the tournament off in the tournament window; the Game then sends no tournament results.
Filter, reports and blocks. Typed and platform nicknames pass an automatic word filter in the Game and on our server, in all languages of the Game. The Game does not accept a typed nickname that fails the filter, and our server replaces any such nickname with an automatically generated one. By tapping a player on the leaderboard you can report or block them. When you report a player, the Game sends our server the week, that player's code and nickname, and your installation ID; we store the week, the installation IDs of both players, the nickname and the time. After reports from three different installations, that player's nickname is replaced by a generated one, also in earlier results, and we keep that installation ID and the replaced nickname so that the nickname stays blocked. Blocking only hides the player from your own leaderboard: the list of blocked players stays in your saved game and is not sent to our server. To report a nickname or any other problem you can also write to [email protected]; the Report a problem button in the tournament window and in Settings, Privacy opens your email app with this address.
f) Google Play Games and Apple Game Center (optional).
From version 2.0, where the Game offers them and you are signed in to Google Play Games (Android) or Game Center (iOS) on your device, the Game uses these services for achievements, leaderboards and saving your progress in the platform's cloud, so that you can continue on another device. The Game sends them your achievements, tournament results that our server has accepted and, for cloud save, your saved game (which includes your progress, player name, list of blocked players and installation ID, and a small copy of your own profile photo if you chose one, see section 3.2h). The Game also reads your nickname and profile picture from these services to show them in your profile; that picture stays on your device and is never sent to our server. On Android, the Google Play Games component built into the Game may itself send Google technical, diagnostic and usage data, as described in Google's documentation. Google and Apple process this data under their own terms and privacy policies, and your profile, achievements and scores there may be visible to other players according to your settings in those services. Without signing in, the Game works fully, only without these features.
g) Daily reminder (optional).
From version 2.0, after a few sessions the Game asks whether you want reminders. Only if you agree and allow notifications on your device, the Game schedules at most one local notification a day (for example when visitors are waiting in your aquarium or your streak continues), never between 21:00 and 9:00 local time. The notification is created on your device; it uses no push service and sends no data to us. You can switch notifications off in your device settings at any time.
h) Profile picture (optional).
From version 2.0 you can choose a portrait from the Game or your own photo as your profile picture. You choose the photo in the system photo picker of your device: the Game receives only the photo you pick and has no access to the rest of your gallery. The Game crops it and stores it on your device. If you use cloud save, a small copy (96 by 96 pixels) is stored with your saved game in iCloud or Google Play Games, so that it can appear on your other devices. The photo is never sent to our server, we cannot see it, and other players do not see it. You can remove it at any time in your profile in the Game (button "Remove my photo"): this deletes it from your device and from your cloud save at the next synchronization.
i) Data stored on your device.
Your progress, settings, player name, profile picture, installation ID, consent choice and the analytics queue are stored on your device. Uninstalling the Game removes them from the device, but not the data already sent to our server, to Unity or to Google or Apple. If backups are on, your device's own backup (for example Android backup or iCloud backup) may also include this data, according to your device settings.
3.3 All versions
Game configuration. The Game downloads its configuration (items, prices and balance) from our server, also hosted by Cloudflare. As with any internet connection, the server receives your IP address, which is used only to deliver the file.
Contact. If you write to us, we process your message, your email address and any data you include, to answer you.
4. Legal Bases
- Consent (Article 6(1)(a) GDPR and the rules on storing and accessing information on your device): from version 2.0, analytics events sent to our server, with the installation ID and country, and starting Unity Gaming Services (sections 3.2a and 3.2b). We keep the version and time of your consent as proof. You may withdraw consent at any time in Settings; withdrawal does not affect processing before it.
- Contract (Article 6(1)(b)): delivering and verifying what you bought, running the weekly tournament and leaderboard, the server time your rewards depend on, and the optional platform features and profile picture you use.
- Legitimate interest (Article 6(1)(f)): security of the Game and the server, preventing fraud and cheating (request signatures, result checks, the log of rejected results), keeping the public leaderboard free of abusive nicknames (filter, reports and blocked nicknames), delivering the game configuration, handling your requests and claims, and, in versions before 2.0, operating and improving the Game with Unity's services (section 3.1).
- Legal obligation (Article 6(1)(c)): where the law requires us to keep records.
5. How Long We Keep Data
- Analytics events and days of activity (from version 2.0): 13 months from the day they relate to, then deleted automatically by a daily job. The installation record with country, platform and the version and time of your consent is deleted 13 months after your last analytics activity. You can delete all of it sooner (section 9). Aggregated numbers without installation IDs (for example the number of active players per day) may be kept longer.
- Rejected tournament results: 90 days, then deleted automatically.
- Reports of nicknames and blocked nicknames: as long as needed to moderate the leaderboard; they are not deleted automatically at a fixed time. You can ask us to review them at [email protected].
- League records with your country code and your entry in the list of nicknames in use: until you use "Delete my analytics data" (section 9). A nickname blocked after reports stays reserved, like the other blocked-nickname records above.
- Accepted tournament results with nickname: 12 months from the day they were stored, then deleted automatically, so that past weekly leaderboards stay available for a while. Catch counters used to check results: 30 days. You can delete both sooner (section 9).
- Purchase verification records: kept as long as needed to prevent the same purchase from being used twice and to handle refunds and claims. They are not deleted automatically, because a deleted record would allow the same purchase to be redeemed again.
- Data held by Unity (sections 3.1 and 3.2b): according to Unity's own retention periods (see Unity's privacy policy).
- Data held by Google or Apple (purchases, Google Play Games, Game Center, cloud save including the small copy of your profile photo): according to their policies and your settings there.
- Messages sent to [email protected]: as long as needed to handle your request and any related claims.
- Data on your device: until you delete the Game or its data.
6. Recipients and Processors
- Cloudflare, Inc.: hosts our game server, its database (located in the European Union) and the game configuration, on our behalf.
- Unity Technologies: engine services in versions before 2.0 (section 3.1) and, from version 2.0, technical connections and Unity Gaming Services after your consent (section 3.2b) (Unity privacy policy). Unity does not receive our analytics events.
- Google and Apple: payments and purchase verification (Google Play, Google Play Developer API, App Store, App Store Server API) and, from version 2.0, the optional Google Play Games and Game Center features. They act under their own terms and privacy policies.
- Other players and the public: the leaderboard data in section 3.2e.
- Authorities and advisers (for example lawyers or accountants) where the law requires it or where it is needed to establish or defend claims.
We do not sell personal data, and we do not share it with advertising networks.
7. Transfers Outside the European Economic Area
The database of our game server is located in the European Union. Cloudflare handles each request in a data centre close to you, and Unity, Google and Apple are US companies or have group companies outside the EEA, so some data may be processed outside the EEA. Such transfers are based on an adequacy decision (such as the EU-US Data Privacy Framework, where the recipient is certified) or on the European Commission's Standard Contractual Clauses. You can ask us for details at [email protected]. All data is transmitted over encrypted connections (HTTPS).
8. Age
Fish & Keep is intended for users aged 16 and over, and the Game says so in its consent window. We do not knowingly collect personal information from anyone under 16. If you believe that someone under 16 has used the Game and data was collected, contact us and we will delete it.
9. Your Rights and How to Use Them
You may request access to your data, its rectification, erasure, restriction or portability, and you may object to processing based on our legitimate interest. Where processing is based on consent, you may withdraw it at any time.
- Withdraw analytics consent (from version 2.0): Settings, Privacy, switch "Game data with installation ID" off. From that moment no analytics events are sent, and events not yet sent are deleted.
- Delete your analytics data yourself (from version 2.0): Settings, Privacy, "Delete my analytics data". This removes all analytics events, days of activity and the consent record of your installation, and your tournament results, including rejected results, from our server, and it switches analytics and the tournament off. It also removes the reports you made. It does not remove reports other players made about your nickname or a block on it, because that would undo moderation. You can switch the tournament back on in the tournament window. It needs an internet connection.
- Delete your tournament results or your purchase records: write to [email protected] and include the installation ID shown in Settings, Privacy (button "Copy") and your platform. We delete the data linked to that installation ID, except purchase records we still need to prevent double use or to handle claims, and we reply within one month. Without the installation ID we cannot find your data, because we do not know who you are.
- Change your player name or tournament nickname: in your profile in the Game at any time. Your new nickname appears on the leaderboard with your next result.
- Remove your profile photo: in your profile in the Game, button "Remove my photo" (section 3.2h).
- Report a nickname or a problem: by tapping the player on the leaderboard, or at [email protected].
- Data held by Unity, Google or Apple: use the options described in their privacy policies and the privacy settings of your Google or Apple account. You can also contact us.
You also have the right to lodge a complaint with a supervisory authority; in Poland this is the President of the Personal Data Protection Office (UODO), ul. Stawki 2, 00-193 Warsaw.
Providing data is voluntary. Without analytics consent the Game works fully. Without the data described in sections 3.2c to 3.2e we cannot verify purchases or show your results in the tournament.
10. Automated Checks
From version 2.0, tournament results are checked automatically for being realistic (for example the weight range of the species, the pace of catches, your gear and level). A rejected result is not shown on the leaderboard and has no other effect: there is no penalty and no block. If you think your result was rejected by mistake, contact us.
11. Changes
We may update this Policy; material changes will be reflected by the "Last updated" date above. Where a change requires your consent, we will ask for it again.