Animal Vision
Privacy Policy
Last updated: September 23, 2026
Animal Vision (“we”, “the app”) is an educational app that simulates, in real time through your phone's camera, how different animals see the world. We designed it to collect as little data as possible. This policy explains what the app and our website (animalvision.app) do with data.
The short version
- The app runs on your device. Camera frames and any photo you pick are processed on your phone and are never uploaded to us or stored on our servers.
- There are no accounts and no login. We do not collect your name, email, contacts, or precise location.
- The app uses Firebase Analytics for aggregate usage and Firebase Crashlytics for crash and stability diagnostics. It also shows optional rewarded ads via Google AdMob.
- On iOS and iPadOS the app does not track you at all. Every ad it shows is non-personalized — chosen from the app's own content, never from your interests across other apps and sites — so there is no tracking prompt to answer. On Android ads can be personalized, but only if you agree in the consent form; say no, or ignore it, and you still get ads and still unlock animals.
- The website shows no ads at all. It uses Google Analytics 4 for aggregate traffic, and nothing else. Consent on every page is collected by our own cookie banner.
- The app can send you a notification when a new animal is added, written in your app language. It has its own switch in Settings, and it works without us knowing which device you are: your phone tells Google “send me the announcements in Spanish”, and we publish one message per language. We never see, receive or store a device identifier for this.
- Purchase data is handled by the store you bought from — Google Play or the Apple App Store — and by RevenueCat.
- We do not sell your data.
Camera and photos
- Camera: used only to render the live animal-vision filter. Frames are processed in real time on your device and then discarded. Nothing is recorded or sent anywhere unless you choose to save or share an image.
- Photo library: if you apply a filter to a photo from your library, that image is processed on your device. Snapshots you capture are saved to your own photo library. We never upload your photos.
- The app does not use the microphone, location, or contacts.
Notifications
The app can tell you when a new species goes live. It is the only notification it sends, and it is sent at most about once a week.
- You are asked once. Your device shows its own permission prompt after the introduction screens; on Android 12 and older there is no prompt and notifications are on by default. Either way there is a New species alerts switch in Settings, and you can turn notifications off for the app entirely in your system settings.
- We do not know who you are, and this is not a figure of speech. Delivery uses Firebase Cloud Messaging (Google). Your app subscribes to a “topic” named after the language the app is displaying in — for example the Spanish topic — and we publish one message per language. We do not read, receive or store the device registration token, so we hold no list of devices and could not send you an individual message if we wanted to.
- What Google receives. To deliver a message at all, Google's messaging service holds a registration token for your app installation and the topics it subscribed to, which includes your app display language. Google processes this under the Firebase privacy documentation and the Google Privacy Policy.
- What the notification contains. The species' name and its one-line description, in your language — the same words already published on its page — plus the species identifier so that tapping it opens the right screen. Nothing about you is in it, and the message is identical for everyone reading in that language.
- What we measure. Aggregate delivery and open counts per announcement, through the same Firebase Analytics reporting described below. Not per person: there is no person to attach it to.
- Turning it off changes nothing else. Every feature, unlock and purchase works exactly the same.
Purchases
The one-time Premium unlock and the per-animal unlocks are processed by Google Play on Android and by the Apple App Store (StoreKit) on iOS and iPadOS. To deliver what you bought and restore it across your devices, we use RevenueCat, which receives:
- your purchase/receipt information from the store,
- a randomly generated app user ID (not linked to your real identity),
- basic device, OS and country information.
We never receive your payment-card details or your real name — Google or Apple handles the transaction. See the Google Privacy Policy, the Apple Privacy Policy and the RevenueCat Privacy Policy for how they process this data.
Analytics and advertising
- The app uses Firebase Analytics (Google) to understand aggregate, anonymous usage, with the app language as a dimension. This is not linked to your real identity. Specifically, it records the screen you are on — each species has its own screen name, so we can see which animals people actually use — and counters for the actions in the app: opening a species, favouriting it, filtering or searching the catalogue, starting or completing a purchase, redeeming an unlock code, restoring purchases, choosing to watch a rewarded ad and its outcome, saving or sharing an image, using a camera control, finishing onboarding and changing a setting.
- The app also reports its own build number (the version of the app you installed) alongside the app language. It is a release number shared by everyone on that version — not an identifier for you — and it exists so we can tell whether a fix has actually reached people before deciding what to do next.
- What those app events never contain: text you typed (a catalogue search is counted as "a search that returned N species", never as the words you wrote), your photos or camera frames, your location, your contacts, your name or email, or any account identifier — the app has no accounts. Everything above is an identifier from our own catalogue (such as
dog) or a fixed value such as "saved" or "cancelled". - The app uses Firebase Crashlytics (Google) in packaged release builds to diagnose crashes, fatal JavaScript errors and application-not-responding events. Crashlytics automatically receives stack traces, relevant app state, point-in-time device metadata and a Crashlytics installation identifier. It does not receive your camera frames or selected photos.
- The app shows rewarded ads through Google AdMob — you can optionally watch one to unlock an animal for 24 hours. Ads only ever play when you choose to watch one. AdMob and Firebase receive standard device and app-activity information to deliver and measure those ads.
- On iOS and iPadOS those ads are always non-personalized, and the app declares no tracking. Every ad request from an iPhone or iPad carries an explicit instruction to Google not to personalize, so no identifier is used to select ads from your interests across other apps and sites. Between 7 and 23 September 2026 the app did ask for this on iOS through Apple's App Tracking Transparency prompt; that was withdrawn, the prompt is gone, and the App Privacy information in the App Store no longer declares tracking.
- On Android, whether ads are personalized is your choice, and the default is no. Your answer to Google's consent form decides it; only if you agree may Google use the device advertising ID to select ads based on your interests across apps and sites — which is tracking, and we call it that. You can reset or delete that ID in your Android settings, and Settings → Ad privacy options inside the app reopens Google's form at any time. Declining costs you nothing: the same ads, the same 24-hour unlocks. On iOS and iPadOS that same row reopens Google's form too, and install attribution uses Apple's privacy-preserving SKAdNetwork, which reports installs without identifying you.
- Where the law requires it (EEA, UK and some US states), Google's consent form appears the first time you open the app — not later, in front of an ad — and it is shown only once, because your answer is remembered between launches. You can reopen it at any time from Settings → Ad privacy options inside the app, and Google may ask again if the list of advertising partners changes.
- The website uses Google Analytics 4 to understand aggregate traffic — which pages are read, in which language, using the same per-species page names as the app, plus counters for clicking a store badge, opening an FAQ, switching language, following a navigation link and your answer to the cookie banner. It runs under Google Consent Mode v2: until you consent it stores nothing on your device, and if you decline it keeps storing nothing — it still counts the visit, without identifying you. It is the only measurement tag the website loads, and it applies to every page, the privacy, terms, support and methodology pages included.
- How consent is asked for. Our own cookie banner asks, on every page of the website, and a choice you make anywhere is remembered across the whole site. It runs under Consent Mode v2: until you accept, nothing is stored on your device, and if you decline it stays that way — the visit is still counted, without identifying you.
- The website carries no advertising. There is no ad code on any page — not on the home or species pages, and not on the privacy, terms, support or methodology pages. The site did briefly load Google AdSense on the home and species pages; that was removed on 10 September 2026, together with Google's consent platform, which arrived with it. Advertising in the mobile app is unchanged and is described above.
Who we share data with
Android build 45 and later use Google Play Install Referrer and our own server to measure installations from ChatGPT ads. After measurement permission is granted, or when the consent platform determines it is not required, the app sends the advertising click reference, first-install time and app package name to animalvision.app. Our server forwards an installation event to OpenAI with future user-level personalization disabled. This integration does not send advertising IDs, email, phone, device IDs or your IP address to OpenAI. Rejected measurement consent disables this integration. Change your choice in Settings → Ad privacy options. Our server keeps a hash of the click reference for up to 35 days to prevent duplicate reports, and briefly keeps hashed network addresses to limit abusive requests. Ordinary hosting security/access logs may contain IP addresses. The click reference itself is not stored by our receiver.
Earlier Android releases that include AppsFlyer use it to measure whether an Animal Vision advertising campaign led to an installation. It receives installation and app-launch information, referral and campaign information, device and app identifiers (including the advertising ID when available), device diagnostics and IP address, which can indicate approximate location. We do not send it your photos, camera frames, name, email or precise location. We do not send purchase events to this integration.
This measurement starts after the consent platform has resolved your choices: where consent is requested, both storage and advertising measurement must be allowed. You can revisit the form in Settings → Ad privacy options; withdrawing those permissions stops the SDK. Where the consent platform determines consent is not required, measurement can run. AppsFlyer sends installation attribution to OpenAI / ChatGPT Ads only for installations attributed to that advertising partner. This helps us measure and optimize our Android app campaigns. See the AppsFlyer Services Privacy Policy and OpenAI Privacy Policy.
Only the providers needed to run the service: Google (Play billing, Firebase Analytics, Firebase Crashlytics, Firebase Cloud Messaging and AdMob), Apple (App Store billing on iOS and iPadOS) and RevenueCat (purchase management), plus Google Analytics on the website, governed by your consent choice, and AppsFlyer and OpenAI for Android campaign measurement as described above. The website carries no advertising, so no ad network receives anything from it. We do not sell or rent your data to anyone.
Data retention
We keep purchase records for as long as needed to provide your entitlements and to meet legal and accounting obligations. Analytics, crash diagnostics and advertising data collected via Firebase, AdMob are retained and processed by Google under their own policies, and App Store transaction data by Apple under theirs. AppsFlyer and OpenAI retain and process campaign measurement data under their respective policies. Contact us to request access or deletion of attribution data; we may need an installation identifier to locate it. We do not maintain an account profile for you.
Children
Animal Vision is not directed at children under 13, and we do not knowingly collect personal data from them.
Your rights
If you are in the EU/EEA (GDPR) or California (CCPA), you have the right to access, correct, or delete your data and to object to its processing. As we hold no personal profiles, most requests concern purchase data held by Google, Apple and RevenueCat — but you can always contact us and we will help.
Changes to this policy
We may update this policy; we will post the new version here with an updated date.
Contact
Questions about this policy? Email [email protected].
© 2026 Animal Vision · animalvision.app