Politique de confidentialité
Dernière mise à jour : 14 août 2026
Spotted est un jeu social mobile édité par Nicolas Brecqueville, ci-après « nous » / « Spotted ». Cette politique décrit comment nous collectons, utilisons et protégeons tes données quand tu utilises l'application Spotted (« l'app »).
Si tu as une question, contacte-nous à [email protected].
1. Notre engagement
Spotted ne demande aucune inscription par email. Tu n'as à fournir ni email, ni nom légal, ni numéro de téléphone, ni identifiant tiers (Apple, Google, Facebook). À la première ouverture, un compte technique anonyme et un UUID sont créés pour te permettre de retrouver ton pseudo, ton avatar, ton Spotlight et tes statistiques sur cet appareil.
Le bouton « Supprimer mes données » dans ton profil efface définitivement les données associées de notre côté. Si tu n'as plus accès à l'app, utilise notre page publique de suppression de compte. Une simple désinstallation n'envoie pas de demande de suppression à nos serveurs.
2. Données que nous collectons
2.1 Identifiant utilisateur anonyme
-
Ce que c'est : un UUID v4 généré à la première
ouverture, stocké de manière chiffrée sur ton appareil (
expo-secure-store— Keychain iOS / Keystore Android) et associé à ton compte Supabase anonyme. - Pourquoi : technique — te permettre de retrouver tes données sur ton appareil entre les sessions, identifier ton vote dans une partie, agréger tes statistiques Spotlight.
- Base légale RGPD : Art. 6(1)(b) — exécution du contrat (le service ne peut fonctionner sans cet identifiant).
2.2 Profil de jeu
- Pseudo (que tu choisis librement — peut être ton vrai prénom ou un pseudonyme).
- Avatar : soit une image que tu uploades, soit une couleur déterministe générée depuis ton identifiant.
- Bio : texte facultatif que tu peux ajouter à ton profil.
- Date de naissance : uniquement si tu la renseignes pour une fonctionnalité soumise à une condition d'âge ; elle reste facultative tant que cette fonctionnalité n'est pas utilisée.
- Date de modification (audit technique).
- Base légale : Art. 6(1)(b) — sans pseudo, impossible d'apparaître dans une partie multi-joueurs.
2.3 Données de jeu
- Parties jouées : nombre total + agrégats par mode (Most Likely To, Devine !, etc.).
- Spotlight : pour le mode « Qui est le plus…? », nous stockons les désignations reçues sur 6 axes (Aura, Énergie, Prestige, Sagesse, Loyauté, Empathie) et 18 sous-statistiques.
- Historique des deltas Spotlight : un point par vote reçu, daté, pour afficher l'évolution.
- Réponses « Qui a déjà ? » : nous conservons, pour ton profil, l'identifiant de la question et ta réponse afin de calculer tes scores et comparaisons. Certaines questions peuvent concerner des sujets personnels ou sensibles ; tu choisis librement d'y répondre pendant le jeu.
- Base légale : Art. 6(1)(b) — c'est le cœur du service.
2.4 Données de session temps réel
- Pendant une partie : ton pseudo, avatar et tes votes en cours sont stockés temporairement dans notre cache temps réel Upstash Redis, hébergé à Francfort.
-
Après la fin de partie : nous conservons les agrégats
Spotlight, le compteur
gamesPlayedet un historique technique de session (mode joué, statut, horaires et identifiants techniques des participants). Les contenus éphémères de la partie, comme les votes en cours et les photos de jeu, ne font pas partie de cet historique. - Photos uploadées (mode Photo Roulette) : stockées dans Supabase Storage, puis supprimées lors du changement de mode, à la fin ou à la fermeture du salon. Un filet de sécurité purge aussi les salons abandonnés.
- Images choisies dans Caption Battle : si tu sélectionnes une image de ta galerie comme mème ou réponse visuelle, elle est stockée dans Supabase Storage et diffusée aux joueurs de la room. Elle est supprimée au départ du joueur ou lors du changement de mode, à la fin ou à la fermeture du salon ; le filet de sécurité couvre les salons abandonnés.
- Images de personnages Super-Hôte : si le Super-Hôte choisit une image depuis sa galerie ou le pack inclus pour représenter un faux joueur, elle est copiée dans Supabase Storage et visible uniquement dans la room. Elle est supprimée à la fermeture du salon ; le même filet de sécurité purge les salons abandonnés.
- Base légale : Art. 6(1)(b).
2.5 Sécurité des joueurs : blocages et signalements
Depuis le profil d'un autre joueur présent dans ta room, tu peux le bloquer ou signaler un contenu ou un comportement :
- Blocage : nous conservons les identifiants techniques des deux comptes et la date du blocage. Lorsque tu bloques depuis une room, l'app te fait quitter immédiatement cette room pour couper l'interaction. Le blocage empêche ensuite les entrées et reconnexions de room entre ces comptes, dans les deux sens. Tu peux le retirer depuis les réglages.
- Signalement : nous conservons les identifiants techniques du signaleur, du compte/joueur et de la room concernés lorsqu'ils existent, ainsi qu'une catégorie, un type de contexte, un statut et les dates de traitement.
- Aucun contenu brut dans le rapport : le formulaire n'accepte et la table de signalements ne stocke ni texte libre, ni légende, ni photo, ni vidéo, ni URL de média.
- Base légale : Art. 6(1)(f) — intérêt légitime à protéger les joueurs, faire respecter les CGU et prévenir les abus ; Art. 6(1)(c) lorsque le traitement est nécessaire au respect d'une obligation légale.
2.6 Acceptation des règles et documents
Avant d'accéder aux fonctions de room, tu dois accepter explicitement
les CGU, les règles de sécurité et reconnaître avoir lu cette politique.
Nous conservons uniquement ton user_id, la date et la
version acceptée dans la table technique consents. Cette
preuve permet de déterminer quelle version tu as acceptée.
Base légale : Art. 6(1)(b) — exécution du service selon
ses règles ; Art. 6(1)(f) — démonstration et sécurité du service.
2.7 Données techniques (analytics d'erreurs)
Nous utilisons Sentry pour détecter les bugs. Selon le type d'erreur et la configuration active, un diagnostic peut contenir :
- Type d'appareil et version OS.
- Version de l'app.
- Stack trace et contexte technique limité de l'erreur. Nous évitons d'y joindre volontairement ton pseudo, tes légendes, prompts ou autres contenus de partie et filtrons certaines informations sensibles connues ; aucun filtre automatique ne peut exclure tout contexte incident.
- Un identifiant technique Spotted peut être joint à certains diagnostics serveur lorsque cela est nécessaire pour relier plusieurs erreurs ; il n'est pas ajouté systématiquement à tous les événements.
Base légale : Art. 6(1)(f) — intérêt légitime à corriger les bugs. Tu peux exercer ton droit d'opposition en nous contactant à [email protected] ; nous examinerons ta demande conformément à l'article 21 du RGPD.
2.8 Compte TikTok lié (mode Who Liked This?)
Si tu choisis de lier ton compte TikTok pour jouer au mode « Who Liked This? » :
- Nous stockons un token OAuth chiffré (AES-256-GCM) qui nous permet d'accéder à tes liked videos TikTok uniquement pendant une partie active.
- Nous stockons ton TikTok Open ID (identifiant TikTok stable mais non lié à ton nom public).
- Nous stockons la région déclarée par TikTok lors du link (EEA ou UK — anti-fraude).
- Les vidéos likées sont récupérées à chaque partie via l'API TikTok Data Portability et conservées temporairement dans l'état de partie Redis. Elles sont purgées à la fin de la partie, au changement de mode ou à la fermeture du salon. Pour un salon abandonné, une expiration de sécurité Redis les supprime au plus tard après 24 heures. Elles ne sont pas copiées dans notre base Postgres ni dans notre stockage média permanent.
- Base légale Art. 6 + Art. 9 : en liant volontairement ton compte TikTok pour activer ce mode, tu consens à l'accès temporaire à tes vidéos likées. Cette section présente avant le link les données concernées, leur usage et leur durée de conservation, car ces likes peuvent révéler indirectement des préférences sensibles.
Tu peux délier ton compte TikTok à tout moment depuis ton profil. La déconnexion demande immédiatement la révocation du token à TikTok et supprime immédiatement les données associées chez nous. Si TikTok est temporairement indisponible, le token peut rester valide jusqu'à son expiration ; tu peux aussi révoquer l'accès de Spotted depuis les réglages de ton compte TikTok.
2.9 Identifiant push (notifications)
Si tu acceptes de recevoir des notifications, nous stockons un identifiant push opaque (Expo Push Token) lié à ton appareil. Cet identifiant nous permet d'envoyer :
- Des invitations à jouer quand un ami te lance une partie (notification transactionnelle).
- Un rappel d'engagement le vendredi et samedi soir à 19h (Europe/Paris), uniquement si tu as activé cette option dans ton profil.
L'identifiant est :
- Anonyme : il ne contient pas ton nom, ton email, ni aucune donnée personnelle directe. C'est juste une suite de caractères opaque générée par Apple / Google.
-
Stocké dans notre base Supabase (Paris, France) dans
la table
push_tokens. - Supprimé via « Supprimer mes données » ou lorsque le service de notification nous signale que le token n'est plus valide. Désinstaller l'app invalide généralement le token sur l'appareil, mais la ligne serveur n'est supprimée qu'après ce signal d'invalidité ou une demande de suppression.
Double consentement (conformité CNIL Reco 2025) :
- La permission OS (popup iOS/Android) couvre les notifications transactionnelles (invitations d'amis).
- Le toggle séparé dans Profil → Settings → Notifications couvre les rappels d'engagement (broadcast vendredi/samedi).
Tu peux à tout moment :
- Désactiver les notifications dans les Réglages iOS / Android de ton appareil (coupe TOUTES les notifications).
- Désactiver uniquement les rappels d'engagement via le toggle « Recevoir un rappel le vendredi et samedi soir » dans le profil (laisse les notifications transactionnelles actives).
3. Données que nous NE collectons PAS
- Email — pas demandé, jamais stocké.
- Nom légal — pas demandé, jamais stocké.
- Numéro de téléphone — pas demandé, jamais stocké.
- Date de naissance obligatoire — Spotted ne la demande pas pour jouer aux modes généraux ; elle peut être renseignée uniquement pour une fonctionnalité soumise à une condition d'âge.
- Géolocalisation précise — l'app n'utilise jamais le GPS.
- Contacts — l'app ne lit pas ton carnet d'adresses.
- Photos en arrière-plan — la galerie n'est accessible qu'avec ta permission, pour l'avatar, les modes Photo Roulette et Caption Battle, ainsi que l'image facultative d'un personnage Super-Hôte. Spotted ne parcourt pas tes photos sans action de ta part.
- Biométrie et reconnaissance faciale — Paparazzi détecte temporairement la présence et la position de visages directement sur l'appareil pour déclencher les captures. Cette analyse ne reconnaît pas les personnes, n'est ni enregistrée ni envoyée à nos serveurs et disparaît à la fin du traitement.
- Caméra et microphone — ils ne sont activés qu'avec ta permission et pendant les fonctions qui les requièrent, notamment Paparazzi. La vidéo et le son servent à créer le montage local que tu peux ensuite enregistrer ou partager ; Spotted ne les téléverse pas automatiquement.
- Données publicitaires — Spotted n'affiche aucune publicité, n'intègre aucun SDK publicitaire et ne vend pas tes données. Les fournisseurs de contenus tiers appliquent toutefois leurs propres politiques aux métadonnées techniques nécessaires à l'affichage de leurs médias.
4. Où sont stockées tes données
- Base de données principale : Supabase (Paris, France — UE).
- Cache temps réel : Upstash Redis (Francfort, Allemagne — UE).
- Storage médias (avatars, photos Photo Roulette, images Caption Battle et personnages Super-Hôte) : Supabase Storage (Paris).
- Audit logs RGPD : Supabase (Paris), conservation d'environ 6 mois avant purge automatique.
- Analytics erreurs : Sentry ; la localisation dépend de la configuration active du projet et des sous-traitants de Sentry, avec les garanties de transfert applicables lorsque nécessaire.
Les données principales de profil et de jeu sont hébergées dans l'EEE. Certains prestataires nécessaires au fonctionnement de l'app — notamment pour les notifications, les achats et la distribution — peuvent toutefois traiter des données limitées aux États-Unis, comme détaillé à la section 8. Lorsque nécessaire, ces transferts reposent sur les Clauses Contractuelles Types de la Commission européenne ou sur un autre mécanisme légal applicable.
5. Combien de temps nous gardons tes données
| Donnée | Rétention | Comment c'est purgé |
|---|---|---|
| Identifiant anonyme + profil | Jusqu'à ta demande de suppression | Supprimé via « Supprimer mes données » ou la procédure web |
| Photos avatar | Idem profil | Idem |
| Statistiques Spotlight | Idem profil | Idem |
| Réponses « Qui a déjà ? » | Jusqu'à ta demande de suppression | Supprimées via « Supprimer mes données » ou la procédure web |
| Historique technique des sessions de jeu | Jusqu'à ta demande de suppression pour l'identifiant participant | Ton UUID est retiré de l'historique via « Supprimer mes données » ou la procédure web ; les données de session devenues non identifiantes peuvent être conservées pour les statistiques du service |
| Compte technique créé mais onboarding jamais terminé, sans activité | 30 jours | Purge automatique |
| Données de partie en cours (Redis) | Fin de partie | Purge lifecycle automatique |
| Photos Photo Roulette | Jusqu'au changement de mode, à la fin ou à la fermeture du salon | Purge lifecycle ; filet de sécurité pour les salons abandonnés |
| Images Caption Battle | Jusqu'au départ du joueur, au changement de mode, à la fin ou à la fermeture du salon | Purge lifecycle ; filet de sécurité pour les salons abandonnés |
| Images de personnages Super-Hôte | Jusqu'à la fermeture du salon | Purge à la fermeture ; filet de sécurité pour les salons abandonnés |
| Compte TikTok lié | Tant que tu l'as lié | Supprimé immédiatement à l'unlink ou via « Supprimer mes données » |
| Vidéos TikTok likées chargées pour une partie | Pendant la partie ; 24 heures maximum pour un salon abandonné | Purge à la fin de la partie, au changement de mode ou à la fermeture du salon ; expiration de sécurité Redis |
| Blocages entre joueurs | Jusqu'au déblocage ou à la suppression de l'un des comptes | Déblocage depuis les réglages ; suppression automatique avec le compte |
| Signalements structurés | Rapports clos : 6 mois ; tous les rapports : 12 mois maximum |
Purge automatique par lots ; les références à un compte, joueur
ou salon supprimé sont remplacées par NULL
|
| Acceptation des règles et documents | Jusqu'à la suppression du compte | Supprimée via « Supprimer mes données » ou la procédure web |
| Audit logs (link/unlink TikTok, consent per-session) | Environ 6 mois | Purge automatique via cron > 6 mois. Conservé même si tu supprimes tes données (Art. 30 RGPD — registre de traitements) |
| Journaux techniques d'abonnement RevenueCat | 6 mois ; jusqu'à 12 mois si un événement est en échec ou en quarantaine | Purge automatique. Ton UUID Spotted est remplacé dans le journal lors de la suppression du compte ; un webhook de cycle de vie reçu ultérieurement peut contenir cet ancien identifiant technique, avec accès restreint et uniquement pour le rapprochement transactionnel ou de sécurité. |
| Identifiant push (Expo Push Token) | Jusqu'à suppression du compte ou invalidité constatée | Supprimé via « Supprimer mes données » ou lorsque le fournisseur signale le token invalide |
| File technique de suppression de compte | Jusqu'à la fin des suppressions externes, puis 30 jours maximum | UUID technique et état de reprise uniquement, accès serveur restreint ; purge automatique après convergence |
| Analytics erreurs Sentry | Selon la durée de rétention configurée dans Sentry | Suppression selon les paramètres de rétention Sentry |
6. Tes droits RGPD
Conformément aux articles 15 à 22 du RGPD, tu peux à tout moment :
- Accéder à tes données (Art. 15) : contacte-nous à [email protected] — nous t'enverrons un export JSON sous 30 jours.
- Rectifier tes données (Art. 16) : modifie ton pseudo et ton avatar directement depuis ton profil dans l'app.
- Supprimer tes données (Art. 17, « droit à l'oubli ») : utilise le bouton « Supprimer mes données » dans ton profil, ou la procédure web de suppression si tu n'as plus accès à l'app. La suppression est irréversible. Certaines traces peuvent être conservées de façon limitée lorsqu'une obligation légale, de sécurité ou de prévention de la fraude l'exige, comme décrit ci-dessus.
- Limiter le traitement (Art. 18) : contacte-nous.
- Portabilité (Art. 20) : contacte-nous pour recevoir tes données dans un format structuré.
- Opposition (Art. 21) : contacte-nous (en particulier pour Sentry — base légale intérêt légitime).
- Retirer ton consentement (Art. 7(3)) : aussi simple que de le donner — unlink TikTok depuis ton profil, ou supprime toutes tes données.
Tu peux aussi déposer une réclamation auprès de l'autorité de contrôle compétente :
- France : CNIL — www.cnil.fr
- Autres pays EEE : liste des autorités
7. Sécurité
- Chiffrement en transit : les communications avec nos services sont protégées par HTTPS/TLS ; la version négociée dépend du client et du fournisseur d'infrastructure.
- Chiffrement au repos : Supabase Postgres et Storage appliquent les mécanismes de chiffrement au repos prévus par leur infrastructure et leurs engagements contractuels.
- Tokens TikTok : chiffrés en envelope encryption AES-256-GCM dans notre base de données (clé maître séparée, jamais loggée).
- JWT mobile : stocké dans le Keychain iOS ou le Keystore Android ; le niveau de protection matérielle dépend de l'appareil et de sa version du système.
- Audit logs : IP hashée HMAC-SHA256 (jamais d'IP en clair).
- Vérifications de sécurité : nous réalisons des contrôles ciblés lors des évolutions sensibles et corrigeons les problèmes identifiés ; aucune mesure technique ne garantit un risque nul.
8. Prestataires et services tiers
Dans Caption Battle, certains contenus sont fournis par KLIPY et Imgflip. Les médias sont chargés depuis leurs serveurs ou CDN, qui reçoivent alors les métadonnées techniques nécessaires à la connexion, notamment l'adresse IP. Spotted ne leur transmet ni ton UUID, ni ton pseudo, ni le code de ta partie. Lorsque la modération automatique est configurée, le texte des légendes et prompts est envoyé à OpenAI avant son affichage aux autres joueurs ; aucune photo, vidéo ni donnée d'identification Spotted n'est incluse.
| Service | Finalité | Localisation | Données partagées |
|---|---|---|---|
| Supabase (Supabase Inc.) | Base de données + Storage + Auth anonyme | Paris, France (EEE) | Toutes les données de profil et de jeu |
| Upstash | Cache temps réel Redis | Francfort, Allemagne (EEE) | État de partie en cours (volatile) |
| Railway | Hébergement serveur Spotted | Ashburn, États-Unis | Requêtes API et logs serveur limités |
| Sentry (Functional Software Inc.) | Analytics d'erreurs | Selon configuration et sous-traitants | Stack traces, contexte technique, identifiant possible |
| OpenAI | Modération automatique de Caption Battle, lorsque configurée | États-Unis | Texte des légendes et prompts uniquement, sans identifiant Spotted ni média |
| KLIPY (Kikliko, Inc.) | Recherche et affichage de GIFs et mèmes | États-Unis | Termes de recherche, langue, contenu consulté et métadonnées techniques nécessaires au chargement ; aucun UUID ou pseudo transmis |
| Imgflip (Imgflip LLC) | Catalogue public de modèles de mèmes | États-Unis | Aucun profil ni terme de recherche envoyé par Spotted ; métadonnées réseau usuelles lors du chargement des images |
| Wikimedia Foundation | Recherche de personnalités dans les versions de l'app qui proposent ce sélecteur | États-Unis et infrastructure mondiale | Terme recherché et métadonnées techniques de la requête ; aucun profil Spotted |
| TikTok (ByteDance Ltd.) | Mode Who Liked This? — uniquement si tu lies ton compte | TikTok Ireland (DPC) |
Token OAuth chiffré, scope
portability.activity.ongoing
|
| Expo / EAS (650 Industries Inc.) | Service Push Notifications (proxy APNs / FCM) | États-Unis (SCCs) | Identifiant push opaque, payload notification (titre/body/data) |
| Apple APNs | Livraison push iOS | États-Unis | Identifiant push opaque, payload notification |
| Google FCM (Firebase) | Livraison push Android | États-Unis | Identifiant push opaque, payload notification |
| Apple App Store / Google Play | Distribution de l'app + paiements IAP | Apple Inc. / Google LLC | Données de transaction (traitées par Apple/Google) |
| RevenueCat (RevenueCat Inc.) | Validation des abonnements IAP Premium | États-Unis (SCCs) | Identifiant anonyme app, statut abonnement, ID transaction opaque |
Lorsque l'un de ces prestataires traite des données hors de l'EEE, nous utilisons les garanties de transfert applicables, notamment les Clauses Contractuelles Types de la Commission européenne lorsque nécessaire.
Spotted est distribué sur iOS via l'App Store et sur Android via Google Play. Les services du store et de notifications utilisés dépendent de la plateforme de ton appareil.
9. Enfants
Spotted est destiné à un public âgé de 13 ans et plus. Certains thèmes de jeu peuvent toutefois viser un public mature. Les classifications affichées par l'App Store ou Google Play décrivent ce contenu et peuvent être distinctes de cet âge contractuel minimum. Nous interdisons l'utilisation par des personnes de moins de 13 ans. Si tu as moins de 13 ans, supprime tes données via le bouton dans le profil et désinstalle l'app.
Si un parent ou tuteur découvre qu'un enfant de moins de 13 ans utilise Spotted, contacte-nous à [email protected] — nous supprimerons immédiatement le compte et toutes les données associées.
10. Modifications de cette politique
Si nous modifions cette politique de manière substantielle, nous afficherons un écran de consentement explicite à la prochaine ouverture de l'app, et tu devras ré-accepter pour continuer à l'utiliser.
Les modifications mineures (corrections de typos, précisions sans changement de finalité) seront publiées ici sans notification active, mais la date « Dernière mise à jour » au sommet de cette page sera mise à jour.
11. Contact
- Email général / RGPD : [email protected]