Gyrus

Gyrus, Privacy Policy

Last updated: 14 October 2026

Gyrus is a cognitive training app. It is built so that the data it produces stays on your device. This page describes exactly what is stored, what leaves the device and on what terms, and what we never collect.

Publisher: Mounir LAKHFIF

Contact: support@gyrusapp.com

No account, no identity

Gyrus does not ask you to create an account. We do not collect your name, email address, phone number, contacts, photos, or precise location. We do not sell or share data with data brokers.

There is no advertising inside the app. You will never see an ad, a banner, or sponsored content in Gyrus. That does not mean we run none anywhere: Gyrus is advertised on other platforms, and the "Advertising attribution" section below describes exactly what that involves, and what you can refuse.

What stays on your device

Everything you produce while using Gyrus is written to a database on your device. None of it leaves, apart from the cases described below, each with the way to refuse it where one exists:

Deleting the app removes all of it. We never hold a copy, so there is nothing we could give back.

Your phone's own backup is another matter. On iPhone, the iCloud backup may include Gyrus's data along with your other apps': it then travels to Apple, encrypted, under your account and never under ours. We have no access to it. You can exclude Gyrus in Settings, your name, iCloud, Backup. On Android, automatic backup is switched off by the app, so nothing goes to Google.

What leaves your device

Usage analytics: only with your consent

If you agree, Gyrus sends usage events to PostHog, hosted in the European Union, which we use to understand where people abandon the onboarding and whether the program is worth subscribing to. Each event says that a step happened, for example "diagnostic started", "baseline shown", "paywall shown", "session completed", together with a randomly generated identifier, your app version, and your device model and operating system version.

These events include your game results. When a game of the daily session ends, the event carries the game, the score you got and your level in it; when the session ends, it carries your score for the day and the number of games played. Your subscription status (free, trial, or subscribed) is attached as well. There is no name, no account and no contact detail: the identifier is drawn at random on your device. If you subscribe, that identifier is also written to your subscriber record at RevenueCat, so that a subscription can be related to how the app was used.

The answers to the welcome questions travel with these events, under this same consent: what brings you here, how you heard about Gyrus, your age band, and four self-assessments (how satisfied you are with your memory, then with your focus, how often you forget things and how often you get distracted). They are choices among a few offered answers, never text you wrote yourself, and each one can be skipped.

We do not send any text, any response time, or any screen recording.

You can refuse at the first launch and change your mind at any time in the app's settings. Refusing changes nothing about how the app works.

What you play, and for how long

To know which games deserve to exist, we need to know which ones are played, for how long, and which ones are left mid-way. Without this, a game abandoned after ten seconds looks exactly like a game nobody ever opened.

So at the end of a play, Gyrus sends to our own server, hosted by Cloudflare in the European Union, exactly this:

This does not ask for your consent, and we owe you a plain statement of why. This measurement is about the product, not about you: it says which games hold attention and which ones tire, and without it we could not improve them. That is what the GDPR calls legitimate interest. It carries neither your identity, nor your results, nor any time of day that would place you within your day.

You can object to it with one gesture, and that is what makes this basis tenable: the "anonymous measurement sharing" switch in the settings cuts this play log and the anonymous daily record described below. It also asks the server to erase the plays already sent; the anonymous daily records, tied to no identifier, cannot be found again to be erased.

If you accepted usage analytics or the comparison, three things are added to this: the score you got, your age band if you declared one, and the source of your install and its campaign if they were read (see below). Without either of those consents, they do not leave.

Crashes: only with your consent

When the app crashes, the crash report goes to Sentry, hosted in the European Union. It holds the call stack, the device model, its Android or iOS version, and the Gyrus version. Nothing else.

It is held by the same consent as usage measurement, and it stops with it. Until that consent is given, no report leaves, not even for a crash that happened before the question was asked.

Before sending, we strip from every report the IP address and the device name the module fills in by itself; on a phone, that name often carries its owner's first name. Session replay and performance tracing are switched off: they would say far more than a crash does, and neither helps fix one.

We do not send your scores, your answers, your goal, or any training data.

Where your install came from: on Android, unless you object

On Android, as long as advertising attribution is on (it is by default, see below), the app asks Google Play once which link brought the install. That answer is reduced on the spot to a label from a closed list — a Meta ad, a Google ad, a TikTok ad, our site, the Play Store itself, an Apple search, a direct visit, or "other" — and only that label is kept. The raw string the store returns is never written anywhere.

For Meta ads, the data their network places there is encrypted, and we do not decrypt it: we keep only "Meta". A campaign name is kept only if it looks like a name we wrote ourselves.

It is no longer read once attribution is turned off. There is no equivalent on iPhone, where this reading does not happen at all.

That label goes to your subscriber record at RevenueCat, so we know which ad brought which subscription, and to our own server along with the context described above — so only if you also accepted usage analytics or the comparison.

Comparing yourself to others: anonymous by default, linked with your consent

One day we would like to tell you where you stand next to other people who train. That number only means something with a measured population, and we have none: inventing it would be fabricating it.

By default, the record of the day leaves anonymously. At the end of a session, Gyrus sends to our own server your score for the day, out of one hundred, your pillar scores and per-game scores for that day, and your age band if you declared one. It travels under a token drawn for that day only and discarded the next day, so that no two daily records can be linked to each other or to you. The "anonymous measurement sharing" switch in the settings stops it.

If you agree to the comparison, the daily token is replaced by a lasting identifier, which is what lets your days be linked and your progress followed. Gyrus then sends exactly this and nothing else:

We do not send your answers, your response times, your difficulty levels, your streak, your goal, or anything else.

This consent is separate from the usage analytics one: agreeing to one does not imply agreeing to the other, and refusing one does not imply refusing the other.

Until you have agreed to either the comparison or usage analytics, no score leaves under a lasting identifier. If you withdraw your consent, the app asks the server to erase the linked records already sent, and those only: what you played belongs to the section above, and is cut by the sharing switch. If you are offline, the request waits and leaves on its own.

This data is hosted by Cloudflare in the European Union.

Subscription status

If you subscribe, purchases are processed by Apple or Google, never by us. We never see or store your payment details. RevenueCat manages the subscription on our behalf and receives a random app identifier, the country inferred from your store account, and your purchase and renewal history, which is what allows the app to know whether your subscription is active, including when you are offline.

Advertising attribution: on by default on Android, set through Apple on iOS

Gyrus is advertised on Meta (Instagram, Facebook), TikTok, Google (Google Play, YouTube, and apps in the Google network), and the App Store. Paying to be seen means knowing which ad actually brings subscribers; without that measurement, the budget is spent blind.

RevenueCat passes to those networks the bare fact that a trial or a subscription started, together with the identifier your operating system assigns to the app. That is what allows a subscription to be matched to the ad that preceded it, and nothing else does.

The Meta kit is also in the app. It sends Meta the app events it records on its own (install, app open) and the fact that you finished the onboarding. The anonymous identifier it draws for the app is attached to your subscriber record at RevenueCat, so that a subscription can be reported to Meta.

We do not send those networks your scores, your answers, your goal, your response times, or any training data whatsoever. Only those events, and the identifier that matches them.

Google is the exception, and in your favour. For Google campaigns we send nothing at all: Google Play matches an install to the ad that preceded it on its own, between Google's own services. We only read the result, reduced to the label described above. Should that ever change, this page would change first.

Our playable ads — those small demos where you play a grid before installing — make no network request and read no identifier. They fit entirely inside a single file, fonts included.

How that agreement is given depends on your system.

On iOS, the tracking prompt Apple presents is what counts, and it alone. It appears while you are discovering the app, before any identifier is read. If you decline, no advertising identifier is read or shared, and Meta is told that tracking was refused. The Meta kit still starts after your answer, whatever it is: it sends the events described above, without the advertising identifier. And RevenueCat still reports trials and purchases to Meta, tied to the anonymous identifier the Meta kit draws for the app. There is no second switch inside the app, because offering one the system could contradict would be misleading; you can change your mind at any time in Settings, Privacy & Security, Tracking. Apple also provides, for ads shown in the App Store, an attribution token designed not to identify you: it names a campaign, never a person.

On Android, no system prompt governs that identifier. Attribution is on by default there since 15 September 2026, and is switched off in Settings → Advertising attribution. It used to be given through a box that started unticked, on a screen most people never reached; the result was that no campaign could be measured at all. Turning it off stops the sharing immediately: the Meta kit is switched off, and the identifiers left at RevenueCat (advertising ID, Android ID, IP address, Meta's anonymous ID, install source) are removed, so no later subscription is matched to an ad. What was reported before stays with the network. Usage analytics stay exactly as you set them.

Third parties

ServicePurposePrivacy policy
PostHogUsage analytics, with consenthttps://posthog.com/privacy
CloudflareHosting for cohort measurements and the play loghttps://www.cloudflare.com/privacypolicy/
SentryCrash reports, with consent, hosted in the European Unionhttps://sentry.io/privacy/
RevenueCatSubscription management and advertising attributionhttps://www.revenuecat.com/privacy
Meta PlatformsAttribution for Instagram and Facebook campaigns, unless you object on Android; on iOS, app events without the advertising identifier even after tracking is refusedhttps://www.facebook.com/privacy/policy
TikTokAttribution for TikTok campaigns, unless you objecthttps://www.tiktok.com/legal/privacy-policy
GoogleAd delivery, install attribution by Google Play, distribution, and paymentshttps://policies.google.com/privacy
AppleDistribution, payments, and advertising on the App Storehttps://www.apple.com/legal/privacy/

Legal basis and your rights (GDPR)

Usage analytics and the linked comparison to other people rest on your consent. Both are asked separately, refused separately, and withdrawable at any time: agreeing to one grants neither the other. The anonymous record of the day, which no lasting identifier links to you or to your other days, is cut by the "anonymous measurement sharing" switch.

Advertising attribution follows a different regime depending on your system, and we say so plainly. On iOS it rests on your consent, collected through Apple's tracking prompt; the app events the Meta kit sends after a refusal, without the advertising identifier, rest on our legitimate interest in measuring our campaigns. On Android it is on by default and rests on our legitimate interest in knowing which ad actually brings subscribers; you object to it with one tap in the app's settings, and the objection takes effect immediately for what comes next (an event already passed on stays with the network).

We owe you candour here: European authorities hold that an advertising identifier requires prior consent rather than legitimate interest. We have made a different choice, deliberately, and one you can reverse at any moment. Should that position be settled otherwise, this page will change first.

Subscription management rests on the performance of the contract between you and us.

Measuring what you play — which game, for how long, what you abandon — rests on our legitimate interest in knowing which games deserve to exist. It carries neither your identity, nor your results, nor any time of day. As the law requires for this basis, you can object to it: that is the "anonymous measurement sharing" switch in the settings. It cuts this play log and the anonymous daily record, and requests the erasure of the plays already sent; the anonymous daily records, tied to no identifier, cannot be found again to be erased.

On iOS, no advertising identifier is read before you answer Apple's prompt, nor after a refusal. On Android, as stated above, attribution is on by default and reads the advertising identifier and the install source without prior consent, until you turn it off.

You have the right to access, rectify, erase, and port your data, and to object to its processing. Because the app holds no account, most of your data is already in your hands: uninstalling the app erases it.

For the play log, erasure is requested by turning off sharing. For cohort measurements, erasure is requested from the settings by withdrawing your consent: the app handles it, you have nothing to write to us. One caveat: if you uninstall the app without withdrawing your consent first, the identifier goes with it, and we then have no way to link those measurements to you, and so no way to erase them on request.

For anything held by our processors, write to support@gyrusapp.com and we will answer within one month. You may also lodge a complaint with your national data protection authority: in France, the CNIL.

Retention

Data on your device is kept until you delete the app. Analytics events are retained by PostHog for a maximum of twelve months. Cohort measurements are kept for twenty-four months, the time it takes for a population to build up, then erased. The play log is kept for twelve months, then aggregated: we then hold per-game totals, and no line tied to an identifier. No play and no record is therefore kept for more than twenty-five months. The play log's identifier is renewed at least every thirteen months, never extended by use, and is never the comparison's. Attribution events passed to advertising networks follow those networks' own retention periods, stated in their respective policies. Subscription records are kept for the legal accounting period.

Children

Gyrus is not designed for children under 13 and we do not knowingly collect their data.

Changes

If this policy changes, the date at the top of this page changes with it, and any material change will be announced in the app before it takes effect.