
Een cyclus-app weet wanneer je ongesteld bent, wanneer je vruchtbaar bent, of je probeert zwanger te worden, en vaak ook wanneer je seks hebt gehad. Dat is precies het soort gegeven waarvan je wilt weten waar het terechtkomt. Ik heb de Android-versie van drie populaire apps ontleed en in één onderzoek naast elkaar gelegd.
Alle drie apps vragen de advertentie-identifier van je toestel. Daarna lopen ze ver uiteen.
Clue houdt de rest grotendeels in Europa en draagt geen advertentienetwerk en geen Meta-SDK. Flo legt een echte privacy-laag aan, maar bundelt tegelijk de SDK's van Meta, TikTok, AppsFlyer en Google, en vraagt de meest intieme gezondheidsrechten. Clover stuurt analytics, login en betalingen tot in Rusland. En in geen van de drie zit een herkenbaar toestemmingsframework.
Het gaat niet om je grootste nieuws, maar om je gewoonste
Het beeld bij gezondheidsapps is vaak: straks weten ze dat je zwanger bent. Maar de echte reikwijdte is breder, en ongemakkelijker. Wie een kinderwens heeft, of gewoon haar cyclus volgt, houdt veel meer bij dan een paar data. Deze apps vragen, dag na dag, hoe zwaar je menstruatie is, of je seks had en of het beschermd was, of er een orgasme was, hoe je libido is, je stemming, je krampen, je cervixslijm, je temperatuur.
En die gegevens blijven niet liggen waar je ze invoert. In de advertentie- en databroker-economie ben je geen persoon, maar een doelgroep. Zo zou je eruit kunnen zien:
Ter illustratie. Geen echte export uit Clue, Flo of Clover, maar de logica van de doelgroep-handel die hun trackers met data voeden.
Het schrijnende zit niet in één dramatisch moment. Het zit in het gewone, verhandelbaar gemaakt. Niet "ze weten mijn grootste nieuws", maar "ik sta te koop als vrouw die gisteren seks had". Dat is wat niemand op straat wil hebben liggen. En toch schrijft Flo "seksuele activiteit" via Health Connect weg, zwart op wit in de rechten die de app vraagt.
Wat er weggaat, en wat het over je zegt
De volledige lijst, vertaald van techniek naar betekenis. Links wat er vertrekt, rechts wat iemand daaruit kan aflezen over jou en je leven.
| Wat er weggaat | Wat het over jou zegt |
|---|---|
| Wat je invoert, naar de eigen backend (bij Flo deels via Health Connect) | |
| Menstruatiedagen en hoeveelheid | je cyclus en of die regelmatig is, een hint over je gezondheid |
| Vruchtbare dagen en ovulatie | of en wanneer je vruchtbaar bent |
| Seks, en of het beschermd was | je seksleven en je seksfrequentie |
| Orgasme en libido | intieme details over je seksualiteit |
| Zwanger proberen, zwanger, of verloren | je kinderwens, een zwangerschap, of een miskraam of abortus |
| Anticonceptie | of en hoe je voorbehoedsmiddelen gebruikt |
| Stemming, klachten, pijn | je mentale en lichamelijke gezondheid, dag na dag |
| Identiteit en apparaat, naar de SDK's van Google, Meta, en bij Clover Yandex en VK | |
| De advertentie-ID van je toestel | koppelt al je gedrag aan een herkenbaar profiel |
| Account- en inloggegevens | koppelt het cyclusprofiel aan jou als persoon |
| App-gebruik en gebeurtenissen | wanneer en hoe je de app gebruikt, je dagritme |
| Crash- en sessiedata | technisch, soms een beeld van je scherm |
| Attributie: welke advertentie je binnenbracht | welke campagne je raakte, voor gerichte reclame |
Op zichzelf zegt "late menstruatie" of "stemming somber" weinig. De waarde, en het risico, zit in de optelsom: een getimed, intiem beeld van je lichaam en je relatie, gekoppeld aan een naam en een toestel.
Niet alleen privacy. Autonomie.
Een vrouw vertrouwt een cyclus-app iets toe wat ze misschien niet eens met haar werkgever, haar ouders, de overheid, haar verzekeraar of haar partner zou delen. En die app kan dat behandelen als handelswaar. Daar zit een dubbele schending.
Eerst wordt iets extreem intiems verzameld: wanneer je menstrueert, wanneer je vruchtbaar bent, of je seks hebt, of je zwanger probeert te worden, of je het bent geweest, je klachten, je pijn, je stemmingen, je anticonceptie, misschien een miskraam of een abortus. Daarna kan diezelfde informatie uit de context worden getrokken. Jij voert het in als zelfzorg. Buiten je zicht kan het een profiel worden dat commercieel, politiek, medisch, juridisch of zelfs geopolitiek bruikbaar is.
De wrangheid: wat bedoeld is om een vrouw meer regie over haar lichaam te geven, kan juist het instrument worden waarmee anderen iets over haar lichaam te weten komen. In jouw telefoon betekent een late menstruatie stress, of een kinderwens, of angst. In een datasysteem wordt het een signaal dat een vreemde mag duiden. En in situaties waar zwangerschap, abortus of seksualiteit politiek, religieus of juridisch beladen zijn, is zulke data niet neutraal. Dan wordt informatie over je lichaam macht over jou.
Een cyclus-app belooft: begrijp je lichaam.
Achter de schermen kan ze ook iets anders betekenen: maak je lichaam begrijpelijk voor anderen. De meest persoonlijke vorm van zelfkennis, omgezet in bezit van onbekenden.
Drie apps, en toch dezelfde advertentie-ID
De drie apps verschillen sterk, maar twee dingen hebben ze gemeen. Geen van de drie vraagt een locatiepermissie, dat is netjes. En alle drie vragen wel de advertentie-identifier (AD_ID) en de attributie-rechten van Androids Privacy Sandbox. Ook Clue, de app met de beste privacyreputatie, doet dat in de actuele versie, terwijl een oudere versie die ik ernaast legde dat recht nog niet vroeg. De advertentie-ID is het unieke nummer waarmee je toestel herkenbaar is voor advertentiedoeleinden. Dat een cyclus-app dat nummer opvraagt, is geen kleinigheid.
Het echte verschil zit in hoeveel derde partijen er meeluisteren. Ik heb per app geteld hoeveel externe diensten gegevens kunnen ontvangen, op basis van de ingebouwde bibliotheken. Het verschil is groot.
En er is iets wat in geen van de drie zit: een herkenbaar toestemmingsframework. Ik vond in geen enkele app een Consent Management Platform of de IAB-standaard voor transparantie en toestemming (geen Didomi, OneTrust, Usercentrics, Sourcepoint of Google UMP). Dat betekent dat de toestemmingsvraag, voor zover die er is, in de app zelf wordt afgehandeld en niet als gestandaardiseerd signaal naar de advertentiepartners wordt doorgegeven. Voor een categorie zo gevoelig als deze is dat een opvallende leegte.
Het meeste gaat naar de VS, bij Clover ook naar Rusland
Alle drie apps sturen tracking en telemetrie naar verwerkers onder Amerikaans recht: Google en Firebase bij alle drie, en afhankelijk van de app ook Meta, TikTok, AppsFlyer, Braze, Datadog, Sentry, Auth0 en Amplitude. Clue houdt zijn functionele inhoud daarbij in de EU. Clover voegt er een hele laag aan toe die in Rusland eindigt.
Endpoints van Google worden via anycast vaak op een Europese rand-server geraakt, dus fysiek reist je data soms niet de oceaan over. Maar de partij die de gegevens ontvangt en verwerkt is het buitenlandse moederbedrijf, en dat valt onder buitenlands recht. Voor de vraag wie er bij je data kan, telt de verwerker, niet alleen de plek van de kabel.
Clue
BioWink, Berlijn. De soberste stack. Eigen API in de EU, gepind. Geen advertentienetwerk, geen Meta. Wel sinds kort de advertentie-ID. EU VS
Flo
Flo Health, VS. Privacy-laag via Anonymous Mode, maar met Meta, TikTok, AppsFlyer en Google aan boord. De breedste gezondheidsrechten. VS
Clover
Wachanga. Vier advertentienetwerken plus een complete Russische laag: Yandex, VK, YooMoney, SberPay. EU VS RU
Clue, de soberste, maar niet leeg
Clue maakt zijn reputatie grotendeels waar. De inhoud, je cyclus en symptomen, gaat naar een eigen API (api.helloclue.com) die op Amazon-infrastructuur in Europa draait, en die verbinding is extra beveiligd: de app pint het certificaat met vijf vingerafdrukken, zodat onderschepping veel moeilijker wordt. Artikelen komen via een contentdienst binnen. Er zit geen advertentienetwerk in, en geen Meta-SDK.
Toch is sober niet hetzelfde als leeg. Clue draagt een marketing- en meetlaag mee die naar Amerikaanse bedrijven wijst: Braze voor klantbenadering, op een datacenter aan de Amerikaanse oostkust, Datadog voor monitoring, en de Firebase- en Google Analytics-bouwstenen. Attributie loopt via Adjust, dat zijn servers in Duitsland heeft. De app vraagt sinds kort ook de advertentie-ID en leest een beperkte set biometrie via Health Connect (hartslagvariabiliteit, rusthartslag, huidtemperatuur, slaap, gewicht), maar uitsluitend lezen, en niet de menstruatie- of seksuele-activiteit-categorieën. Het beeld: de privacyvriendelijkste van de drie, maar ook hier deelt de app gedrag en engagement met Amerikaanse verwerkers.
Toon alle diensten en endpoints van Clue
| Dienst of endpoint | Wat het doet | Waar |
|---|---|---|
| api.helloclue.com | eigen API: cyclus, symptomen, account (certificaat gepind) | AWS, EU |
| Braze sdk.iad-01.braze.com | klantbenadering en engagement (477 refs) | VS-oost |
| Adjust app.adjust.com | installatie-attributie (246) | DE |
| Datadog | monitoring en performance (53) | VS |
| Firebase / GA4 app-measurement.com | gebruiksanalytics, advertentie-ID | VS |
| Contentful images.ctfassets.net | artikelen en beelden (inkomend) | EU/VS |
| Health Connect | leest HRV, rusthartslag, huidtemperatuur, slaap, gewicht (alleen lezen) | op toestel |
Permissies: advertentie-ID plus AdServices-attributie, biometrie, push, install-referrer, Play Billing. Geen locatie, geen Meta-SDK.
Flo, een privacy-laag bovenop een brede tracker-set
Flo is het interessantste geval, want het trekt twee kanten op tegelijk. Na een schikking met de Amerikaanse toezichthouder FTC in 2021, over het delen van gezondheidsdata met onder andere Facebook en Google, investeerde Flo zichtbaar in privacy. De app heeft een Anonymous Mode die telemetrie via een speciale gateway stuurt, een techniek waarbij Flo de gegevens niet aan een IP-adres of identiteit kan koppelen. Die gateway is er echt en antwoordt live.
Tegelijk draagt diezelfde app in 2026 nog steeds de SDK's van Meta, TikTok, AppsFlyer en Google mee, plus Sentry voor crashes en Auth0 voor inloggen. En Flo vraagt de breedste, gevoeligste set rechten van de drie. Via Health Connect leest het negentien categorieën, waaronder menstruatie, tussentijdse bloedingen, cervixslijm, ovulatietesten en seksuele activiteit, en het schrijft er zes terug, waaronder opnieuw seksuele activiteit, cervixslijm en ovulatietesten. De spanning is dus reëel: de verzendinfrastructuur naar advertentie- en analytics-partijen zit ingebouwd, en de privacy-laag bepaalt hoeveel daarvan herleidbaar blijft. Welke van de twee wint bij een concrete handeling, is precies wat een statische analyse niet kan beslissen.
Toon alle diensten en endpoints van Flo
| Dienst of endpoint | Wat het doet | Waar |
|---|---|---|
| owhealth.com API | eigen backend: cyclus, account, content | VS |
| OHTTP-gateway ohttp-gateway-bhttp-public.owhealth.com | geanonimiseerde telemetrie (Anonymous Mode), live | Cloudflare + AWS, VS |
| Auth0 manage.auth0.com | inloggen (82) | VS |
| Firebase / GA4 | gebruiksanalytics (452 + 316) | VS |
| AppsFlyer | attributie (477) | VS |
| TikTok-SDK analytics.us.tiktok.com | analytics en events (127) | ByteDance, VS-ingest |
| Meta / Facebook-SDK | events (98) | VS |
| Sentry | crash en performance (1046) | VS |
| Health Connect | leest 19 en schrijft 6 categorieën, inclusief seksuele activiteit, cervixslijm, ovulatietest (1068) | op toestel |
Permissies: advertentie-ID plus AdServices, activity recognition, basic phone state, biometrie, en Huawei- en Samsung-integraties.
Clover, advertenties plus een Russische laag
Clover is een gratis app die op advertenties draait, en dat is in de code goed te zien. Er zitten vier advertentienetwerken in: Google AdMob, met aanvulling via AppLovin, ironSource en Fyber. Daarnaast Adjust voor attributie, Amplitude en Firebase voor analytics, en de Meta-SDK. Voor een gevoelige gezondheidsapp is dat al een volle commerciële stapel.
Daarbovenop staat iets wat ik bij de andere twee niet zag: een uitgebreide Russische laag. De app bevat Yandex AppMetrica voor analytics, VK voor sociale login, en de volledige account- en betaal-SDK's van YooMoney en SberPay. De bijbehorende adressen draaien op typisch Russische webservers, wat de operators bevestigt. De app staat bovendien onversleuteld verkeer toe naar een YooMoney-domein, een uitzondering op het verder versleutelde geheel. En er zit een ingebouwde, merk-gesponsorde vragenlijst in: een complete Kotex-flow die naar je cyclus vraagt. Of de Russische componenten bij een Nederlandse gebruiker actief worden, hangt af van regio en server-instellingen, maar de code wordt onverkort meegeleverd. Het is de breedste jurisdictie-spreiding van de drie, in de meest gevoelige datacategorie.
Toon alle diensten en endpoints van Clover
| Dienst of endpoint | Wat het doet | Waar |
|---|---|---|
| cdn.wachanga.app | eigen CDN (Caddy) | Hetzner, DE |
| AdMob googleads.g.doubleclick.net, plus AppLovin, ironSource, Fyber | advertenties en mediation (673) | VS |
| Adjust app.adjust.com | attributie (268) | DE |
| Amplitude | analytics | VS/EU |
| Firebase / GA4 | analytics (608 + 460) | VS |
| Meta / Facebook-SDK | events (26) | VS |
| Yandex AppMetrica appmetrica.io | analytics (2041) | RU |
| VK id.vk.com | sociale login (29) | RU |
| YooMoney, YooKassa, SberPay spaymentsplus.ru | betalingen en account (7006 + 344) | RU |
Permissies: advertentie-ID plus AdServices en de Topics-API, READ_PHONE_STATE. Cleartext toegestaan naar certs.yoomoney.ru. Ingebouwde Kotex-vragenlijst.
De vergelijking
| Clue | Flo | Clover | |
|---|---|---|---|
| Identiteit en rechten | |||
| Maker | BioWink (DE) | Flo Health (VS) | Wachanga |
| Advertentie-ID | ja | ja | ja, plus Topics-API |
| Locatie | nee | nee | nee |
| Health Connect | lezen, beperkt | lezen 19, schrijven 6, incl. seksuele activiteit | geen |
| Tracking en geld | |||
| Advertentienetwerk | geen | geen | vier |
| Meta-SDK | nee | ja | ja |
| TikTok-SDK | nee | ja | nee |
| Attributie | Adjust (DE) | AppsFlyer (VS) | Adjust (DE) |
| Analytics | Firebase, Braze, Datadog | Firebase, Sentry | Firebase, Amplitude, Yandex |
| Login en betalen | eigen, Play Billing | Auth0, Play Billing | VK, YooMoney, SberPay |
| Governance | |||
| Toestemmingsframework | geen | geen | geen |
| Cert-pinning eigen API | ja, 5 pins | niet zichtbaar | nee |
| Jurisdicties | EU VS | VS | EU VS RU |
Wat je kunt doen zonder je app op te geven
- Kies bewust. Wil je het soberst, dan is Clue van de drie de minst vergaande: geen advertentienetwerk, geen Meta-SDK, en je inhoud blijft in Europa.
- Reset je advertentie-ID. Alle drie apps vragen die identifier. In de Android-instellingen onder Privacy kun je hem wissen, en je kunt gepersonaliseerde advertenties helemaal uitzetten.
- Wees zuinig met Health Connect. Vooral bij Flo bepaalt Health Connect hoeveel intieme categorieën de app mag lezen en schrijven. Geef alleen toegang tot wat je echt nodig hebt, en trek het later weer in als je twijfelt.
- Gebruik de privacymodus als die er is. Flo's Anonymous Mode bestaat echt en helpt. Zet hem aan als je Flo gebruikt.
- Denk na over de gevoeligste invoer. Een app die niet weet of je zwanger probeert te worden, kan dat ook niet doorgeven. Niet alles hoeft erin.
Conclusie
Drie apps voor dezelfde, uiterst gevoelige taak, en drie heel verschillende antwoorden op de vraag waar je data heen gaat. Clue houdt het Europees en sober, al vraagt ook deze app inmiddels de advertentie-ID. Flo bouwt een echte privacy-laag, maar bovenop een infrastructuur die nog vol zit met de SDK's van advertentie- en socialmediabedrijven, en het vraagt de meest intieme gezondheidsrechten. Clover spreidt analytics, login en betalingen uit over drie jurisdicties, tot in Rusland, en draagt vier advertentienetwerken mee.
Geen van deze keuzes is een ongeluk, het is hoe de apps zijn gebouwd. En het is precies het soort keuze dat iemand die elke dag haar cyclus invoert zou moeten kunnen wegen. Dit dossier legt die keuzes naast elkaar op tafel.
Bestaat er dan wél een veilige? Ja: drip.
drip. kan je gegevens niet doorverkopen, want de app kan ze technisch niet eens versturen.
De logische vervolgvraag op dit dossier is: is er dan een menstruatie-app die het wél goed doet? Die is er. drip. is gratis, open source, en gemaakt door een non-profit (Heart of Code). Ik heb hem op dezelfde manier ontleed, en ook echt op een testtelefoon laten draaien.
Het verschil met Clue, Flo en Clover zit in één detail dat alles bepaalt: drip vraagt niet eens toestemming om het internet te gebruiken. Een Android-app die dat recht niet heeft, kan geen enkele verbinding naar buiten openen. Geen advertentienetwerk, geen analytics, geen server in de VS of Rusland, want er is simpelweg geen weg naar buiten. Op de testtelefoon verstuurde de app dan ook nul bytes, terwijl dat toestel verder gewoon online was.
Alles wat je invoert, van menstruatie tot temperatuur, seks en stemming, blijft in een database op je eigen telefoon. Geen account, geen advertentie-ID, geen cloud, en geen enkele meet- of reclamebibliotheek in de app. Je kunt drip op slot zetten met een pincode en je gegevens laten versleutelen. En omdat de broncode openbaar is, kan iedereen dit zelf nakijken in plaats van een privacybelofte te moeten geloven.
Methode en reproductie
Onderzocht: Clue 256.0 (com.clue.android), Flo 9.106.0 (org.iggymedia.periodtracker) en Clover 7.32.1 (com.wachanga.womancalendar), Android, actuele releases. Statisch: het manifest en de resources zijn met apktool gedecodeerd (rechten, exported componenten, deeplinks, network-security-config), en de SDK-inventaris en endpoints zijn uit de dex-bestanden gehaald via class-signatuur-matching en string-extractie. Dynamisch, zonder toestel: elke ontdekte bestemming is via DNS opgezocht, gegeolokaliseerd, en geverifieerd met een live HTTP-respons en het TLS-certificaat van de operator. Niet gedaan: een ingelogde, live verkeersmeting die laat zien welke velden op welk moment vuren. De aantallen class-referenties zijn een maat voor het gewicht van een bibliotheek in de code, geen verkeersmeting. De apps zijn legaal verkregen en op een eigen omgeving geanalyseerd.