Zip Zop

Politique de confidentialité — Zip Zop

Dernière mise à jour : 30 octobre 2026.

Zip Zop est un jeu de rythme pour Android édité par Wub Lab (contact : contact@wub-lab.com). Ce document décrit ce que l'application fait de tes données, et ce que fait le Jukebox communautaire sur le site wub-lab.com. Il correspond à la version actuelle de l'application ; les sections marquées « à venir » ne s'appliqueront qu'à partir de la version qui les introduira, et cette page sera mise à jour avant.

En résumé

  • Sans compte, ton jeu reste sur ton téléphone. Tu joues, tu crées des beatmaps, tu les importes et tu les exportes : ni tes beatmaps, ni tes parties, ni ta musique ne sont envoyées. Quelques échanges techniques ont lieu quand même avec Google : la publicité (Google AdMob), Google Play pour les achats, et la lecture de deux documents publics du jeu, comme décrit dans « Sans compte, ce qui part quand même », « Publicité » et « Achats » ; et, pour les pochettes, l'artiste et le titre d'un morceau envoyés à MusicBrainz (voir « Les pochettes »). Rien de tout cela ne contient ton jeu.
  • Le compte est facultatif. Il se crée avec une adresse e-mail et un mot de passe, ou avec un compte Google, et sert au Jukebox communautaire, aux classements, aux amis, aux défis, au jeu en ligne, à la progression et à la boutique. Avec un compte, ce que tu publies, tes brouillons, tes scores, ta liste d'amis et quelques données décrites plus bas sont enregistrés chez Google (Firebase), et tu peux tout effacer en supprimant le compte.
  • Ta musique reste sur ton téléphone. L'application lit ton dossier musical en lecture seule ; une beatmap ne contient jamais d'audio. Seule exception, en duel local quand le son ne joue que chez l'hôte : le morceau d'un invité est prêté au téléphone de l'hôte, par la liaison locale, le temps de la manche (voir « Duel en local, sans internet »).
  • Les pochettes. Pour montrer la pochette d'un morceau dont le fichier n'en porte pas, l'application demande l'artiste et le titre du morceau, et rien d'autre, à MusicBrainz et au Cover Art Archive ; le réglage se coupe dans Profil → Menu → « Pochettes trouvées sur internet ».
  • Une publicité entre les morceaux, jamais pendant une partie, servie par Google AdMob, avec ou sans compte : le kit d'AdMob reçoit l'identifiant publicitaire de l'appareil, son adresse IP et des informations techniques. En Europe, et là où la loi l'exige, tu choisis d'abord si les annonces peuvent être personnalisées ; ailleurs, ce choix ne t'est pas proposé dans le jeu. Un achat unique retire la publicité entre les morceaux ; une vidéo qui rapporte des wubs ne passe que si tu la demandes. Aucun traceur ni profil de joueur : le jeu ne compte, de façon anonyme, que ce que vivent les morceaux des artistes du Line-up, pour leur en rendre compte (voir « Les statistiques des artistes »), et nous ne vendons tes données à personne.
  • Progression, wubs et boutique, avec un compte seulement. Ton expérience, tes niveaux, tes succès, tes wubs (la monnaie virtuelle du jeu, gagnée en jouant), tes jetons VIP (la monnaie achetée, qui ne paie que les articles de la boutique et les cadeaux) et tes articles cosmétiques sont tenus par le serveur du jeu. Les jetons VIP s'achètent par Google Play, qui traite le paiement : nous ne voyons jamais tes coordonnées bancaires. Sans compte, rien de tout cela.

Ce que l'application lit sur ton téléphone

Ton dossier musical. Tu désignes une fois pour toutes, avec le sélecteur de dossiers d'Android (Storage Access Framework), le dossier où se trouvent tes musiques. L'application reçoit une autorisation d'accès en lecture seule à ce dossier et à ses sous-dossiers (jusqu'à 5 000 fichiers et huit niveaux de profondeur), persistante d'un lancement à l'autre. Changer de dossier dans les réglages du jeu rend l'autorisation sur l'ancien ; effacer les données de l'application ou la désinstaller la retire aussi. C'est là que l'application cherche tes morceaux. En dehors de ce dossier, elle n'ouvre un fichier audio que si tu le choisis toi-même avec le sélecteur de fichiers d'Android (« Parcourir… », nouvelle beatmap, association d'un fichier), et garde alors une autorisation de lecture sur ce seul fichier. Elle lit les fichiers audio pour les jouer et pour les analyser sur le téléphone (tempo, attaques, forme d'onde), et lit leurs métadonnées (titre, artiste, durée, et l'image de pochette qu'ils portent) pour nommer tes beatmaps, les montrer, et pour retrouver, dans ton dossier, le fichier qui correspond à une beatmap téléchargée. Aucun fichier n'est copié, modifié ni envoyé.

La recherche de beatmaps pour ta musique. Pour te proposer les beatmaps de la communauté qui correspondent aux morceaux que tu possèdes, l'application télécharge un index compact des beatmaps publiées (titre, artiste, pseudo de l'auteur, niveau, voies, durée) et le compare localement aux métadonnées (titre, artiste, durée) et aux noms de tes fichiers. La liste de tes fichiers ne quitte pas le téléphone ; seul l'index est téléchargé, dans le sens serveur → téléphone. L'empreinte des attaques d'un fichier n'est comparée qu'au premier lancement d'une beatmap, sur le téléphone.

Ce que l'application enregistre sur ton téléphone

Dans son espace privé, inaccessible aux autres applications :

  • Ton année de naissance, si tu l'as donnée : elle ne quitte pas le téléphone (voir « Enfants »).
  • Tes beatmaps : la grille rythmique, les notes, l'auteur, le titre, l'artiste, une référence au fichier audio associé avec son nom, et, pour celles créées en mode express, les passages déjà faits. Pour tes brouillons, avec un compte, de quoi les tenir en phase avec ceux de ton compte (voir « Tes brouillons » plus bas) : le numéro de version de chacun, la date de ta dernière retouche, le décalage retenu quand un brouillon a été recalé sur ton fichier, et l'autre version d'un brouillon changé à deux endroits à la fois, le temps que tu décides de la récupérer ou non.
  • L'index de ton dossier musical : le titre, l'artiste, la durée, l'adresse et la date de chaque fichier audio du dossier, pour ne pas relire leurs métadonnées à chaque fois.
  • Une empreinte de chaque morceau : une suite de valeurs décrivant l'intensité des attaques, environ vingt par seconde. Elle sert à retrouver ton fichier et à recaler une beatmap dessus quand deux versions du même morceau diffèrent. Elle ne permet pas de reconstituer le son, ni de l'écouter. S'y ajoute, pour chaque fichier apparié à une beatmap, une somme de contrôle du fichier (SHA-256) et le décalage retenu, calculé ou réglé par toi.
  • Tes réglages : dossier musical, pseudo d'auteur, calibration de la latence tactile, nombre de voies, vitesse de défilement des notes, réglages de son et de graphismes, et ton choix d'atténuer ou non les flashs (demandé une fois, au premier lancement ; Profil → « Atténuer les flashs »).
  • Tes records et statistiques, avec un compte : meilleur score, précision, combo et courbe de score (le « fantôme ») par beatmap et les cumuls de toutes tes parties. Sur un téléphone partagé, chaque compte a les siens. Une partie jouée sans compte n'est pas enregistrée. Le téléphone n'envoie plus lui-même de score au classement : voir « Tes scores » plus bas.
  • Ta progression, avec un compte : les chiffres qui débloquent les succès (zops menés à terme, beatmaps où tu as fait S, plus long fever, série de duels gagnés, identifiants des amis que tu as défiés, et quelques exploits, comme une partie jouée entre 2 h et 5 h ou une égalité en duel), les cosmétiques que tu portes, les succès que tu as choisis pour ta vitrine, et une copie des derniers chiffres reçus du serveur (wubs, jetons VIP, expérience, articles, succès), pour les afficher hors ligne. Sur un téléphone partagé, chaque compte a les siens.
  • Les pochettes : l'image intégrée à tes fichiers audio, réduite (dans un cache qu'Android peut vider), et celles trouvées sur internet (voir « Les pochettes »), avec la date d'une recherche restée sans résultat.
  • Un journal d'erreurs : les dernières erreurs graves de l'application (plantage, blocage), vingt au plus — la date, la version, le modèle du téléphone, la nature de l'erreur et l'endroit du code, jamais le texte de l'erreur, ni tes fichiers, tes beatmaps ou ton compte. Il reste sur le téléphone ; rien n'en part tant que tu n'utilises pas Profil → « Journal d'erreurs » → « Envoyer par e-mail », qui ouvre ton application de courrier avec ce texte, à contact@wub-lab.com : le studio le reçoit alors, comme n'importe quel courriel, et le garde le temps de corriger l'erreur. Tu l'effaces depuis le même écran.
  • Des journaux locaux : les défis et demandes d'ami que tu as déjà vus, les défis et demandes que tu as envoyés, le bilan de tes duels et défis par adversaire (pseudo et résultats), le nombre de tes parties pas encore reportées dans ton historique de jeu (il part avec la suivante), et des caches : l'index du Jukebox, la liste de tes joueurs bloqués et de tes beatmaps publiées, et l'emblème, le cadre, l'effet de pseudo, la bannière et le niveau des joueurs affichés dans tes classements et ta liste d'amis (douze heures au plus), pour ne pas les redemander au serveur à chaque fois.

Rien de tout cela ne quitte l'appareil : l'application est exclue de la sauvegarde automatique d'Android, rien n'en est copié sur ton compte Google. Désinstaller l'application efface l'ensemble.

Sans compte, ce qui part quand même

Sans compte, l'application ne t'identifie pas, mais elle lit deux documents publics de Firebase (Google), situés dans l'Union européenne, sans rien y écrire :

  • Le document de configuration du jeu, lu à l'arrivée au menu, au plus une fois toutes les six heures : les dates des événements saisonniers de la boutique, les interrupteurs des mises (des défis, des salons) et les numéros de version du jeu (la dernière version publiée et la plus ancienne qui fonctionne encore, pour te proposer une mise à jour). Il est lu de la même façon avec un compte.
  • La table des genres, quand tu étiquettes une beatmap dans l'éditeur : un petit document de la table « artiste → genre » (tirée des données publiques de Discogs), dont le numéro, de 0 à 511, dépend du nom de l'artiste sans le révéler ; il est ensuite gardé trente jours sur le téléphone.

Comme toute requête réseau, ces lectures laissent des traces techniques chez Google : l'adresse IP du téléphone, le jeton de vérification de l'application (Firebase App Check, délivré par Google Play Integrity : voir « Le compte, facultatif ») et l'identifiant d'installation de Firebase, un numéro tiré par Firebase, propre à cette installation, qui n'est lié ni à un compte ni à ton nom. Nous ne consultons pas ces journaux. Aucune donnée de jeu n'y figure. En dehors de cela, sans compte, seules la publicité (Google AdMob) et Google Play, pour les achats, reçoivent des données de l'appareil (voir « Publicité » et « Achats »), et la recherche des pochettes l'artiste et le titre d'un morceau (voir « Les pochettes »).

Les morceaux inclus (à venir)

Les morceaux inclus de Zip Zop (sous licence libre, ou proposés par leurs artistes) se téléchargent depuis notre stockage, avec ou sans compte :

  • l'application demande aux fonctions du jeu (Firebase, Union européenne) le catalogue des morceaux, puis, pour chaque morceau, un lien de téléchargement valable dix minutes ; la demande porte le jeton de vérification de l'application (Firebase App Check) et, si tu es connecté, celui de ton compte ;
  • le fichier vient de Cloudflare R2 (le stockage de Cloudflare, qui héberge aussi le site), qui reçoit pour cela l'adresse IP du téléphone ;
  • pour empêcher les téléchargements en masse (soixante liens par heure et par compte, cent cinquante par adresse sans compte), le serveur tient un compteur de l'heure en cours, rattaché à ton compte ou, sans compte, à une empreinte chiffrée de l'adresse IP, calculée avec une clé secrète qui ne permet pas de retrouver l'adresse. Ces compteurs sont effacés chaque nuit.

Sur le téléphone, les morceaux téléchargés, leur catalogue (titres, artistes, licences) et l'heure à laquelle chacun a été joué pour la dernière fois (pour libérer d'abord la place des moins joués quand le plafond choisi dans le Profil est atteint) restent dans l'espace privé de l'application, hors de la sauvegarde Google. Ces fichiers ne quittent jamais le téléphone : ni partage, ni export, ni envoi à un autre joueur (un salon à côté ne les prête pas).

Les statistiques des artistes

Nous rendons compte chaque mois aux artistes dont les morceaux sont dans le jeu de ce que vivent leurs morceaux (nous nous y engageons envers eux). Pour cela, l'application tient, avec ou sans compte, des compteurs anonymes :

  • elle compte les parties jouées sur un morceau inclus, les écoutes d'un extrait dans la vitrine des artistes (Line-up), les ouvertures d'une page d'un artiste (son site, ses réseaux, ses plateformes d'écoute) et les abonnements à un artiste, donnés ou retirés ;
  • ces compteurs se regroupent sur le téléphone et partent au plus une fois par jour aux fonctions du jeu (Firebase, Union européenne), dans un envoi qui ne porte ni ton compte, ni ton pseudo, ni aucun identifiant de l'appareil : seulement des nombres, par artiste, par morceau et par mois ;
  • pour compter les joueurs d'un artiste sans savoir qui ils sont, le téléphone retient seulement qu'il l'a déjà compté ce mois-ci ;
  • le serveur n'en garde que les totaux par artiste et par mois. Pour empêcher les envois en masse, il tient, comme pour les morceaux, un compteur de l'heure en cours rattaché à une empreinte chiffrée de l'adresse IP, effacé chaque nuit.

Les artistes reçoivent ces totaux, jamais rien qui permette de reconnaître un joueur. Un lien vers un site web porte la mention utm_source=zipzop, qui dit seulement à ce site que la visite vient de Zip Zop.

Les pochettes

Sur l'écran Jouer, chaque beatmap a sa pochette. L'application prend d'abord l'image intégrée à ton fichier audio, sur le téléphone. Si le fichier n'en porte pas, et tant que le réglage Profil → Menu → « Pochettes trouvées sur internet » est allumé (il l'est d'office), avec ou sans compte, elle la cherche sur internet :

  • elle envoie l'artiste et le titre du morceau, rien d'autre (ni le fichier, ni ton compte, ni ton pseudo), à MusicBrainz, l'encyclopédie libre de la musique de la MetaBrainz Foundation (États-Unis), une demande par seconde au plus ;
  • si MusicBrainz reconnaît sûrement l'album (titre, artiste et durée qui correspondent), elle en télécharge la pochette depuis le Cover Art Archive (MetaBrainz Foundation et Internet Archive, États-Unis) ; sinon, rien, et le jeu dessine la pochette lui-même.

Comme toute requête réseau, ces demandes laissent voir l'adresse IP du téléphone ; elles portent aussi le nom et la version de l'application (« ZipZop/1.0.5 », comme MusicBrainz le demande). La pochette est gardée sur le téléphone, dans l'espace privé de l'application, et n'est plus redemandée ; une recherche restée sans résultat n'est refaite qu'après trente jours. Rien n'est demandé pour les morceaux inclus avec le jeu, pour une beatmap sans artiste ou sans titre, ni sans réseau. Couper le réglage arrête toute demande et efface les pochettes téléchargées : les pochettes dessinées par le jeu reviennent.

Le compte, facultatif

Tu crées un compte depuis le Profil, au premier lancement, ou quand une fonction le demande (Jukebox, publication, classements, amis, jeu en ligne). Deux façons : une adresse e-mail et un mot de passe, ou ton compte Google. Tu choisis alors un pseudo, unique et définitif, qui est ton identité dans le jeu : il signe tes beatmaps publiées, tes scores et tes défis, et il est visible des autres joueurs. Ton adresse e-mail, elle, n'est jamais visible : personne ne peut retrouver ton adresse depuis ton pseudo, et on ne se connecte pas par pseudo pour cette raison.

Sont transmis à Firebase Authentication (Google) : ton adresse e-mail et ton mot de passe (Firebase en garde une empreinte, nous ne le voyons jamais), ou le jeton fourni par Google si tu passes par ton compte Google. Firebase attribue à ton compte un identifiant technique. Un courriel de Firebase peut t'être envoyé pour réinitialiser un mot de passe oublié.

Avec une adresse e-mail et un mot de passe, l'adresse doit être confirmée avant de pouvoir réserver un pseudo : Firebase t'envoie un courriel qui contient un lien, et le serveur le vérifie (c'est ce qui empêche de fabriquer des comptes par dizaines). Un compte Google n'a pas cette étape : Google confirme lui-même l'adresse. Un compte créé avant cette règle, qui a déjà son pseudo, n'est pas concerné.

Vérification de l'application (Firebase App Check). Pour que le serveur n'accepte que les requêtes d'une vraie installation de Zip Zop, l'application joint à ses requêtes vers Firebase un jeton d'attestation. Sur Android, ce jeton vient de Google Play Integrity : Google vérifie que l'application est bien celle du Play Store et que l'appareil est un appareil Android authentique, et reçoit pour cela des informations sur l'appareil et sur l'installation, selon sa propre politique de confidentialité. Le jeton ne contient aucune donnée de ton compte. Sur le Jukebox du site, la même vérification passe par reCAPTCHA (voir « Le Jukebox du site »).

Ce qui est enregistré sur le serveur, avec un compte

Ces données sont hébergées par Google, dans le projet Firebase du studio (Firebase Authentication, Cloud Firestore et Realtime Database ; les calculs du serveur du jeu tournent sur Cloud Functions), les bases de données et ces fonctions étant situées dans l'Union européenne. Google agit comme sous-traitant ; il n'utilise pas ces données pour son propre compte. Elles sont conservées tant que ton compte existe, sauf mention contraire ci-dessous, et effacées à sa suppression (voir « Supprimer ton compte »).

  • Ton profil : identifiant technique, pseudo et sa forme en minuscules, date d'inscription, ton palmarès de duel (victoires, défaites, nuls), ton expérience totale (un nombre écrit par le serveur quand tu changes de niveau, d'où viennent le niveau et le titre affichés), les quatre cosmétiques que les autres voient (emblème, cadre, effet du pseudo, bannière), le nombre de tes succès et jusqu'à trois succès choisis pour ta vitrine (sans choix, tes trois plus beaux ; écrits par ton téléphone quand ils changent, et vérifiés contre ton état de jeu), et, pour un compte créé avant le 30 septembre 2026, la date d'un ancien marqueur de bibliothèque que l'application n'écrit ni ne lit plus. Ton profil est lisible par tout joueur connecté qui te trouve : c'est ta carte de joueur, qui s'ouvre quand on touche ton pseudo (classement, salon, défi, résultats d'un duel, Jukebox, recherche) et montre ton pseudo, tes cosmétiques, ton niveau et ton titre, ta date d'inscription, ton palmarès de duel, le nombre de tes succès et ta vitrine, et tes beatmaps publiées ; tes cosmétiques accompagnent aussi ton pseudo aux classements des beatmaps. Le reste de ta progression est décrit dans « Progression, wubs et boutique ».
  • Les beatmaps que tu publies : titre, artiste, genre, mots-clés, ton pseudo, nombre de voies, tempo, niveau, nombre de notes, durée du morceau, score maximal, ton score de créateur, la grille rythmique et les notes, et l'empreinte des attaques (jamais l'audio, jamais le nom de ton fichier). S'y ajoutent des compteurs tenus par les autres joueurs : étoiles reçues, téléchargements, signalements. Une beatmap publiée est visible de toute personne connectée, dans le jeu et sur le Jukebox du site. Le serveur recalcule, d'après les notes publiées, le score maximal et le nombre de notes. L'identifiant de chaque beatmap que tu publies reste inscrit à ton compte (ton identifiant technique, dans un registre), même si tu la retires du Jukebox : personne d'autre ne peut publier sous cet identifiant. Le registre se lit identifiant par identifiant par les personnes connectées (il ne dit que ce que la beatmap publiée disait déjà) ; à la suppression de ton compte, ton identifiant technique y est remplacé par « supprimé », et ces identifiants restent réservés. Wub Lab étudie aussi les beatmaps publiées, sans le pseudo de leur auteur, pour régler le générateur de beatmaps du jeu (voir les conditions d'utilisation, partie 2) : leurs notes sont comparées à ce que le générateur propose pour le même morceau, et seuls des réglages et des statistiques en sont gardés. Seules servent les beatmaps des comptes qui ont accepté les conditions du 19 octobre 2026 (la date de cette acceptation est sur ton profil).
  • Tes téléchargements : quand tu télécharges une beatmap du Jukebox, ton identifiant technique est noté sous cette beatmap, avec la date, une seule fois : c'est ce qui permet au compteur de téléchargements de ne compter chaque compte qu'une fois. Personne ne lit cette liste.
  • Tes étoiles et tes signalements : une note de 1 à 5 étoiles par beatmap, liée à ton identifiant, que tu peux changer (la date du dernier changement est gardée, et le serveur en tient la somme et le nombre sur la fiche de la beatmap) ; ou un motif de signalement, une seule fois par beatmap, jamais modifiable. Le téléphone garde aussi les notes que tu as données, pour les afficher. Personne ne lit la liste des signalements en dehors du studio. Un compte ne signale une beatmap que trois jours après son inscription : la date d'inscription de ton profil sert à le vérifier, rien de plus n'est noté.
  • Tes scores : seules les parties officielles (que tu choisis avant de jouer) entrent au classement d'une beatmap publiée : ton pseudo, ton score, ta précision et ton combo, inscrits par le serveur et jamais par ton téléphone, et seulement s'ils améliorent ton meilleur score. Pour une partie officielle, le serveur garde un billet le temps de la partie (beatmap, version des notes, heure de départ) puis le détruit ; le jour de ta dernière partie officielle gratuite est noté dans ton état de jeu. Un entraînement ne quitte pas ton téléphone.
  • Ta bibliothèque déclarée : pour chaque beatmap que tu as, son identifiant, son titre, la version de ses notes, si un fichier audio lui est associé (oui ou non, jamais lequel) et la date — jamais l'audio ni le nom de ton fichier. C'est ce qui permet de savoir sur quoi quelqu'un peut être défié ; elle se consulte beatmap par beatmap, par les personnes connectées, jamais en bloc.
  • Tes amis : ta liste d'amis (privée, personne d'autre ne la lit) et les demandes d'ami, que tu envoies ou reçois (pseudo et date). Une amitié se fait par demande : on cherche quelqu'un par les premières lettres de son pseudo — la recherche ne rend que dix pseudos à la fois, jamais l'annuaire entier —, on lui envoie une demande, qu'il accepte ou refuse. Acceptée, l'amitié est inscrite des deux côtés ; refusée, rien n'est conservé.
  • Ton historique de jeu : les beatmaps que tu as jouées, ton meilleur score, ta précision et ton combo sur chacune, le nombre de parties et la date de la dernière. Il est visible de tes seuls amis, sur ta fiche ; retirer quelqu'un de tes amis le lui cache de nouveau.
  • Les défis : quand tu défies un ami, il reçoit la beatmap visée, ton score, ta précision et la courbe de ta partie, pour la rejouer contre ton fantôme ; quand il relève le défi, tu reçois son résultat de la même façon. Un défi est déposé chez son destinataire, qui seul le lit et l'efface ; un défi jamais relevé est effacé par le serveur au bout de soixante jours. Un défi misé porte en plus sa mise (10, 25 ou 50 wubs) ; la mise elle-même est tenue par le serveur (voir « Progression, wubs et boutique »).
  • Les invitations à un duel : depuis le salon d'un duel en ligne, tu peux inviter un ami : il reçoit le code du salon, avec ton pseudo. L'invitation s'efface quand il la rejoint ou l'ignore, quand le salon se ferme, et, passé deux heures, dès qu'il ouvre sa liste ou au plus tard la nuit suivante.
  • L'annonce de tes nouvelles beatmaps : quand tu publies une beatmap pour la première fois, le serveur prévient chacun de tes amis par une notification — ton pseudo, le titre, l'artiste, le nombre de voies et le niveau de la beatmap. Il ne garde que la trace que cette beatmap a été annoncée (son identifiant et la date, sous ton compte), pour ne jamais l'annoncer deux fois.
  • Les joueurs que tu bloques : pour chacun, son identifiant technique, son pseudo et la date. Lisible par toi seul ; le joueur bloqué n'en est pas averti (ses demandes, défis et invitations sont simplement refusés). Tu débloques depuis Profil → Joueurs bloqués.
  • Les signalements de joueurs : quand tu signales un joueur, son identifiant et son pseudo, le motif choisi, ton identifiant et la date. Seul le studio les lit, pour la modération (voir les conditions d'utilisation).
  • Ton acceptation des conditions d'utilisation : la date, sur ton profil.
  • Tes téléphones, pour les notifications : pour chaque téléphone où tu es connecté, un jeton Firebase Cloud Messaging — l'adresse technique à laquelle Google remet les notifications à ce téléphone — et les genres de notifications que tu y as éteints, rangés sous l'identifiant d'installation de l'application (un numéro tiré par Firebase, propre à ce téléphone). Quand tu envoies une demande d'ami, le serveur note la paire d'identifiants (le tien, celui du destinataire) pour ne pas la notifier plus d'une fois par heure ; cette note est effacée la nuit suivante. Le jeton n'est demandé à Google qu'une fois un compte connecté sur le téléphone : sans compte, l'application ne s'inscrit pas à Firebase Cloud Messaging. Lisible par toi seul ; effacé quand tu te déconnectes de ce téléphone et à la suppression du compte, oublié quand Google le déclare périmé (application désinstallée).
  • Les salons de jeu en ligne : le code du salon, le pseudo et l'identifiant de chaque joueur, la liste des beatmaps qu'il peut jouer (leur identifiant et la version de leurs notes — ni l'audio, ni un nom de fichier : c'est ce qui permet de ne proposer que des beatmaps que tout le salon a), s'il est prêt, la beatmap qu'il propose, la mise qu'il propose (10, 25 ou 50 wubs) et sa dernière réaction ; la manche tirée (et, si elle est misée, sa mise et son séquestre), l'instant de départ, les scores en direct pendant la partie, les points de la soirée, l'identifiant des joueurs que l'hôte a exclus, le mode de jeu et le nombre de vies choisis par l'hôte, la version du protocole de salon de l'application de chaque joueur (pour ne proposer un mode que si tous le connaissent), et, pendant une manche de Survie ou d'Objets, les vies de chacun, l'instant de son élimination et la dernière attaque qu'il a lancée (la cible et l'objet). Tout joueur connecté qui connaît le code peut lire le salon. Le salon dure tant que quelqu'un y reste : ta place et ta liste s'effacent quand tu le quittes ; l'hôte parti, le premier invité le reprend ; le dernier parti, il s'efface. Un salon abandonné n'est plus valide au bout de deux heures et son code est réattribué au salon suivant, qui l'écrase — le serveur efface chaque nuit ceux qui restent. Quand tu ouvres un salon (ou en reprends un), le code de ce salon et l'heure sont notés sous ton identifiant, dans la même base : c'est ce qui limite chaque compte à un salon vivant à la fois — un salon que tu ne tiens plus peut être repris par un autre joueur qui en ouvre un. Lisible par toi seul ; effacé la nuit quand ce salon n'existe plus ou n'est plus le tien, et à la suppression du compte. Les paquets de réactions que tu possèdes (les réactions payantes du salon) sont recopiés par le serveur, sous ton identifiant, dans cette même base temps réel : c'est ce qui permet au salon de n'accepter que les réactions que tu as. Personne ne peut les lire, pas même toi (le serveur seul) ; effacés avec ton compte.
  • Ta file d'attente de téléchargement : quand, depuis le Jukebox du site, tu demandes l'envoi d'une beatmap vers ton téléphone, le site écrit sous ton compte un petit document (identifiant, titre, artiste et version de la beatmap, date de la demande, état). Il est écrit par toi seul, lu par l'application sur ton téléphone, qui télécharge la beatmap et l'efface. Une demande en attente reste jusqu'au prochain lancement du jeu avec ce compte ; une demande en échec est effacée au plus tard trente jours après. Quand tu télécharges le fichier d'une beatmap depuis le site, il note ton passage sous cette beatmap (voir « Tes téléchargements » plus haut) ; c'est le serveur qui fait avancer le compteur. Le Jukebox du site n'écrit rien d'autre.
  • Tes brouillons : chaque brouillon de beatmap signé de ton pseudo, commencé sur ton téléphone ou dans l'éditeur du site — la grille rythmique, les notes, le titre, l'artiste, le genre, la durée du morceau et son empreinte des attaques (jamais l'audio, jamais le nom ni l'adresse de ton fichier) —, avec son numéro de version, la date de ta dernière retouche et l'appareil qui l'a écrit (le téléphone ou le site). C'est ce qui le fait apparaître à la fois sur ton téléphone et dans l'éditeur du site. Lisible et modifiable par toi seul. Un brouillon que tu effaces, ou que tu valides (il rejoint alors Mes beatmaps sur ton téléphone), laisse pendant trente jours une trace vide et datée, qui le retire de tes autres appareils ; puis le serveur l'efface. Un brouillon plus gros qu'une beatmap publiée reste sur ton téléphone.

Firebase tient aussi, pour la sécurité du service, des journaux techniques de connexion (adresse IP, horodatages), que Google conserve selon ses propres règles et que nous ne consultons pas.

Progression, wubs et boutique

Avec un compte, le jeu tient ta progression (expérience, niveaux, prestige, succès), deux monnaies virtuelles — les wubs, gagnés en jouant, et les jetons VIP, achetés —, et ce que propose la boutique : des articles cosmétiques, qui ne changent que l'apparence, et un boost d'expérience — rien de ce qui s'achète ne touche au score ni aux classements des beatmaps. C'est le serveur du jeu qui calcule et écrit tout cela ; ton téléphone le lit et le demande. Sans compte, rien de tout cela : ni expérience, ni wubs, ni boutique. Ces données sont hébergées comme celles de la section précédente et conservées tant que ton compte existe, sauf mention contraire ci-dessous.

  • Ton état de jeu, lisible par toi seul et écrit par le serveur seul : tes soldes de wubs et de jetons VIP, tes coffres gagnés et pas encore ouverts, « sans pub » s'il t'a été offert par un gros paquet de jetons VIP, si l'offre de bienvenue a déjà servi, la fin de ton boost d'expérience, ton expérience totale, les compteurs de ton jour de jeu (le jour, l'expérience et le nombre de parties du jour, si la première partie du jour est faite, les identifiants des beatmaps jouées aujourd'hui et le nombre de parties sur chacune), ta série de jours joués, le jour où tu as réussi le défi du jour, tes quêtes du jour (le jour, les trois quêtes tirées, ton avancée, celles déjà payées, les identifiants des beatmaps jouées pour elles, et si le bonus des trois est pris), ton avancée dans le calendrier de connexion, le nombre de vidéos récompensées regardées aujourd'hui (et les identifiants des trente dernières confirmations de Google), l'identifiant de ton parrain et s'il a été payé, le nombre de tes filleuls payés et le dernier d'entre eux (son identifiant, pour que le jeu te l'annonce), tes rangs dans les top 10 des classements, la dernière récompense du classement de la semaine et ton expérience de la semaine en cours et de la semaine écoulée, le nombre de jours où tu as joué (pour le parrainage), les heures de fin et durées de tes cent dernières parties (pour qu'elles ne se chevauchent pas), le nombre de demandes déposées aujourd'hui (au plus 500 par jour), le doublon tiré d'un coffre qui attend que tu l'offres ou l'échanges (l'article et la date, un seul), tes mises (voir plus bas), ton fuseau horaire (le décalage de l'heure de ton téléphone sur l'heure universelle, en minutes — par exemple +120 à Paris l'été —, et le prochain décalage avec l'heure à laquelle il prendra effet quand il vient de changer : tes journées de jeu, quêtes, calendrier, vitrine et plafonds du jour vont de minuit à minuit chez toi), tes succès et tes articles (voir plus bas), le nombre de tes parties comptées et ton temps de jeu, les identifiants des beatmaps publiées que tu as jouées et de celles où tu as fait S (soixante au plus chacune, pour les succès « Explorateur » et « Étoile »), et les identifiants et les réponses de tes dernières demandes (pour qu'une demande ne soit jamais servie deux fois, et que l'application lise sa réponse).
  • Tes demandes au serveur : chaque partie finie avec un compte dépose une demande — l'identifiant de la beatmap, la durée du morceau, son niveau de difficulté, ton rang (S à D), si c'est un sans-faute, si tu as battu ton record, si tu as gagné, ton meilleur combo et le nombre de zops menés à terme (pour les quêtes du jour), la durée réellement jouée quand une manche de salon s'arrête avant la fin du morceau, l'heure de la fin de la partie (l'heure du serveur vue du téléphone : le jeu la recale sur l'heure des réponses du serveur) et les identifiants des succès que le téléphone a vus à la fin de la partie. Le serveur en calcule l'expérience et répond dans ton état de jeu ; une partie de moins de trente secondes ne compte pas. Les autres gestes passent de la même façon : succès, achat d'un article (en wubs ou en jetons VIP), coffre (gagné, ou acheté en wubs au prix affiché), doublon, cadeau, boost, calendrier, parrain, achat Google Play à créditer, mise (lancée : l'ami, le défi, la beatmap, sa version et la somme ; relevée ou refusée : l'ami et le défi ; la partie misée porte son essai et son score). Chaque demande porte aussi le décalage horaire de ton téléphone (voir « ton fuseau horaire » ci-dessus) — jamais ta position, ni le nom de ta ville ou de ton fuseau. Chaque demande est effacée dès que le serveur y répond (la réponse reste dans ton état de jeu, avec les huit dernières) ; une demande jamais servie l'est au plus tard huit jours après.
  • Tes succès et leur date, dans ton état de jeu. Top 10 et N°1 sont calculés par le serveur d'après les classements publics des beatmaps (il garde pour chacune une copie de ses dix meilleurs scores, identifiant du compte et score, qu'aucun joueur ne lit), et se perdent quand tu en sors ; les succès de longue haleine (parties, temps de jeu, beatmaps jouées, beatmaps en S) sont comptés par le serveur d'après tes parties ; pour ceux des amis, des beatmaps publiées et de leurs téléchargements, il compte tes amis, tes beatmaps publiées et leurs téléchargements avant de les inscrire.
  • Tes articles : ceux que tu possèdes, leur provenance (achat, coffre, lot, cadeau, bienvenue) et, pour un cadeau, le pseudo et l'identifiant de l'ami qui te l'a offert, dans ton état de jeu.
  • Les cadeaux : tu peux offrir un article à un ami (l'amitié doit être réciproque), en jetons VIP, ou gratuitement un doublon tiré d'un coffre. Ton pseudo est alors écrit dans son inventaire, et il reçoit une notification.
  • Les mises : quand tu mises sur un défi, ou que tu relèves la mise d'un ami, ton état de jeu garde le temps de la partie l'essai que le serveur a ouvert (le défi, l'ami, la beatmap et sa version, la mise, l'heure, le plafond de score de la beatmap, sa durée et son nombre de notes, les deux pseudos, et le score à battre) ; une mise que tu as lancée y reste, avec ton score, jusqu'à ce qu'elle soit tranchée (et l'heure où ton ami l'a relevée) ; ce que tu as engagé dans la journée aussi. Quand ton ami relève ou tranche ta mise, c'est sa demande qui écrit dans ton état de jeu tes wubs, tes mises en attente et leur issue. L'issue de tes vingt dernières mises (le défi, gagnée, perdue, égalité ou rendue, la somme, le pseudo de l'ami, la date) y reste, pour que le jeu te l'annonce.
  • Les mises d'un salon : la mise que tu proposes dans un salon en ligne s'écrit sur ta place, avec ton pseudo, visible des autres joueurs (voir « Les salons de jeu en ligne »). Quand l'hôte lance une manche misée, le serveur ouvre un séquestre dans un document que le téléphone ne peut ni lire ni écrire : le code du salon, le numéro de la manche, la mise, la beatmap et sa version, son plafond de score, l'identifiant et le jour de jeu de chaque joueur de la manche, l'état du séquestre, puis l'issue de chacun (gagnée, perdue, égalité ou rendue, et la somme reçue). Il prend la mise dans l'état de jeu de chaque joueur, lit les scores dans le salon pour les verser, et, une fois la mise réglée, écrit dans l'état de jeu de chacun ses wubs, ce qu'il a engagé dans la journée et l'issue, qui reste parmi les vingt dernières (comme celle d'un défi, sans pseudo d'ami).
  • Le classement de la semaine : chaque lundi, le serveur compare l'expérience de la semaine écoulée entre amis réciproques (celle de ton état de jeu) ; les trois premiers d'un groupe d'au moins deux joueurs reçoivent 50, 30 ou 20 wubs et une notification.
  • Le parrainage : dans les sept jours qui suivent la création de ton compte, tu peux entrer le pseudo de ton parrain, ou le jeu le déclare pour toi si tu as suivi son lien d'invitation (voir ci-dessous) ; le serveur retient son identifiant. Pour vérifier ce délai, il lit la date de création de ton compte chez Firebase Authentication (sans la garder). Quand tu atteins le niveau 5 et que tu as joué trois jours différents, tu reçois 150 wubs et ton parrain 300 (dix filleuls payés au plus par parrain ; si le tien a fait le plein entre-temps, tu reçois quand même les tiens) ; au troisième filleul payé, ton parrain reçoit l'emblème Ambassadeur, au dixième l'emblème Tête d'affiche. Partager ton lien ouvre la feuille de partage d'Android avec un texte (ton pseudo et ton lien d'invitation, https://wub-lab.com/zip-zop/invite/ suivi de ton pseudo) : c'est toi qui choisis à qui il part.
  • Le lien d'invitation : ouvert sur un téléphone où le jeu est installé, il ouvre le jeu, qui garde le pseudo de qui t'invite et montre sa carte de joueur. Sinon, il mène à la page du jeu sur wub-lab.com, qui affiche ce pseudo et l'ajoute au lien vers Google Play. À son premier lancement, le jeu demande au Play Store, sur le téléphone, de quel lien vient l'installation (Google Play Install Referrer) : il n'en lit que le pseudo du parrain, qu'il garde sur le téléphone jusqu'à ce que tu aies un compte, puis le déclare comme parrain (tu peux toujours ne pas créer de compte). Rien d'autre n'est lu ni envoyé.

Les vidéos récompensées sont décrites dans « Publicité », les achats de jetons VIP dans « Achats ».

Ta carte de résultats. Tu peux partager une image de tes résultats (titre et artiste de la beatmap, ton pseudo, ton emblème, ton rang, ton score, ta précision, ton combo, ton niveau) par la feuille de partage d'Android. L'image est créée sur le téléphone : rien ne part au serveur, elle ne va que là où tu l'envoies.

Le Jukebox du site

Sur wub-lab.com, le Jukebox communautaire permet, connecté avec le même compte, de chercher les beatmaps publiées et de les envoyer vers ton téléphone ou de les télécharger. Cette page du site se connecte à Firebase (Google) pour ton compte et pour les beatmaps ; elle n'utilise aucun traceur ni aucune mesure d'audience, n'affiche aucune publicité, et n'écrit rien d'autre que ta file d'attente de téléchargement et le passage compté de tes téléchargements. Elle lit ta liste de joueurs bloqués, pour masquer leurs beatmaps comme dans le jeu. Le bouton « Avec Google » charge, au moment où tu le touches et pas avant, un script de Google (apis.google.com) et la fenêtre de connexion de Firebase. Une fois connecté, la page charge aussi reCAPTCHA (Google, www.google.com/recaptcha et www.gstatic.com/recaptcha) pour vérifier que les requêtes viennent d'un navigateur et non d'un robot (Firebase App Check) : Google reçoit pour cela des informations sur ton navigateur, selon sa propre politique de confidentialité ; un visiteur qui n'est pas connecté ne charge rien de Google. Ton navigateur garde ta session Firebase, une copie de l'index du Jukebox, ton pseudo le temps de la session et l'onglet choisi (stockage local du site, sans cookie) ; le SDK de Firebase y note aussi les jours où il a servi, trente au plus, avec ses numéros de version (une base firebase-heartbeat-database), qu'il joint au plus une fois par jour à une requête vers Firebase (en-tête X-Firebase-Client) avant de les oublier. Tout cela s'efface avec les données du site.

L'éditeur du site

Sur wub-lab.com, l'éditeur de beatmaps permet, connecté avec le même compte, de préparer sur un ordinateur la grille rythmique et les notes d'une beatmap. Le fichier audio que tu choisis est lu et analysé dans ton navigateur : il n'est envoyé nulle part, ni son son ni son nom. Cette page du site se connecte à Firebase (Google) pour ton compte, lit ton pseudo, et lit et écrit tes brouillons (voir « Tes brouillons » plus haut) ; elle ne publie rien (un brouillon se valide en le jouant sur ton téléphone, d'où il se publie), n'utilise aucun traceur ni aucune mesure d'audience et n'affiche aucune publicité. Le bouton « Avec Google » et reCAPTCHA s'y comportent comme sur le Jukebox du site (voir plus haut). Ton navigateur garde ta session Firebase, ton pseudo le temps de la session, tes réglages de l'éditeur (l'aimant, le volume des clics, le niveau et ce que suivent les notes du générateur), une copie de travail de tes brouillons, pour que rien ne se perde sans réseau, l'autre version d'un brouillon changé à deux endroits à la fois, le temps que tu décides de la récupérer ou non, et, dans les navigateurs qui le permettent (Chrome, Edge), un accès au fichier audio choisi pour chaque brouillon, qui redemande ta permission avant de le rouvrir — jamais le son lui-même (stockage local du site, sans cookie) ; le SDK de Firebase y note les jours où il a servi, comme sur le Jukebox. Ces copies restent dans ton navigateur après la déconnexion, rangées sous ton compte et montrées seulement à lui ; tout cela s'efface avec les données du site.

Duel en local, sans internet

Deux à quatre téléphones voisins peuvent s'affronter sans connexion : ils se trouvent par Bluetooth et Wi-Fi (Nearby Connections, de Google Play Services), directement, sans passer par un serveur. Transitent entre les téléphones : les pseudos, un numéro tiré au hasard une fois sur chaque téléphone invité (sans lien avec ton compte : il permet à l'hôte d'exclure un téléphone plutôt qu'un pseudo, et reste dans le salon), l'identifiant technique du compte de chacun (vide sans compte : il permet aux autres d'ouvrir ta carte de joueur), la version du protocole de salon de l'application, le mode de jeu et les vies choisis par l'hôte et, pendant une manche de Survie ou d'Objets, les vies, l'instant d'élimination et les attaques de chacun, la liste des beatmaps que chacun peut jouer (identifiant et version des notes), les beatmaps proposées et les réactions, la liste des joueurs, le réglage du son, l'identifiant, le titre et la version des notes de la beatmap de chaque manche, l'instant de départ, les scores et les points de la soirée ; et, quand le son ne joue que chez l'hôte et qu'un invité n'a pas la beatmap, la beatmap elle-même (grille, notes, empreinte des attaques — jamais l'audio ni le nom d'un fichier), qui ne sert que le temps de la manche : elle n'est rangée dans ses beatmaps téléchargées que s'il choisit de la garder. Si l'élue est la beatmap d'un invité et que l'hôte n'a pas le morceau, l'invité prête son fichier audio (40 Mo au plus) au seul téléphone de l'hôte, directement par la liaison locale, sans passer par un serveur : l'hôte le décode pour la manche dans l'espace privé de l'application, puis l'efface aussitôt (et, au plus tard, à la fin de la manche, à la fermeture du salon ou au démarrage suivant de l'application) ; il n'est ni gardé, ni réécoutable, ni exportable. Un morceau téléchargé depuis Zip Zop ne se prête jamais : chaque téléphone le télécharge lui-même. Le décalage mesuré par une calibration sur les clics du téléphone de l'hôte reste sur le téléphone de l'invité, le temps du salon. Le résultat de la partie est compté dans ton bilan local des duels. Rien d'autre n'est conservé, ni envoyé ailleurs. L'application s'annonce depuis l'écran du salon ; le menu du jeu écoute les salons voisins, à basse consommation, tant qu'il est ouvert et si tu as déjà accordé les autorisations — jamais quand l'application est fermée.

Notifications

Des notifications Android peuvent te prévenir d'une demande d'ami reçue, d'un défi, du résultat d'un défi lancé, d'une invitation à un duel, d'une beatmap qu'un ami vient de publier, d'un cadeau reçu, de ton classement de la semaine ou d'une offre de la boutique. Elles demandent ton autorisation (Android 13 et plus). Elles sont envoyées par le serveur du jeu au moment où la chose arrive, par Firebase Cloud Messaging, le service de notification de Google, qui agit pour le studio (voir « Tes téléphones, pour les notifications » plus haut) : le message porte le pseudo de l'expéditeur et le titre de la beatmap — pour un cadeau, le pseudo de l'ami et l'article offert ; pour le classement de la semaine, ta place et les wubs gagnés ; pour une offre, l'article, son prix du jour et son prix habituel —, rien d'autre. Les refuser ne retire rien d'autre. Les offres de la boutique : à 18 h (heure de Paris), le serveur annonce l'article en promotion dans la vitrine du jour, au plus une fois tous les trois jours — ton téléphone ne montre l'annonce que si ton niveau te permet de l'acheter (il le sait sans rien demander au serveur) —, par un seul message à un « sujet » de Firebase Cloud Messaging auquel s'abonnent les téléphones connectés à un compte qui n'ont pas éteint ce genre (l'abonnement est retiré quand tu l'éteins, te déconnectes ou supprimes ton compte ; Google tient la liste des téléphones abonnés, le serveur du jeu ne la voit pas). Chaque genre s'allume ou s'éteint dans l'application (Profil → Notifications) — tous sont allumés au départ, les offres comprises : éteint, le serveur ne l'envoie plus à ce téléphone. Les genres sont aussi rangés en canaux dans les réglages du téléphone. Se déconnecter arrête les notifications sur ce téléphone ; sans compte, il n'y en a aucune.

Ce que l'application ne fait jamais

  • Elle ne téléverse aucun fichier audio vers un serveur et n'en partage aucun, hormis le prêt d'un morceau à l'hôte le temps d'une manche de duel local (voir « Duel en local, sans internet »). Une beatmap exportée ou publiée ne contient jamais de son : la personne qui la reçoit doit fournir son propre fichier.
  • Elle ne lit pas tes contacts, ta position, ton carnet d'adresses, ni tes fichiers en dehors du dossier musical que tu as désigné et des fichiers que tu ouvres toi-même.
  • Elle n'utilise aucun outil de mesure d'audience ni aucun traceur (les seuls compteurs sont ceux, anonymes, des artistes : voir « Les statistiques des artistes ») et ne vend tes données à personne. En dehors de l'hébergeur ci-dessus (Firebase), seules la régie publicitaire de Google et Google Play reçoivent des données de l'appareil, décrites dans « Publicité » et « Achats », et MusicBrainz et le Cover Art Archive l'artiste et le titre d'un morceau (voir « Les pochettes »).

Autorisations Android

La publicité. Le kit AdMob ajoute à l'application quatre autorisations, accordées à l'installation sans question : AD_ID, l'accès à l'identifiant publicitaire de l'appareil, et ACCESS_ADSERVICES_AD_ID, ACCESS_ADSERVICES_ATTRIBUTION et ACCESS_ADSERVICES_TOPICS, les interfaces publicitaires de la « Privacy Sandbox » d'Android (identifiant publicitaire, mesure des annonces, centres d'intérêt estimés par Android sur le téléphone). Elles servent au kit AdMob pour choisir et mesurer les annonces ; le jeu lui-même ne s'en sert pas. Tu peux réinitialiser ou supprimer l'identifiant publicitaire, et régler ou couper ces interfaces, dans les réglages d'Android (Confidentialité → Annonces, ou Confidentialité des annonces, selon le téléphone).

Le dossier musical passe par le sélecteur de dossiers du système : tu choisis le dossier, Android accorde à l'application un accès en lecture seule, persistant et révocable, à ce seul dossier. Aucune autorisation générale sur tes fichiers ou ta musique n'est demandée.

Le jeu en local demande, au moment d'ouvrir ou de rejoindre un salon local, les autorisations « appareils à proximité » (Bluetooth et Wi-Fi, Android 12 et plus) et la « position », approximative et précise. La position précise est exigée par Android — et par Nearby Connections — pour rechercher un appareil voisin par Bluetooth, qui pourrait en théorie servir à te localiser ; si tu n'accordes que l'approximative, le salon le dit et ne cherche pas. L'application ne lit jamais ta position, ni ne la transmet à qui que ce soit : elle ne s'en sert que pour trouver le téléphone d'en face. Tu peux refuser : tout le reste de l'application fonctionne sans, seul le jeu en local devient impossible.

Les notifications (Android 13 et plus) sont demandées une fois, à l'ouverture de l'écran Amis et défis, ou depuis Profil → Notifications. Internet (et l'état du réseau, pour savoir si tu es hors ligne) ne sert qu'au compte, au Jukebox, aux classements, aux amis, aux défis, au jeu en ligne, à la progression et à la boutique, à la publicité, à la vérification des achats et à la recherche des pochettes. La vibration, accordée à l'installation sans question, ne sert qu'aux retours de la partie (Profil → Jeu → Vibration : aucune, les notes, ou les ratés).

Enfants

Zip Zop s'adresse aux personnes de 13 ans et plus, comme le déclare sa fiche Google Play ; il n'est pas conçu pour les enfants de moins de 13 ans, qui ne doivent pas créer de compte. L'application te demande une fois ton année de naissance, avant le message de consentement de la publicité : elle reste sur ton téléphone, n'est jamais envoyée, et ne sert qu'à régler la publicité. En dessous de 16 ans (l'âge le plus élevé auquel un pays de l'Union laisse consentir seul ; 15 ans en France), les annonces ne sont jamais personnalisées et le message de consentement ne s'affiche pas ; en dessous de 13 ans, elles sont en plus traitées comme destinées à un enfant et limitées aux contenus tous publics. Sinon, elles sont limitées aux contenus tous publics et adolescents (classement « T » d'AdMob). Entre 13 et 14 ans, les conditions d'utilisation demandent l'accord d'un parent pour créer un compte (en France, on décide seul de ses données en ligne à partir de 15 ans). Si tu es parent et que tu apprends qu'un enfant de moins de 13 ans a créé un compte, écris à contact@wub-lab.com : le compte est supprimé.

Pourquoi nous traitons ces données

Le responsable du traitement est Wub Lab, entreprise individuelle (identité complète, adresse et téléphone dans les mentions légales : wub-lab.com/mentions-legales/ ; voir aussi « Tes droits »). Selon ce que fait l'application :

  • Pour te rendre le service que tu demandes (l'exécution du contrat, art. 6.1.b du RGPD) : ton compte et ton pseudo, tes beatmaps publiées et tes brouillons, tes scores et les classements, tes amis, tes défis, tes duels et tes salons, ta progression, tes wubs, tes jetons VIP et la boutique, les achats et leur vérification.
  • Pour protéger le service et les autres joueurs (notre intérêt légitime, art. 6.1.f) : la vérification de l'application (Firebase App Check), le calcul des scores et des gains par le serveur, les plafonds quotidiens, la modération des signalements, la réservation des pseudos et des identifiants de beatmaps, la trace d'un achat qui évite de le créditer deux fois, la lecture du document de configuration et de la table des genres (sans compte comme avec), l'étude des beatmaps publiées, sans le pseudo de leur auteur, pour régler le générateur du jeu, la recherche des pochettes (que tu peux couper : voir « Les pochettes »), et les compteurs anonymes qui permettent de rendre compte aux artistes (voir « Les statistiques des artistes »).
  • Avec ton accord (art. 6.1.a) : la personnalisation des annonces, là où le message de consentement de Google s'affiche (tu le retires à tout moment : Profil → Confidentialité → « Publicité : mes choix »), les notifications Android, et les autorisations « appareils à proximité » et « position » du duel en local (voir « Autorisations Android »).

La publicité est traitée par Google, responsable de ses propres traitements (voir « Publicité »).

Où vont les données

Les bases de données (Cloud Firestore et Realtime Database) et les fonctions du jeu sont situées dans l'Union européenne. Google les héberge comme sous-traitant de Wub Lab. Certains services de Google traitent aussi des données hors de l'Union européenne, notamment aux États-Unis : la connexion (Firebase Authentication), la vérification de l'application (Google Play Integrity, Firebase App Check), les notifications (Firebase Cloud Messaging), la publicité (Google AdMob) et Google Play. Google LLC adhère au cadre de protection des données UE–États-Unis (« Data Privacy Framework », reconnu comme offrant un niveau de protection adéquat par la Commission européenne le 10 juillet 2023), et ses contrats prévoient les clauses contractuelles types de la Commission lorsque c'est nécessaire.

Le site wub-lab.com et l'adresse contact@wub-lab.com passent par Cloudflare (Cloudflare, Inc., États-Unis, qui adhère lui aussi à ce cadre) : il héberge les pages du site et, à venir, les fichiers des morceaux inclus (Cloudflare R2), et reçoit pour cela l'adresse IP des visiteurs et des téléphones qui les téléchargent ; il transmet aussi les courriels reçus à la boîte du studio. La recherche des pochettes passe par MusicBrainz et le Cover Art Archive (MetaBrainz Foundation et Internet Archive, États-Unis) : ils reçoivent l'adresse IP du téléphone, le nom et la version de l'application, et l'artiste et le titre d'un morceau, rien d'autre. Aucun autre destinataire ne reçoit tes données, qui ne sont ni vendues ni cédées.

Combien de temps nous les gardons

  • Ton compte et ce qui s'y rattache (profil, beatmaps publiées, brouillons, amis, historique, progression, wubs, jetons VIP, articles, scores, notifications) : tant que ton compte existe ; effacés à sa suppression, sauf ce qui reste (voir « Supprimer ton compte »).
  • Ce qui reste après la suppression du compte : les beatmaps publiées (avec leur pseudo), le pseudo et les identifiants de beatmaps réservés, les notes et signalements donnés, les identifiants de téléchargement, l'identifiant du parrain chez ses filleuls, les articles offerts et les défis envoyés (jamais relevés, soixante jours) : tant que le jeu existe, parce qu'ils gardent justes les classements et les compteurs et empêchent qu'un pseudo ou une beatmap soit repris par un autre. La trace d'un achat Google Play (sans l'identifiant du compte) : tant que le jeu existe, pour ne jamais créditer un achat deux fois et reprendre les jetons d'un achat remboursé.
  • Les demandes au serveur : effacées dès que le serveur y répond, huit jours au plus. Les salons : un salon abandonné n'est plus valide au bout de deux heures, et le serveur efface chaque nuit ceux qui restent. La file de téléchargement du site : jusqu'au prochain lancement du jeu avec ce compte, trente jours au plus pour une demande en échec. Les brouillons effacés : une trace de trente jours. Un défi jamais relevé : soixante jours. Un séquestre de mise de salon : sept jours après son règlement (un séquestre que personne n'a réglé en un jour est rendu à ses joueurs la nuit suivante). Le jeton de notification : jusqu'à ta déconnexion de ce téléphone ou la suppression du compte. Les totaux des statistiques des artistes (sans rien qui désigne un joueur) : tant que le jeu existe. Les compteurs de la limite des téléchargements de morceaux (à venir) : effacés chaque nuit.
  • Les journaux techniques de connexion chez Google (adresse IP, horodatages) et les données que reçoit la publicité : selon les règles de Google ; chez MusicBrainz et l'Internet Archive, selon leurs règles.
  • Sur ton téléphone : jusqu'à ce que tu les effaces ou que tu désinstalles l'application ; l'application est exclue de la sauvegarde d'Android.

Tes droits

Sans compte, rien de ce que tu fais dans le jeu (beatmaps, parties, réglages) n'est transmis ni conservé hors de ton téléphone (les échanges techniques qui restent sont décrits dans « Sans compte, ce qui part quand même ») : tu effaces tes données en supprimant les beatmaps concernées dans l'application, ou en désinstallant celle-ci. Les données de l'appareil que reçoit la publicité, avec ou sans compte, sont traitées par Google : tu réinitialises ou supprimes l'identifiant publicitaire dans les réglages d'Android, tu changes tes choix, là où ils te sont proposés, dans Profil → Confidentialité → « Publicité : mes choix », et tu exerces tes droits sur ces données auprès de Google (https://policies.google.com/privacy).

Avec un compte, tu peux consulter et modifier depuis l'application ce qui est enregistré sur le serveur : supprimer ou republier tes beatmaps, retirer un ami, effacer un défi reçu, et supprimer ton compte avec tout ce qui lui est lié (voir ci-dessous). Pour exercer autrement tes droits d'accès, de rectification, d'effacement, d'opposition, de limitation ou de portabilité, écris à contact@wub-lab.com depuis l'adresse e-mail du compte. Tu peux retirer à tout moment un consentement que tu as donné (voir « Pourquoi nous traitons ces données »). Tu peux aussi adresser une réclamation à la CNIL (cnil.fr). Le responsable du traitement est Wub Lab, joignable à la même adresse.

Supprimer ton compte. Depuis l'application (Profil → ta carte de compte → « Supprimer mon compte… »), après avoir confirmé ton identité (mot de passe, ou compte Google). Sont alors effacés sur le serveur : ton profil et ton pseudo affiché, ton niveau, ton palmarès de duel, tes cosmétiques visibles, ta liste d'amis (et ta ligne chez chacun d'eux), les demandes d'ami reçues et envoyées, les invitations à un duel reçues et déposées chez tes amis, les défis reçus, les annonces de beatmaps d'amis pas encore lues, tes téléphones enregistrés pour les notifications, tes joueurs bloqués, la trace des beatmaps déjà annoncées à tes amis, ton historique de jeu, la liste des beatmaps de ta bibliothèque, ta file d'attente de téléchargement, tes brouillons en ligne et tes scores dans tous les classements. Puis le compte lui-même est supprimé chez Firebase Authentication, et le serveur efface alors ton état de jeu (wubs, jetons VIP, expérience, coffres, mises, compteurs), tes succès, tes articles et tes demandes. Tes wubs, tes jetons VIP (achetés compris), tes articles et le « sans pub » offert par un paquet de jetons VIP sont perdus, sans remboursement. Restent : les beatmaps que tu as publiées, qui demeurent au Jukebox — les personnes qui les ont téléchargées les gardent — signalées comme venant d'un compte supprimé, avec le pseudo qui les signait (dans l'index du Jukebox aussi) ; ton pseudo, qui reste réservé pour que personne ne puisse le reprendre et signer ces beatmaps ; les notes et signalements que tu as donnés — sur des beatmaps comme sur des joueurs — et les beatmaps que tu as téléchargées (un simple identifiant technique, désormais sans compte derrière, qui garde les compteurs justes), comme ton identifiant chez les joueurs que tu as parrainés ; la trace de tes achats sur Google Play, sans l'identifiant de ton compte (remplacé par « supprimé »), pour qu'un achat ne soit jamais crédité deux fois ; les articles que tu as offerts à des amis, qui restent chez eux avec ton pseudo ; et les défis que tu avais envoyés, chez les amis qui les ont reçus, jusqu'à ce qu'ils les effacent (ou, jamais relevés, soixante jours). Sur ton téléphone, tes beatmaps, tes brouillons et tes records ne sont pas touchés ; la copie de ta progression (wubs, expérience, articles, succès), les chiffres de tes succès, les cosmétiques que tu portes et le journal de tes défis et de tes duels sont effacés. Si tu n'as plus accès à l'application, écris à contact@wub-lab.com depuis l'adresse du compte : la même suppression est faite à la main.

Publicité

La version gratuite affiche une publicité plein écran entre les morceaux : au retour au menu après une partie, une partie sur deux au plus et jamais moins de trois minutes après la précédente — jamais pendant une partie, dans l'éditeur, un chargement ou un duel, ni pendant tes deux premières parties. Elle est servie par Google AdMob (Google Ireland Limited), responsable de ses propres traitements : pour choisir, afficher et mesurer l'annonce, et pour lutter contre la fraude, le kit AdMob collecte des données de l'appareil — l'identifiant publicitaire Android, l'adresse IP (d'où se déduit une position approximative), des informations sur l'appareil et l'application, tes interactions avec l'annonce, et des diagnostics. Cela vaut avec ou sans compte : le kit démarre dès l'arrivée au menu du jeu (après le message de consentement, là où il s'affiche) et prépare une annonce à l'avance, si bien que ces échanges ont lieu avant même ta première annonce. Les règles de Google : https://policies.google.com/technologies/ads.

En Europe (Espace économique européen, Royaume-Uni et Suisse), et là où une loi locale l'exige, un message de consentement (Google UMP) s'affiche avant toute annonce : tu choisis si les annonces peuvent être personnalisées à partir de ces données ; sans ton accord, elles ne le sont pas. En dessous de 16 ans, il ne s'affiche pas et elles ne le sont jamais (voir « Enfants »). Tu changes d'avis à tout moment : Profil → Confidentialité → « Publicité : mes choix ». Ailleurs, ce message ne s'affiche pas et le jeu ne propose pas ce choix : les annonces peuvent être personnalisées selon les règles de Google. Tu peux alors limiter la personnalisation en supprimant ou en réinitialisant l'identifiant publicitaire dans les réglages d'Android (voir « Autorisations Android »).

Les vidéos récompensées. Dans « Récompenses du jour », et seulement si tu le demandes, tu peux regarder une vidéo publicitaire (AdMob, bloc « récompensée ») : regardée jusqu'au bout, elle rapporte 5 wubs, dix fois par jour au plus. Le kit AdMob reçoit alors les mêmes données que pour les annonces entre les morceaux, sous le même choix de consentement, et l'identifiant de ton compte Zip Zop (une suite de lettres et de chiffres, pas ton pseudo ni ton adresse) avec une marque aléatoire propre à la vidéo : c'est ce qui permet à Google de confirmer directement au serveur du jeu que la vidéo a été regardée (« vérification côté serveur »), sans que le téléphone puisse le déclarer à sa place. Le serveur du jeu reçoit de Google cet identifiant, l'identifiant de la transaction et l'heure, crédite les wubs et ne retient que le nombre de vidéos de la journée et les identifiants des trente dernières confirmations, pour ne pas payer deux fois la même (voir « Progression, wubs et boutique »).

En dehors des vidéos récompensées, Zip Zop ne transmet à AdMob ni ton compte ; jamais ton pseudo, tes beatmaps ni ta musique. Le rythme des annonces se compte sur ton téléphone seulement (le nombre de parties, l'heure de la dernière annonce). Après l'achat « sans pub » (ou quand un paquet de jetons VIP te l'a offert), le jeu ne démarre plus la régie : plus d'annonce entre les morceaux, et plus de demande d'annonce — sauf si tu demandes toi-même une vidéo récompensée.

Achats

L'achat « sans pub » et les paquets de jetons VIP se font par Google Play Billing : Google traite le paiement, et nous ne voyons ni ne conservons aucune coordonnée bancaire. Le prix d'un achat, en euros ou dans ta monnaie, est celui qu'affiche Google Play ; dans le jeu, les articles de la boutique s'affichent en wubs et en jetons VIP. Les wubs ne s'achètent pas.

« Sans pub ». Le jeu reçoit de Google Play la preuve de l'achat et la garde sur ton téléphone ; il la relit auprès de Google Play à chaque lancement, ce qui la fait revenir sur un autre téléphone du même compte Google Play (et la retire après un remboursement). Les deux plus gros paquets de jetons VIP offrent aussi « sans pub » : il est alors noté dans ton état de jeu, sur le serveur (voir « Progression, wubs et boutique »), et suit ton compte Zip Zop.

Les paquets de jetons VIP (de 1 à 28 jetons, et une offre de bienvenue unique : 3 jetons et un emblème) demandent un compte. L'achat porte un identifiant de compte masqué — l'empreinte SHA-256 de l'identifiant de ton compte —, pour qu'il ne puisse pas être crédité à un autre compte. Le jeton d'achat que remet Google Play est envoyé à notre serveur (Cloud Functions, région europe-west1), qui le vérifie auprès de l'API Google Play Developer, crédite les jetons VIP une seule fois et garde une trace de l'achat : l'empreinte SHA-256 du jeton d'achat, ce jeton lui-même, l'identifiant de ton compte, le produit, le nombre de jetons VIP crédités, le numéro de commande Google et la date. Cette trace reste pour qu'un achat ne soit jamais crédité deux fois, pour achever l'achat auprès de Google Play (le « consommer ») s'il n'a pas pu l'être tout de suite, et pour reprendre les jetons d'un achat remboursé ou annulé : chaque nuit, le serveur consulte la liste des achats annulés que tient Google Play (API Voided Purchases) ; les jetons VIP d'un tel achat sont retirés de ton solde de jetons, qui peut alors passer sous zéro. À la suppression du compte, l'identifiant du compte y est remplacé par « supprimé ».

Modifications

En cas de changement, la date en haut de cette page est mise à jour ; la version en vigueur est celle publiée sur wub-lab.com, que l'application ouvre depuis son Profil.