This policy explains what information the Petlings game ("Petlings", "the game") and this website collect, why, and the choices you have. Petlings is provided by CodeWisp Inc. ("we", "us").
- Contact: petlingsgame@codewisp.ai
- Postal address: CodeWisp Inc., 1395 22nd St, San Francisco, CA 94107, USA
The short version
- You can play without an account. Your progress is saved on your device.
- Signing in with Apple or Google is optional. It lets you keep a cloud save.
- Gameplay analytics is pseudonymous. In the EEA and UK it stays off unless you say yes. Everywhere else you can turn it off at any time in Settings. A separate ad measurement setting lets us tell AppsFlyer, Meta and Google when you start playing, reach a milestone or buy something, so we can see which of our ads work; it follows the same rules. While it is on, your iPhone may also ask whether Petlings may track you; the game is the same whichever you choose.
- Crash reports help us fix what breaks and are sent in every region unless you turn analytics off.
- Rewarded ads are optional, and we request non-personalized ads.
- We do not sell your personal information.
- You can delete your account from inside the game.
What we collect
Saved on your device
Your progress, pets, pet nicknames, settings, and purchase and reward receipts are saved on your device. If you used an earlier version of the game, an age range you chose then may still be stored. It is used only to decide how ads are treated (see "Rewarded ads" below).
If you allow notifications, the game can remind you about your farm, such as when your egg basket is full. These reminders are planned on your device, around the time you usually play, and come at most once a day. When your device first allows it, they may arrive quietly in Notification Center, where you can keep them or turn them off.
If you also turn on "New pets & events", your device’s push token, a random ID created only for this, your time zone, language and app version are sent to our server so we can send you occasional news, at most twice a week. This ID is not linked to your account, save or analytics. Turning "New pets & events" or notifications off deletes it from our server, and so does erasing the game’s data on your device while online. Switch each kind off under Settings → Notifications, or all of them in your device settings.
If you sign in (optional)
When you sign in with Apple or Google, our account provider, Supabase, processes:
- an account ID and your provider identity
- your email address, or an Apple private-relay address if you choose to hide your email
- with Google, the name and profile picture that Google shares during sign-in (the game does not display them)
- your cloud save
- a player name if you choose one. We store it with your account to keep names unique and to filter inappropriate names. It is shown on the leaderboards (below).
- your campaign stage, experience points, the number of eggs you have hatched and the points you earn in a live event, which our server records so rankings can't be faked
Egg and event leaderboards
If you are signed in, you are ranked automatically on the Egg Leaderboard on the Farm by the eggs you hatch, this week and all time, and while a live event runs, its leaderboard ranks you by the event's points (such as Candy). Each week you race in a group of up to 50 players. Every board can be seen by everyone who opens it, including players who aren't signed in: this week's groups, the top 50 of all time, and an event's top 50. Each entry shows your player name (or "Farmer" if you haven't chosen an allowed one), your avatar animal, your rank, and your count; tapping it shows your player card: your avatar animal, your level, Story stage, the number of species you have found and eggs you have hatched, your team's animals, and your leaderboard medals. The board also sends the players' devices your experience points and your team's tiers. Your email, account ID, and pet nicknames are never shown. Anyone can hide another player's entry on their own device or report it to us. The top three players at the end of each event, and the top three of each group at the end of each week, receive diamonds. Signing out does not remove your entries; deleting your account does, or email us to remove them.
Story leaderboard (earlier versions, optional)
Earlier versions of the app had an optional Story leaderboard. If you turned on participation there, the top 100 players can be seen by others, including players who aren't signed in. Each entry there shows a generated alias (such as "Keeper 3FA91C0B"), campaign stage, experience points, and the species and tier of your team, never your email, account ID, player name, or pet nicknames. Email us, or delete your account, to remove an entry.
Purchases
In-app purchases are made through Apple. Apple and our purchase provider, RevenueCat, process the product, price, and transaction details, together with a random player ID generated on your device. Our server stores the minimum transaction and anti-replay records needed to deliver what you bought, restore eligible purchases, and prevent fraud. We never receive your payment card number. If analytics is on, PostHog also learns which product you bought and its store price (see Gameplay analytics).
Rewarded ads
Ads are optional and are provided by Google AdMob. When you choose to watch an ad, AdMob processes ad, device, and network information to deliver, measure, and secure it. We request non-personalized ads. If you allow tracking when your iPhone asks (see Measuring our ads), AdMob can also receive your device's advertising identifier, which Google uses for ad measurement and to fight fraud; the ads stay non-personalized. Where the law requires consent before showing ads, Google's consent message asks you first. No reward depends on allowing tracking.
Non-personalized ads can still involve some processing of personal data. To review or withdraw your ad choices, open Settings → Ad privacy choices.
Our server keeps a record of each verified ad reward, including the reward, a transaction reference, the random player ID, and the time. We use these records to deliver the reward and prevent fraud, and, if analytics is on, to understand how rewards are used.
Gameplay analytics (PostHog) and crash reports (Sentry)
We use PostHog for product analytics and experiments. It receives:
- a pseudonymous analytics ID generated on your device
- the platform, app version and operating system version, your device model, language and App Store country
- gameplay events, such as sessions, tutorial steps, hatches, fusions, and battles
- store and ad events, such as which product you bought and its store price, when you start and finish a rewarded video, and the ad revenue Google reports for it
- with ad measurement on, the ID AppsFlyer creates for this installation, so a deletion request can reach AppsFlyer too
- short error messages when something in the game breaks
PostHog does not receive your email, player name, pet nicknames, account ID, shared images, payment details, or store transaction IDs. Like any online service, PostHog receives your IP address when the app connects. It does not store the address, but it uses it to estimate your approximate location, such as your country and city, and keeps that with the events. There is no session replay or screen recording. Earlier versions of the app sent the same analytics to Statsig instead.
We use Sentry to find and fix crashes and errors. When the game crashes, freezes, or runs into an error, Sentry receives a report with:
- what went wrong and where in the game's code
- the app version
- device details, such as the model, operating system, language, time zone, free memory and storage, and battery level
- a random installation ID created by Sentry's software
- the screen you were on, your campaign stage and level, and the gameplay events just before the problem (the same kind of pseudonymous events PostHog receives)
Sentry also learns when each play session starts and ends, so we can measure how often the game crashes, and, if analytics is on, for a sample of launches, how long the game took to reach the farm. Sentry does not receive your email, player name, pet nicknames, account ID, or payment details. It receives your IP address when the app connects. It does not store the address, but it uses it to estimate your city and country and keeps that with the report.
We send crash reports because we have a legitimate interest in keeping the game working, so they are on in every region from the first launch, including before you answer the analytics question. You can object at any time: turning off Settings → Share gameplay analytics stops crash reports too.
Your choice: In the European Economic Area, the United Kingdom, and places covered by their data-protection laws, analytics stays off unless you allow it when the game asks. We apply this rule if your App Store country, device time zone, or language settings point to one of those places. Everywhere else, analytics is on by default.
Anyone can turn analytics on or off at any time under Settings → Share gameplay analytics. Turning it off stops new requests at once, including any events waiting to be sent. Your choice is kept even if you erase the game's data on your device. Playing never requires analytics. To erase analytics already collected, email us.
Measuring our ads (AppsFlyer, Meta and Google)
We advertise Petlings on Facebook and Instagram. When ad measurement is on, the game uses AppsFlyer, our ad measurement partner. AppsFlyer receives the first time you open the game and each later session; when you finish the tutorial and when you reach story stages 10, 20 and 50; and purchases you make through the App Store, with the product and its store price. With these it receives a random ID that AppsFlyer creates for this installation, your device's vendor identifier (an ID Apple gives each developer for your device), your device model, operating system and app versions, language, and your IP address. AppsFlyer uses them to work out which ad, if any, led to your download, and passes the events and that result on to Meta. Meta uses them under its Business Tools Terms to measure our ads and to show them to people likely to enjoy the game. AppsFlyer and Meta do not receive your name, email, player name, or account ID.
When ad measurement is on, your iPhone asks once, as you first start the game (in the EEA and UK, right after you agree to share), whether Petlings may track you. Only if you allow it do AppsFlyer, and Google AdMob for the rewarded ads you choose to watch, receive your device's advertising identifier, which lets AppsFlyer and Meta match your download to an ad they showed you. Nothing in the game depends on your answer, and you can change it at any time in your iPhone's Settings under Privacy & Security, Tracking.
PostHog, our analytics provider, also passes these events to Meta directly: the first time you play, finishing the tutorial, reaching story stages 10, 20 and 50, and each purchase, with the product's store price. Each event carries your pseudonymous analytics ID, the app and operating system versions, and the time, but not your IP address or advertising identifier, and we tell Meta that tracking is not allowed.
We also advertise Petlings with Google Ads, which can show our ads on YouTube, in Google Search and in other apps. When ad measurement is on, the game starts Google Analytics for Firebase, which otherwise never starts and sends nothing. It tells Google the first time you open the game, each later session and how long it lasts, and app or system updates; when you finish the tutorial and when you pass certain story stages; purchases you make through the App Store, with the product and its price; and when a rewarded video ad is requested, shown, tapped or rewards you. It also asks Apple whether an App Store search ad led to your download and, if so, which one. With these it sends a random ID that Firebase creates for this installation, your device model, operating system and app versions, language, and the time. Like any online service, Google receives your IP address when the app connects; Google Analytics uses it to estimate your approximate location and does not store the address. Google does not receive your name, email, player name, account ID, or your device's advertising or vendor identifier from this. We have switched ad personalization off for this data: Google uses it to count the installs and purchases our ads bring and to choose where to show our ads, not to personalize the ads you see.
Separately, Apple's SKAdNetwork lets ad networks, including Meta and Google, count how many installs their ads brought, without identifying you or your device. This works in every region and needs no setting. While ad measurement is on, AppsFlyer (or, in earlier versions, the game itself) also gives SKAdNetwork a coarse progress value, such as how often you came back, whether you finished the tutorial, roughly how far you got in the story, whether you watched a rewarded video or bought something, and a spending range. Apple reports it to the ad network that showed you our ad only in aggregate and after a delay, and sends us a copy of the same report.
We also advertise in App Store search results with Apple Ads. Outside the European Economic Area, the United Kingdom, and places covered by their data-protection laws, while ad measurement is on, RevenueCat, our purchase provider, uses Apple's AdServices framework when the game first connects to it to learn whether an Apple Ads campaign led to your download and, if so, which campaign, ad group and keyword. RevenueCat keeps that with your pseudonymous player ID, and the game asks Apple the same question itself and adds the answer to its analytics, if analytics is on, so we can see which searches bring players who keep playing and buy something. Apple provides this without your advertising identifier and without tracking you across other companies' apps or websites.
Your choice: Ad measurement needs gameplay analytics. In the European Economic Area, the United Kingdom, and places covered by their data-protection laws, it stays off unless you allow it when the game asks: I agree, or its own switch under Choose. Everywhere else it is on by default. Anyone can turn it off at any time: Settings → Help measure our ads turns off ad measurement alone (from version 1.0.8), and Settings → Share gameplay analytics turns it off together with analytics (in every version). Either way, AppsFlyer stops too. Where US state laws treat this as "sharing" personal information for advertising, these switches are how you opt out.
Online game features
Shared features, such as the global pet catalog, hatch counts, and away earnings, process random game and device identifiers along with game data. Our hosting provider and security systems receive network information, such as your IP address, when you connect. We use it only for security and rate limiting. If one of our servers runs into an error, it sends an error report to Sentry: the error, where in our code it happened, and which kind of request failed, which can include the random identifiers in it. These reports never include passwords or payment details.
Generated game content
Some pets, artwork, and sounds are generated by AI. For this, our server sends game data, such as companion definitions and developer-owned reference art, to OpenAI, Anthropic, and/or ElevenLabs. These requests do not include your email, account details, player name, or pet nicknames.
Support and privacy requests
When you contact us, or send a privacy request or report, we receive what you write, a request reference, and the account or device identifiers needed to look into it. Please don't include passwords, card details, or personal information we don't need.
What we don't collect
We don't collect precise location, contacts, photos, microphone or camera data, or, unless you allow tracking, your device's advertising identifier. Sharing a card uses your device's share sheet. You pick the destination, and we don't learn who receives it.
This website
This website doesn't use cookies, analytics, or forms. Our hosting provider, Render, receives standard request information, such as your IP address, browser type, and the pages you request, to serve and protect the site. The site's font is loaded from Google Fonts, so Google also receives your IP address and browser information when a page loads.
How we use information
We use information to:
- run the game, save and restore your progress, and provide sign-in and cloud saves
- deliver and restore purchases and ad rewards, and prevent fraud and abuse
- run the leaderboards
- answer support and privacy requests and handle reports
- understand and improve the game through analytics, if it is on
- measure our own ads, if ad measurement is on
- find and fix crashes and errors in the game and on our servers
- meet legal obligations
We don't build advertising profiles. Apart from ad measurement, we never use analytics for advertising.
Legal bases (EEA, UK and similar laws)
We rely on:
- contract, to provide the account, game, and purchase services you ask for
- consent, for analytics, ad measurement and advertising where consent is required
- legitimate interests, for proportionate security, fraud, and abuse prevention, and for finding and fixing crashes in the game and errors on our servers
- legal obligation, for records the law requires
You can object to processing that is based on legitimate interests.
Who we share information with
We share information only with the service providers that run the game for us, and only as needed:
| Provider | What it does |
|---|---|
| Apple | App distribution, in-app purchases, Sign in with Apple |
| Google Sign-In, AdMob rewarded ads, and Google Analytics for Firebase with Google Ads for measuring our ads (only if ad measurement is on) | |
| Supabase | Accounts, cloud saves, leaderboards |
| RevenueCat | Purchase validation and entitlements |
| AppsFlyer | Measuring which of our ads bring players (only if ad measurement is on) |
| PostHog | Gameplay analytics and experiments (only if analytics is on; earlier versions of the app used Statsig for the same purpose) |
| Sentry | Crash and error reports from the game and our servers |
| Meta | Measuring our ads on Facebook and Instagram (only if ad measurement is on) |
| Render | Hosting for our game servers and this website |
| OpenAI, Anthropic, ElevenLabs | Generating game content (no personal information is sent) |
We may also disclose information if the law requires it, or to protect the rights, safety, or property of our players or ourselves.
We do not sell personal information for money. Some laws define "selling" or "sharing" broadly enough to include some advertising disclosures. The in-game ad privacy controls cover those uses, and we honor legally required opt-outs without treating you differently.
International transfers
We are based in the United States, and our providers may process data in the US and other countries. Where the law requires it, transfers are covered by appropriate safeguards, such as adequacy decisions or standard contractual clauses. Contact us for details.
How long we keep information
- Device saves stay until you erase them or delete the app. Device backups made by your operating system may keep a copy.
- Cloud saves and account data stay while your account is active, until you delete it.
- Purchase, security, tax, and dispute records are kept only as long as those purposes or the law require.
- Backups expire on their normal cycle and are never used to restore a deleted account.
- Support and report messages are kept only as long as needed to resolve the case and meet legal requirements.
- Crash and error reports are deleted after at most 90 days.
After you delete your account, we keep a minimal suppression record so an erased profile can't reappear in the shared catalog. Anything you shared or exported outside the game stays under your control, or the recipient's.
Your choices and rights
In the game: Settings gives you Share gameplay analytics, Help measure our ads (from version 1.0.8), Delete account, Contact support, and links to this policy and the Terms of Service. Delete account starts deletion of your account and its data; it does more than sign you out. For Apple accounts, it also revokes the app's Sign in with Apple authorization. If you play as a guest (not signed in), Delete account instead asks us to delete the records kept for your device and then lets you erase the game's data on it.
By email: Write to petlingsgame@codewisp.ai to:
- access or correct your data
- delete data from a guest (not signed-in) device
- change your privacy choices
- appeal a decision
- get help without creating an account
Depending on where you live, you may have the right to:
- access your data
- correct it
- delete it
- restrict or object to its use
- receive a portable copy
California residents have the right to know, delete, and correct their personal information, and the right not to be discriminated against for using these rights. You can also ask someone you authorize to make a request for you.
We respond within 30 days, or sooner if your local law requires. If we need more time, we'll explain why. We may need to verify your identity before acting on a request. You can also complain to your local data-protection authority.
Children
Petlings is a general-audience game for ages 13 and older and is not directed to children under 13. If you believe a child under 13 has given us personal information, contact us and we will delete it.
Security
We use encryption in transit, access controls, and server-side verification of purchases and rewards. Sign in with Apple tokens that must be kept for deletion are stored encrypted. No system is perfectly secure, so please contact us right away if you believe your account has been compromised.
Changes to this policy
If we make material changes, we'll update the date above and tell you in the game or on this website. Where the law requires it, we'll ask for your choice again.
Contact
CodeWisp Inc., 1395 22nd St, San Francisco, CA 94107, USA · petlingsgame@codewisp.ai