Aller au contenu
Manuels de cours en ligne l'étude
Sommaire
  1. 1. Sujet, requêtes, jeux de données interrogés
  2. 1.1 Données et requêtes
  3. 1.2 Textes lus
  4. 2. Recensement
  5. 3. Fiches détaillées et mesures
  6. 3.1 Méthode et fiabilité de la mesure
  7. 3.2 Les dix lecteurs et compléments de manuels : mesure et déclarations
  8. 3.3 Kartable, SchoolMouv, et les étalons publics Kalulu, CNED, Lumni
  9. 3.4 Les applications d'activités et compléments d'éditeurs
  10. 3.5 Les sites : collecte bornée du HTML et des en-têtes (12/10/2026, 09 h 01)
  11. 3.5 bis Les sites au navigateur : premier visiteur, puis refus (16/10/2026)
  12. 3.6 Les règles du contrat GAR qui s'appliquent à ces mesures
  13. 3.7 Ce que dit la CNIL de ces kits
  14. 4. Ce que ce sujet apprend pour une solution qui édite des manuels et les met à disposition
  15. 5. Ce que la recherche n'a pas pu établir
  16. 6. Sources

Q25 Vague 8

Les traceurs réellement embarqués par les lecteurs de manuels, les applications d'éditeurs et les sites gratuits, comparés à leurs déclarations

Rapport corrigé et complété le 16/10/2026 d'après Q25-verif.md.

Complété le 16/10/2026 d'après le lot navigateur Q31 (§ 1.6 : les 11 sites relevés au navigateur pour un premier visiteur, avant toute réponse puis après refus, reportés au nouveau § 3.5 bis ; traceurs publicitaires déposés avant tout consentement par Kartable, sans bandeau, et par SchoolMouv, AdRoll ; Microsoft Clarity, absent de la liste de partenaires Didomi, chargé sur l'accueil et sur le manuel gratuit de Lelivrescolaire.fr et maintenu après refus ; Piano en mode « optin » sur ce manuel, avant et après refus ; régie du conjugueur Bescherelle maintenue et étendue après un refus enregistré ; consentement par poursuite de navigation, sans refus au premier niveau et avec quatre finalités précochées au second, sur mesmanuels.fr, dont le SDK Didomi se charge à l'exécution ; Google Tag Manager seul, sans mesure vue, chez Nathan, Bordas et Belin ; Matomo sans bandeau chez Magnard et hatier-clic ; site lumni.fr relevé, Piano passant en mode « exempt » après refus quand NPAW, mPulse et nmrodam.com restent ; § 2 : la page mesmanuels.fr/acces-libre/9782017329022 répond « Cette page est introuvable » ; la ligne « à lire au navigateur » du § 5 est faite et réécrite pour ce qui reste ouvert).

Corrigé le 16/10/2026 d'après le relevé de la vague 8 (§ 1.1, § 3.1, § 6 : les « 44 paquets » deviennent 41 identifiants demandés et 39 paquets analysés le 12/10/2026, 41 avec le CNED et Lumni ; § 3.2 et § 4 point 1 : le « tous » des dix lecteurs est borné à une version Android, à la présence d'un kit et, pour Biblio Exos, à un module web d'activation non établie ; § 3.2 : les cinq changements de kits sont listés, Lib Manuels compris, Nathan Live ne changeant que de permissions ; § 3.2 et § 4 point 2 : les écarts aux déclarations sont des écarts entre kit et déclaration, pas une collecte mesurée, non qualifiés par une autorité ; § 3.3 : les 22 permissions de SchoolMouv sont détaillées ; § 3.6 et § 4 point 3 : les deux formules de l'annexe 5 coexistent, le contrat réserve des audits sans contrôle continu et le contrôle effectif n'est pas établi ; § 3.7 : la campagne de contrôles de la CNIL est une intention ; § 4 point 4 : les 395 jours de Piano sont une valeur par défaut de la bibliothèque, la conformité des Matomo n'est ni établie ni infirmée, et le niveau du GAR vaut pour la ressource qu'il sert, pas pour les pages publiques ; § 4 point 5 : le critère des permissions est celui des écoles de Paris, sans généralisation aux acheteurs).

Vague 8, relevé du 12/10/2026. Sujet : ce que les applications Android de lecture de manuels, les applications d'activités des éditeurs, les compléments et les sites gratuits contiennent et appellent réellement en kits tiers (SDK) et en traceurs ; l'écart avec leurs déclarations dans les magasins (section « Sécurité des données » de Google Play, étiquette « Confidentialité de l'app » de l'App Store, relevées par Z21 § 3.7) et avec les règles du contrat GAR v2026 (annexes 3, 4 et 5). Complète Z21 § 3.7 et § 5 (« la conformité réelle des applications à leurs déclarations […] demanderait l'analyse des paquets »), 12-vague7 § 3.3 et § 9, 07-vague3 § 6.3, 10-vague5 § 6.6.

Choix de périmètre, annoncés en une ligne chacun :

  • Android seulement pour les applications : un paquet iOS (IPA) chiffré par Apple ne se lit pas sans appareil ; l'App Store est confronté par les déclarations que Z21 a relevées.
  • Applications retenues : les 13 fiches Google Play de Z21 (10 lecteurs de manuels, Kartable, SchoolMouv, Kalulu) ; côté activités, les 18 applications Android d'Éditions Jocatop que le magasin a servies (dont Zoum et les Enig'maths, en catégorie Enfants sur l'App Store d'après Z21), les 3 d'Accès Éditions (vendeur en catégorie Enfants chez Apple) ; et cinq applications d'éditeurs déjà relevées par Z21 (MEDIA+, Bescherelle Conjugaison, Le Robert Ortho, BOOSTIN, KLAPSO learning). Les applications d'activités de Sejer, Hatier et Hachette Livre en catégorie Enfants chez Apple (LudiTab, Maxiloto, Cap maths, Sami et Julie) n'ont pas de version trouvée sur Google Play France (recherches du § 1.1). Ajoutées le 16/10/2026 comme étalons publics à côté de Kalulu : l'application du CNED (fr.cned.sam) et celle de Lumni (fr.lumni.www.twa, France Télévisions), dont les rapports εxodus avaient été relevés le 12/10 sans être exploités (§ 3.3).
  • Sites : 22 pages (accueil et une page d'élève quand elle existe) de mesmanuels.fr, de six sites compagnons ou d'accès élève (Nathan, Bordas, Magnard, Hatier), de Lelivrescolaire.fr, SchoolMouv, Kartable, Belin Éducation, Hachette Éducation (espace enseignants), libmanuels.fr, de la page web qu'ouvre l'application Bescherelle Conjugaison, et de manuel.sesamath.net comme étalon public.
  • Méthode web bornée à ce qu'exige la mission : HTML servi et en-têtes, sans exécuter le JavaScript. Elle dit ce que la page charge d'office ou subordonne au gestionnaire de consentement ; elle ne mesure pas les cookies déposés par les scripts une fois exécutés : ils ont été relevés au navigateur le 16/10/2026 sur 11 sites (Q31 § 1.6 ; § 3.5 bis).

1. Sujet, requêtes, jeux de données interrogés

1.1 Données et requêtes

Données Requête ou fichier Date Fichier (~/.cache/manuels-vague8/Q25/)
Rapports εxodus (analyse statique publique des APK) Recherche publique POST https://reports.exodus-privacy.eu.org/api/search avec {"type":"application","query":"<identifiant ou nom>"} (sans jeton : c'est l'appel de la page d'accueil du site) pour 33 requêtes ; pages …/fr/reports/<identifiant>/latest/ et historique …/fr/reports/search/<identifiant>/ ; rapports anciens …/fr/reports/{320318, 110552, 232903, 198621, 150391, 110780, 21932, 50147}/ 12/10/2026, 08 h 26 à 08 h 45 exodus/
Liste des signatures de pisteurs d'εxodus (432 pisteurs : signature de code, signature réseau, catégories) GET https://reports.exodus-privacy.eu.org/api/trackers (public) 12/10/2026 exodus/trackers.json
Paquets Android courants (APK ou XAPK) des 41 applications demandées (13 de Z21, 20 de Jocatop, 3 d'Accès Éditions, 5 compléments d'éditeurs) : 39 paquets récupérés, Motissimo et Odyssée français sans paquet API publique du miroir APKPure https://api.pureapk.com/m/v3/cms/app_version?package_name=<id> puis lien download.pureapk.com ; authenticité contrôlée par l'empreinte SHA-1 du certificat de signature, comparée à celle qu'affiche εxodus quand il l'affiche (§ 3.1) 12/10/2026, 08 h 32 à 08 h 50 apk/<id>/paquet.*, journaux apk/fetch_log_*.json
Analyse statique des 39 paquets du 12/10/2026 (41 avec ceux du CNED et de Lumni, ligne suivante), sans exécution Script scripts/analyse_apk.py : signatures de code des 432 pisteurs d'εxodus cherchées dans les classes des fichiers classes*.dex (méthode d'εxodus) ; permissions, version, niveau d'API cible et certificat lus par androguard 4.1.4 ; domaines de 55 services de mesure, publicité ou consentement cherchés dans les fichiers dex et texte ; scripts/contexte.py pour lire le contexte de chaque occurrence décisive. Cette recherche par préfixe sur le contenu des dex trouve aussi les noms de types seulement cités par un autre kit : la contre-vérification du 16/10/2026 a distingué les classes définies dans les dex des noms seulement référencés, et quatre lectures en ont été corrigées (§ 3.1) 12/10/2026 ; contrôle des classes définies le 16/10/2026 resultats/<id>.json ; ~/.cache/manuels-vague8/Q25-verif/apk_verif.jsonl
Paquets courants du CNED et de Lumni, et leurs classes définies Même API APKPure (Cned_v1.3_apkpure.com.xapk, Lumni fr Cours révisions_v2.0.7_apkpure.com.xapk) ; script defs.py : classes définies dans les dex par androguard, confrontées aux signatures de code d'εxodus, permissions et certificat 16/10/2026, 13 h 24 ~/.cache/manuels-vague8/Q25-integ/apk/, fr.cned.sam.json, fr.lumni.www.twa.json
Fiches et sections « Sécurité des données » de Google Play pour les 17 applications ajoutées https://play.google.com/store/apps/datasafety?id=<id>&hl=fr&gl=FR et …/details?id=<id> (texte brut) ; liste des applications par développeur …/store/apps/developer?id=<nom> (SEJER, Éditions JOCATOP, ACCÈS Éditions, Editions Hatier, Hachette Livre SA, Magnard-Vuibert Delagrave…) ; recherche …/store/search?q=<terme>&c=apps (jocatop, luditab, maxiloto, cap maths, sami et julie, mes histoires nathan…) 12/10/2026 gp/, gp/ds/
Déclarations des 13 applications de Z21 (Google Play et App Store) Reprises de etude/vague7/Z21-donnees/ (gp_datasafety_20261012.json, gp_apps_20261012.json, as_fiches_20261012.json), relevées le même jour 12/10/2026 —
Collecte web bornée curl -L avec un agent de navigateur, en-têtes -D et HTML de 22 pages (liste web/pages.tsv) ; analyse scripts/analyse_web.py : éléments script, iframe, img, link et URL des scripts en ligne, domaines tiers, en-têtes Set-Cookie, gestionnaire de consentement, type des blocs <script> (exécuté d'office ou type="didomi/javascript" réservé au consentement) 12/10/2026, 09 h 01 web/collecte/, resultats/web.json
Bundles JavaScript de Lelivrescolaire.fr https://www.lelivrescolaire.fr/assets/client-j3z6zx7b.js (8,8 Mo) et …/assets/piano-analytics.esm.js 12/10/2026 web/js/
Liste EasyPrivacy https://easylist.to/easylist/easyprivacy.txt (« Version: 202610120645 », « Last modified: 12 Oct 2026 06:45 UTC ») ; règles de domaine ` domaine^`
Liste Disconnect https://raw.githubusercontent.com/disconnectme/disconnect-tracking-protection/master/services.json 12/10/2026 web/listes/disconnect_services.json
data.gouv.fr API https://www.data.gouv.fr/api/1/datasets/?q= pour « traceurs », « cookies », « applications mobiles vie privée », « exodus », « sanctions cnil » : un jeu sur les traceurs des sites d'associations (Alliance MANA, hors sujet), « Sanctions prononcées par la CNIL » (opencnil-sanctions-depuis-2019-maj-sept-2024.csv, agrégats annuels par type de mesure, sans nom d'organisme ni secteur) ; aucun jeu sur les traceurs des applications ou des ressources éducatives 12/10/2026 dg/
data.gouv.fr, deux jeux non relevés le 12/10 « Catalogue des applications mobiles (Android et iOS) proposées par la puissance publique ou des entités privées dans le cadre de leur mission de service public - 2026 » : GET https://www.data.gouv.fr/api/1/datasets/catalogue-des-applications-mobiles-android-et-ios-proposees-par-la-puissance-publique-ou-des-entites-privees-dans-le-cadre-de-leur-mission-de-service-public-2026/ puis fichier catalogue-applications-puissance-publique-rc3.ods (version 1.0-RC3 du 23/06/2026), lu feuille par feuille ; « Observatoire SansTrace des fuites de données et des sanctions de la CNIL » : GET https://www.data.gouv.fr/api/1/datasets/?q=sanstrace puis https://sanstrace.fr/observatoire/fuites.csv (export du 16/10/2026, 856 lignes) 16/10/2026 ~/.cache/manuels-vague8/Q25-integ/dg/ (cat.ods, cat.csv, st.csv)
Relevé au navigateur (lot Q31) Chrome, 11 sites (accueil ou page d'élève) : effacement par script des cookies lisibles et du stockage local, rechargement comme premier visiteur, attente de 8 secondes, relevé des cookies lisibles par script, des hôtes tiers appelés (Performance API) et du bandeau ; puis refus quand le bandeau l'offre, rechargement, même relevé ; les cookies HttpOnly et ceux déposés sous un domaine tiers ne sont pas vus 16/10/2026 etude/vague8/Q31-sources-lues-au-navigateur.md § 1.6 ; Q31-donnees/notes-de-lecture.md
data.education.gouv.fr API Explore v2.1 catalog/datasets?where=search("traceur") or search("cookie") or search("application") : 13 jeux, aucun sur les traceurs ni les applications de ressources 12/10/2026 —

Aucun jeu du GAR ni de la commande publique ne décrit les SDK ou les traceurs des ressources ; le GAR demande à l'éditeur une déclaration de conformité par ressource (§ 3.6), qui n'est pas publiée.

1.2 Textes lus

  • Contrat d'adhésion GAR v2026 (texte extrait par W10, etude/vague4/_travail_W10/dl/contrat_gar_2026.pdf.txt) : annexe 3 § 1.2 et § 2.2 (p. 23 à 27), annexe 4 (conservation des cookies, p. 35), annexe 5 (p. 43 à 47).
  • CNIL : « Cookies : solutions pour les outils de mesure d'audience » (04/07/2025) ; « Cookies et autres traceurs : la CNIL publie des lignes directrices modificatives et sa recommandation » (29/09/2020 ; lignes directrices et recommandation adoptées le 17/09/2020) ; « Applications mobiles : la CNIL publie ses recommandations » (24/09/2024, mise à jour le 08/04/2025) et la recommandation elle-même (PDF de 98 pages, recommandation-applications-mobiles-modifiee.pdf, § 6.3 p. 55 à 57 et listes de vérifications) ; fiche « outils collaboratifs en ligne » du 24/08/2026 (lue par V21).
  • Microsoft Learn, « Consent Management » (Clarity), texte brut lu le 12/10/2026.
  • Documentation de l'API d'εxodus (github.com/Exodus-Privacy/exodus/raw/v1/doc/api.md).
  • Mentions affichées par εxodus sur chaque rapport.
  • Human Rights Watch, « "How Dare They Peep into My Private Life?" Children's Rights Violations by Governments that Endorsed Online Learning During the Covid-19 Pandemic » (25/05/2022), texte brut de la page du rapport lu le 16/10/2026 (~/.cache/manuels-vague8/Q25-integ/hrw/rep.html).

2. Recensement

N° Élément Nature Porteur Ce qu'il montre Source
1 εxodus Plateforme d'analyse statique publique Association Exodus Privacy Rapports par identifiant de paquet ; « Cela ne constitue pas une preuve de l'activité de ces pisteurs » ; 8 des 10 lecteurs ont un rapport, aucun pour Solaire ni Biblio Exos ; rapports de 2018 à 2025 sur des versions plus anciennes que celles de Google Play reports.exodus-privacy.eu.org
2 Liste des pisteurs d'εxodus Référentiel ouvert (ODbL) Exodus Privacy 432 signatures ; n'y figurent ni Microsoft Clarity, ni Piano Analytics (successeur d'AT Internet), ni le paquet actuel de Braze (com.braze, la signature est com.appboy), ni RevenueCat api/trackers
3 Lib Manuels 9.0.0 Lecteur (Capacitor) Édulib Sentry ; mesure Matomo auto-hébergée (matomo.edulib.fr) dans l'appli web embarquée, réglée en requireCookieConsent (sans cookie tant que le consentement n'est pas donné) ; Google Play : « aucune donnée collectée » § 3.2
4 Biblio Manuels 3.13.1 Lecteur SEJER AT Internet (217 classes définies sous com/atinternet) ; le kit cite l'identifiant publicitaire de Google et de Huawei, dont les bibliothèques ne sont pas embarquées § 3.2
5 éducadhoc 9.6 Lecteur Hachette Livre Crashlytics seul ; Firebase Analytics et permission AD_ID présents en 9.4 (εxodus, 14/10/2025), absents en 9.6 § 3.2
6 SOLAIRE 1.1.2 Lecteur (Flutter) SEJER Piano Analytics (io.piano.android.analytics), invisible pour εxodus ; le kit cite l'identifiant publicitaire de Google et de Huawei, dont les bibliothèques ne sont pas embarquées § 3.2
7 Belin Éducation – Manuel max 1.14.25 Lecteur (React Native) Éditions Belin Matomo (Matomo Cloud) et Sentry § 3.2
8 Lelivrescolaire.fr 4.3.1 Lecteur et cahiers Lelivrescolaire.fr Éditions Bugsnag ; SDK Microsoft Clarity (enregistrement de sessions), invisible pour εxodus ; AT Internet / Piano et Clarity dans l'appli web embarquée § 3.2
9 FLEX Manuel 2.2.0 (2.3.0 chez εxodus) Lecteur Magnard-Vuibert Crashlytics, Matomo, OneSignal ; la signature Huawei Mobile Services d'εxodus vient de noms de types cités par OneSignal, sans bibliothèque Huawei embarquée ; 26 permissions ; Google Play : « aucune donnée collectée », « aucune donnée partagée » § 3.2
10 Bordas FlashPage 5.1.1 Complément (Unity) SEJER Crashlytics, Firebase Analytics, permissions publicitaires ADSERVICES ; App Store : « Données non collectées » § 3.2
11 Nathan Live 6.0.4 Complément (Unity) SEJER Crashlytics, Firebase Analytics, permissions ADSERVICES § 3.2
12 Biblio Exos 20.28 Exercices (Capacitor) SEJER Aucune signature native ; module d'analyse du SDK web Firebase présent dans le code (activation non établie) § 3.2
13 Kartable 11.1.4 Site de cours (application) L'École sur Internet Facebook (Analytics, Login, Share), Crashlytics, Firebase Analytics ; permissions AD_ID et ADSERVICES (dont TOPICS et CUSTOM_AUDIENCE) ; badge Familles ; conteneur GTM-M4N4L2 dans l'appli web § 3.3
14 SchoolMouv 2.33.0 Site de cours (Flutter) Schoolmouv AppsFlyer, Facebook (Analytics, Login, Share), Crashlytics, Firebase Analytics, Braze, RevenueCat ; AD_ID et quatre permissions ADSERVICES § 3.3
15 Kalulu 3.1.5 Application publique de lecture (Godot) Excello Aucun pisteur, en 3.0.0 (εxodus) comme en 3.1.5 § 3.3
15 bis Cned 1.3 (εxodus : 0.20.8) Application de suivi des inscrits (notes, dépôt des devoirs, messages) CNED Firebase Analytics, Crashlytics, bibliothèque de l'identifiant publicitaire Google, AD_ID et ADSERVICES ; la signature AdMob d'εxodus vient de l'API Google IMA citée par le lecteur vidéo ; Google Play : aucun partage, collecte limitée aux fichiers et aux journaux de plantage, badge Familles § 3.3
15 ter Lumni.fr – Cours & révisions 2.0.7 (εxodus : 1) Application publique de révision (Trusted Web Activity : le site lumni.fr dans une coque) France Télévisions Aucun pisteur dans la coque (674 classes) ; le site lumni.fr, relevé au navigateur le 16/10/2026, appelle Piano, NPAW (mesure vidéo), Akamai mPulse et nmrodam.com avant toute réponse, et après refus garde NPAW, mPulse et nmrodam.com, Piano passant en mode « exempt » (§ 3.5 bis) ; Google Play : partage déclaré dont « Publicité ou marketing », badge Familles § 3.3
16 18 applications Jocatop (Zoum, Enig'maths CP, CM1, CM2, Lecthème, Quizztop, Applimaths, BDG…) Activités (Cordova) Éditions Jocatop Aucun pisteur ; 3 à 12 permissions, dont enregistrement audio et état du téléphone pour 9 d'entre elles, enregistrement audio seul pour une dixième (Lecthème+ Texte), caméra pour une (Contes numériques) § 3.4
17 Accès éditions 6.00 Activités et boutique ACCÈS Éditions Firebase Analytics, Sentry, AD_ID, ADSERVICES, localisation précise ; badge Familles ; déclare seulement une adresse e-mail facultative § 3.4
18 Accès EPS 1.9.0 ; Step by step drawings 1.0.23 Activités ACCÈS Éditions RevenueCat et bibliothèque de l'identifiant publicitaire Google dans Accès EPS ; sa signature AdMob vient de noms d'interface de l'API Google IMA, sans SDK publicitaire embarqué ; aucun pisteur dans Step by step drawings § 3.4
19 MEDIA+ 1.10 ; Le Robert Ortho 1.1.1 Compléments Hachette Livre ; SEJER Aucune signature de pisteur ; Le Robert Ortho en avait trois en 1.0.13 (Adjust, Google Analytics, Google Tag Manager, εxodus 2024) § 3.4
20 Bescherelle Conjugaison 1.0.0 (Android) Vue web d'un site Editions Hatier Aucun SDK ; la page affichée charge Piano Analytics et trois scripts de la régie The Moneytizer ; au navigateur le 16/10/2026, la régie (The Moneytizer, Smart AdServer, Criteo, Teads, Quantcast, ID5, First-ID…) est appelée avant toute réponse et continue après un refus enregistré ; « Contient des annonces » et « aucune donnée collectée » sur Google Play § 3.4, § 3.5, § 3.5 bis
21 BOOSTIN et KLAPSO learning 12.56.21 Formation (apprentis) Magnard-Vuibert (Beedeez) Amplitude, Sentry ; la signature AdMob d'εxodus vient de noms d'interface de l'API Google IMA, sans SDK publicitaire embarqué ; 23 permissions dont agenda et capture d'écran § 3.4
22 mesmanuels.fr (accueil, accès libre) Site d'accès élève Hachette Livre (E-Education) Google Tag Manager (GTM-WQZ265F) et /js/myfeelback.js chargés d'office ; Didomi présent seulement par des règles CSS dans le HTML, mais chargé à l'exécution (16/10/2026) : bandeau « En poursuivant votre navigation […] vous acceptez », sans refus au premier niveau, quatre finalités sur sept précochées au second ; aucune requête d'analytique vue, avant ou après refus ; /acces-libre/9782017329022 répond « Cette page est introuvable » le 16/10/2026 § 3.5, § 3.5 bis
23 Sites compagnons Nathan et Bordas (hg-college, transmath-college, college, myriade) Sites compagnons SEJER Google Tag Manager (GTM-MNXNC5M) chargé d'office ; Google Analytics « UA » réservé au consentement Didomi ; au navigateur le 16/10/2026, Didomi et GTM seuls, aucune mesure vue avant ni après refus § 3.5, § 3.5 bis
24 ressources.eleve.magnard.fr ; hatier-clic.fr Accès élève aux ressources Magnard ; Hatier Matomo chargé d'office (auto-hébergé matomo.pole-education.fr et conteneur Matomo Tag Manager chez Magnard ; Matomo Cloud pour Hatier), setDoNotTrack ; aucun gestionnaire de consentement chargé sur l'une ou l'autre page ; au navigateur le 16/10/2026, aucun bandeau, Matomo appelé (4 requêtes chez Magnard, sans cookie lisible ; 3 chez Hatier, cookies _pk_id et _pk_ses) § 3.5, § 3.5 bis
25 Lelivrescolaire.fr (accueil Webflow, manuel en ligne) Site et manuel gratuit Lelivrescolaire.fr Éditions Accueil : Microsoft Clarity et Piano chargés d'office, signal de consentement envoyé à Clarity pour tout visiteur, Meta Pixel réservé au consentement ; page du manuel : Piano chargé d'office, sans gestionnaire de consentement ; au navigateur le 16/10/2026, Clarity (cookies _clck, _clsk) et Piano en mode « optin » sur l'accueil comme sur le manuel, avant toute réponse ; après un refus Didomi, Clarity, absent de la liste de partenaires, continue et Piano reste « optin » § 3.5, § 3.5 bis
26 schoolmouv.fr ; kartable.fr Sites de cours Schoolmouv ; L'École sur Internet SchoolMouv : GTM-T47Q33C2 déclaré dans la configuration du rendu Next.js (pas de balise <script> dans le HTML), Axeptio présent par le lien openAxeptioCookies(), cookie cid d'un an posé par le serveur ; Kartable : application monopage, rien de lisible sans exécution. Au navigateur le 16/10/2026 : SchoolMouv appelle AdRoll (reciblage publicitaire, 24 requêtes, cookies __adroll_fpc et __ar_v4) et GTM avant toute réponse au bandeau Axeptio, et garde les deux cookies d'AdRoll après refus ; Kartable n'a aucun bandeau et dépose dès l'arrivée les cookies de Google Analytics 4, Google Ads, Microsoft Advertising et Criteo, et appelle le pixel Meta § 3.5, § 3.5 bis
27 Contrat GAR v2026, annexe 3 § 1.2 et § 2.2 Règle contractuelle Ministère Aucune collecte hors des données du GAR justifiées, aucune transmission à des tiers ; outils de traçage décrits dans la déclaration de conformité, « solutions exemptées de consentement » seulement § 3.6
28 Contrat GAR v2026, annexe 5 Règle contractuelle Ministère, d'après la CNIL (octobre 2021) Contenus intégrés « dépourvus de tout traceur publicitaire » et sans traceur soumis au consentement ; l'éditeur doit vérifier qu'ils ne déclenchent « aucun dépôt ou lecture de traceur » § 3.6
29 CNIL, mesure d'audience exemptée (04/07/2025) Doctrine CNIL Finalité limitée à l'éditeur, statistiques anonymes, pas de transmission à des tiers, 13 mois de vie, 25 mois de conservation ; plus de liste de solutions, auto-évaluation des fournisseurs § 3.7
30 CNIL, recommandation « applications mobiles » (24/09/2024, modifiée le 08/04/2025) Recommandation CNIL Tout SDK analysé ; aucune lecture ou écriture soumise au consentement « au premier lancement de l'application » ; effet « poupées russes » § 3.7
31 Microsoft Clarity, « Consent Management » Documentation Microsoft Depuis le 31/10/2025, pas de cookie Clarity dans l'EEE sans signal de consentement § 3.7
32 « Catalogue des applications mobiles (Android et iOS) proposées par la puissance publique… - 2026 » Jeu de données ouvert (data.gouv.fr) Compte utilisateur « Cumulo NIMBUS » (charles-brisset), pas une administration 1 038 applications (974 actives) avec éditeur, portée et liens magasins ; pour l'école : Lumni, Gallica, Gallicadabra, Fabricabrac, BDnF ; ni Kalulu ni l'application du CNED ; du ministère de l'Éducation nationale, seulement CycladesVerif et e-colibris (gestion) § 3.3
33 « Observatoire SansTrace des fuites de données et des sanctions de la CNIL » Jeu de données ouvert (data.gouv.fr) SansTrace 390 sanctions (260 de la CNIL, 130 de Légifrance) et 466 fuites ; organismes nommés ou décrits ; aucun éditeur scolaire, motif des sanctions absent des colonnes § 5
34 Human Rights Watch, « How Dare They Peep into My Private Life? » (25/05/2022) Analyse technique publique Human Rights Watch 163 produits recommandés par 49 gouvernements, France comprise ; 145 (89 %) exposent les données des enfants ; Jules, MaSpéMaths et Ma classe à la maison (France) parmi les neuf produits publics sans aucune technologie de suivi ; Deutsch für Schulen et English for Schools (France) parmi les 56 produits publics qui transmettent des données à des sociétés publicitaires § 3.3

3. Fiches détaillées et mesures

3.1 Méthode et fiabilité de la mesure

Ce que mesure εxodus. Chaque rapport affiche : « Ce rapport liste les signatures des pisteurs que nous avons trouvés par l'analyse statique de cet APK. Cela ne constitue pas une preuve de l'activité de ces pisteurs. L'application pourrait contenir un ou plusieurs pisteurs que nous n'avons pas encore identifiés. » Le rapport donne la version analysée, les pisteurs (nom et catégorie), les permissions et, pour les rapports anciens, l'empreinte du certificat. La recherche publique (POST /api/search) se fait sans compte ; les détails par l'API (GET /api/search/<id>/details) demandent une clé, obtenue par courriel (« In order to use this REST API, you have to request an API key », à api@exodus-privacy.eu.org).

Ce qu'a mesuré ce rapport en plus. Les rapports d'εxodus portent presque tous sur des versions anciennes (tableau du § 3.2). Les paquets courants ont donc été récupérés sur le miroir APKPure et analysés avec la même liste de signatures que celle d'εxodus, sans les exécuter. Authenticité : l'empreinte SHA-1 du certificat du paquet récupéré est identique à celle qu'affiche εxodus pour les 8 applications où il l'affiche (Biblio Manuels 5c6cf066…, Lib Manuels 8e1c3e20…, Manuel max 1f46bca7…, Lelivrescolaire.fr 78d81054…, Bordas FlashPage 8ebf4735…, Nathan Live e3d5cbba…, Kartable 2015af5d…, Le Robert Ortho db11d2e7…) ; pour les autres (FLEX Manuel 444b5359…, par exemple), la concordance n'a pas de point de comparaison public. Les versions, certificats, permissions et kits des 39 paquets du 12/10/2026 ont été recomptés le 16/10/2026 par un script indépendant (contre-vérification). La version récupérée est celle de Google Play au 12/10/2026 pour Lib Manuels, Biblio Manuels, éducadhoc, Biblio Exos, Kartable, SchoolMouv et Kalulu ; APKPure n'avait pas la dernière version de trois applications (Manuel max 1.14.25 contre 1.16.2 ; FLEX Manuel 2.2.0 contre 2.4.2 ; Bordas FlashPage 5.1.1 contre 5.1.2) ; Google Play affiche « Varies with device » pour SOLAIRE, Lelivrescolaire.fr et Nathan Live (versions récupérées : 1.1.2, 4.3.1, 6.0.4).

Limites communes aux deux mesures. Une signature de code présente dit qu'un kit est embarqué, pas qu'il est activé ni ce qu'il transmet ; une application hybride (Cordova, Capacitor, React Native) ou un moteur (Unity, Flutter) peut porter ses traceurs dans du code que les signatures de classes ne voient pas : les domaines cherchés dans les fichiers texte (§ 1.1) et le contexte de chaque occurrence (scripts/contexte.py) comblent une partie de ce trou. Les occurrences dont le contexte n'établit pas un traceur ont été écartées : « batch.com » dans Biblio Exos est un fragment de « WriteBatch.commit » (Firestore) ; « google.com » est une signature réseau générique d'εxodus ; les chaînes googletagmanager.com et connect.facebook.net du paquet de Manuel max sont une page HTML enregistrée par erreur dans assets/fonts/Verdana.ttf, pas un traceur (contre-vérification du 16/10/2026).

Ce que la contre-vérification du 16/10/2026 a corrigé dans la méthode. La recherche d'un préfixe de signature (sans point final) dans tout le contenu des dex, et celle des domaines dans un contenu mis en minuscules, trouvent aussi des noms seulement cités par le code d'un autre kit. Quatre lectures du relevé du 12/10 en étaient des faux positifs, relevés en distinguant les classes définies dans les dex des noms de types seulement référencés (~/.cache/manuels-vague8/Q25-verif/, scripts verif_apk.py, defs.py) :

  • « OneTrust » dans Lib Manuels : le fragment « getFromAlreadyDoneTrustedFuture », aucune classe ni chaîne OneTrust ;
  • l'identifiant publicitaire de Google (com/google/android/gms/ads/identifier) et de Huawei dans Biblio Manuels et SOLAIRE : deux noms de type par fournisseur, référencés par AT Internet et Piano, sans classe définie ;
  • Huawei Mobile Services dans FLEX Manuel : les noms com/huawei/hms/push et …/location cités par OneSignal, sans classe Huawei définie ;
  • AdMob dans Accès EPS, BOOSTIN et KLAPSO learning : la signature com.google.ads. d'εxodus est déclenchée par neuf noms d'interface de l'API Google IMA (com/google/ads/interactivemedia/v3/api/AdError, AdEvent, ImaSdkFactory…), sans aucune classe d'implémentation (…/internal/ absent) : le SDK publicitaire n'est pas embarqué, le lecteur vidéo le référence. Une signature se confirme donc par une classe définie, pas par un nom de type cité. Le même contrôle, fait le 16/10/2026 sur le paquet courant de l'application du CNED, y trouve le même faux positif AdMob (§ 3.3).

3.2 Les dix lecteurs et compléments de manuels : mesure et déclarations

Application (identifiant) εxodus : version, date, pisteurs Paquet courant analysé : version, pisteurs (signatures εxodus) Autres kits et constats du code Google Play (Z21) App Store (Z21)
Lib Manuels (fr.libmanuels) 2.0.11 (créé 23/09/2019, mis à jour 19/07/2024) : Google Analytics, Google Analytics Plugin (Cordova), Google Tag Manager, Sentry 9.0.0 (cible API 36) : Sentry Sentry (1 605 occurrences io/sentry) ; Matomo dans l'appli web embarquée, setTrackerUrl https://matomo.edulib.fr/matomo.php, précédé de requireCookieConsent : Matomo mesure sans cookie tant que le consentement n'est pas donné ; aucune classe ni chaîne OneTrust (l'occurrence relevée le 12/10 était le fragment « getFromAlreadyDoneTrustedFuture ») Aucune donnée partagée, aucune collectée ; aucune pratique de sécurité affichée Liées : ID utilisateur ; non liées : diagnostic
Biblio Manuels (ean3133091123925.com.bordasnathan.bibliomanuels) 2.7.0 (22/10/2018, mis à jour 19/07/2024) : Google Analytics, Google Tag Manager 3.13.1 (API 36) : ATInternet 217 classes définies sous com/atinternet ; le code d'AT Internet cite AdvertisingIdClient (identifiant publicitaire Google) et com/huawei/hms/ads (deux noms de type par fournisseur), mais aucune classe de ces bibliothèques n'est définie dans les dex : elles ne sont pas embarquées ; permissions RECORD_AUDIO, GET_ACCOUNTS Partage : « autres messages » ; collecte : ID appareil, audio ou vidéo (facultatif), ID utilisateur ; impossible de supprimer ; badge Familles Non liées : photos ou vidéos, audio, ID utilisateur, ID appareil, interactions
éducadhoc (com.hachette.hereaderepubv2) 9.4.04241133 (14/10/2025) et 9.2 (2022) : Crashlytics, Firebase Analytics ; permission AD_ID en 9.4 9.6 (API 36) : Crashlytics Plus de Firebase Analytics ni d'AD_ID (aucune classe gms/measurement ni FirebaseAnalytics, seule l'interface analytics/connector de Firebase) ; 7 permissions dont CAMERA, RECORD_AUDIO Collecte : nom, e-mail, ID utilisateur, audio ou vidéo, fichiers, photos (facultatifs), ID appareil ; aucun partage ; impossible de supprimer ; badge Familles Non liées : ID appareil, diagnostic (analyses)
SOLAIRE (com.sejer.solaire) Aucun rapport 1.1.2 (Flutter, API 36) : aucune SDK Piano Analytics (io/piano/android/analytics, classes EventsRequest, User, PrivacyStorageFeature… ; 6 classes définies selon la contre-vérification ; plugin Flutter io.piano.flutter.piano_analytics.PianoAnalyticsPlugin enregistré) absent de la liste d'εxodus ; le code de Piano cite AdvertisingIdClient et com/huawei/hms/ads, dont aucune classe n'est définie dans les dex : les bibliothèques d'identifiant publicitaire ne sont pas embarquées Collecte : ID utilisateur, interactions, ID appareil (fonctionnement, données analytiques, prévention des fraudes) ; aucun partage ; impossible de supprimer ; badge Familles Non liées : photos ou vidéos, audio, ID utilisateur, ID appareil, interactions
Belin Éducation – Manuel max (com.humensis.cosmos) 1.12.32 (30/09/2024) : Matomo, Sentry 1.14.25 (React Native, API 35) : Matomo, Sentry URL de collecte https://digiecohumensisblue.matomo.cloud/matomo.php (Matomo Cloud) ; Google Play affiche la version 1.16.2 le 16/10/2026 Partage : ID utilisateur ; collecte : ID appareil, plantages, interactions, historique de recherche, contenu ; impossible de supprimer Non liées : e-mail, ID utilisateur, interactions (analyses)
Lelivrescolaire.fr (fr.lelivrescolaire.lycee) 3.0.2050 (26/08/2023, mis à jour 15/07/2024) : ATInternet, Crashlytics, Firebase Analytics ; 1.5.1042 (2020) : Crashlytics, Firebase Analytics 4.3.1 (API 35) : Bugsnag SDK Microsoft Clarity natif (21 paquets com/microsoft/clarity/… au relevé du 12/10, 43 selon le décompte de la contre-vérification, 1 060 occurrences), absent de la liste d'εxodus ; dans l'appli web embarquée, chargement de https://www.clarity.ms/tag/ et AT Internet ; lecteurs YouTube (dont youtube-nocookie) et Vimeo Partage : position approximative ; collecte : nom, e-mail, ID utilisateur, ID appareil ; impossible de supprimer Non liées : interactions, diagnostic (analyses)
FLEX Manuel (com.magnard.flex.manuel) 2.3.0 (30/09/2024) : Crashlytics, Huawei Mobile Services Core, Matomo, OneSignal ; 26 permissions 2.2.0 (API 33) : les mêmes quatre signatures ; trois kits réellement embarqués Crashlytics (321 classes définies), OneSignal (notifications, 535), Matomo/Piwik (64) ; aucune classe Huawei définie : les noms com/huawei/hms/push et …/location sont cités par OneSignal, ce qui déclenche la signature HMS Core d'εxodus (pour la 2.3.0 analysée par εxodus, la même distinction ne se vérifie pas sans son paquet) ; 26 permissions dont badges et démarrage ; certificat 444b5359… « Aucune donnée partagée », « aucune donnée collectée » ; chiffrement oui ; suppression possible Non liées : « Autres données »
Bordas FlashPage (com.sejer.bordasflashpageun1703) 1.0.10271650 (20/03/2020, mis à jour 18/07/2024) : Crashlytics ; permissions de localisation précise et approximative 5.1.1 (Unity, API 35) : Crashlytics, Firebase Analytics 460 classes gms/measurement (Firebase Analytics) ; permissions ACCESS_ADSERVICES_AD_ID et ATTRIBUTION ; plus de localisation ; Google Play affiche la version 5.1.2 le 16/10/2026 Partage : interactions, plantages, photos, ID appareil ; collecte : aucune ; impossible de supprimer « Données non collectées »
Nathan Live (ean3133092217593.com.nathan.u4live) 4.3 (29/12/2018, mis à jour 19/07/2024) : Crashlytics, Firebase Analytics ; localisation précise 6.0.4 (Unity, API 36) : Crashlytics, Firebase Analytics 460 classes gms/measurement (Firebase Analytics) ; permissions ADSERVICES_AD_ID et ATTRIBUTION ; plus de localisation Partage : ID appareil, interactions, plantages, ID utilisateur ; impossible de supprimer Non liées : e-mail, photos ou vidéos, audio, ID utilisateur, ID appareil, interactions, pannes
Biblio Exos (com.sejer.biblioexos) Aucun rapport 20.28 (Capacitor, API 36) : aucune SDK web Firebase avec son module d'analyse (getAnalytics, 7 occurrences ; gtag ; googletagmanager.com, 1) dans main.*.js ; aucun identifiant de mesure trouvé ; Firebase Messaging ; permission READ_CLIPBOARD_IN_BACKGROUND Collecte : ID appareil, interactions ; impossible de supprimer Non liées : autres coordonnées, ID appareil, interactions

Constats :

  • Les dix lecteurs et compléments embarquent tous au moins un kit tiers de mesure ou de rapport de plantage ; aucun ne porte de kit publicitaire au sens d'εxodus (AdMob, Facebook Audience, réseaux d'annonces). Les kits sont de trois sortes : mesure d'audience (AT Internet, Piano, Matomo, Firebase Analytics), rapport de plantage (Crashlytics, Sentry, Bugsnag), enregistrement de sessions (Microsoft Clarity chez Lelivrescolaire.fr). Le constat vaut pour une version Android de chaque application et pour la présence d'un kit, pas son activation ; pour Biblio Exos, il repose sur le module d'analyse du SDK web Firebase présent dans le code, dont l'activation n'est pas établie (aucun identifiant de mesure trouvé) ; il ne vaut ni pour iOS ni pour les versions plus récentes de Manuel max (1.16.2), FLEX Manuel (2.4.2) et Bordas FlashPage (5.1.2), non analysées.
  • Trois kits courants ne sont pas vus par εxodus : Piano Analytics dans SOLAIRE, Microsoft Clarity dans Lelivrescolaire.fr, Braze (nouveau paquet) dans SchoolMouv. Un rapport εxodus « 0 pisteur » ou court ne suffit donc pas à établir l'absence de kit.
  • Les kits changent d'une version à l'autre chez cinq lecteurs et compléments : Lib Manuels passe de Google Analytics, Tag Manager et Sentry (2.0.11) à Sentry seul (9.0.0) ; Biblio Manuels passe de Google Analytics et Tag Manager (2.7.0) à AT Internet (3.13.1) ; éducadhoc retire Firebase Analytics et la permission AD_ID entre 9.4 et 9.6 ; Bordas FlashPage ajoute Firebase Analytics à Crashlytics ; Lelivrescolaire.fr passe de Firebase et AT Internet à Bugsnag et Clarity. Nathan Live garde les mêmes kits ; avec Bordas FlashPage, il abandonne la localisation précise (versions de 2018-2020) et ajoute les permissions publicitaires ADSERVICES que tire le SDK Firebase. Chaque comparaison porte sur deux points (version εxodus, version courante). La déclaration d'un magasin vaut pour une version.
  • Écarts entre code et déclaration Google Play : FLEX Manuel déclare « aucune donnée collectée » et « aucune partagée » en embarquant Crashlytics, Matomo et OneSignal (version 2.2.0, et mêmes signatures en 2.3.0 chez εxodus ; la 2.4.2 n'est pas analysée ; la signature HMS est un faux positif, § 3.1) ; Lib Manuels déclare « aucune donnée collectée » en embarquant Sentry (journaux de plantage) et une mesure Matomo (sans cookie avant consentement, mais mesure tout de même), alors qu'il déclare des diagnostics chez Apple. Bordas FlashPage déclare « Données non collectées » chez Apple quand sa version Android porte Firebase Analytics et Crashlytics (la version iOS n'est pas analysable). La définition de Google (une donnée traitée « éphémère » n'est pas déclarée ; Z21 § 3.5) et le statut de Matomo auto-hébergé, que le développeur peut tenir pour non partagé, laissent une marge d'interprétation ; la contradiction reste entière pour Crashlytics et OneSignal, services de tiers. Ces écarts opposent un kit embarqué à une déclaration ; ils ne prouvent pas une collecte, que seule la mesure à l'exécution établirait (§ 5), et aucune autorité ne les a qualifiés.
  • Les identifiants publicitaires : dans Biblio Manuels et SOLAIRE, les kits de mesure (AT Internet, Piano) cherchent l'identifiant publicitaire de Google et de Huawei, mais les bibliothèques qui le fournissent ne sont pas dans le paquet (aucune classe com/google/android/gms/ads/identifier ni com/huawei définie, contre-vérification du 16/10/2026) : l'appel est prévu par le kit et reste sans effet tant que l'application n'embarque pas la bibliothèque. Bordas FlashPage et Nathan Live, eux, embarquent Firebase Analytics et déclarent les permissions ACCESS_ADSERVICES_AD_ID et ATTRIBUTION. Biblio Manuels, éducadhoc et SOLAIRE portent le badge « S'engage à respecter les règles pour les contenus familiaux de Play » (Z21). La Families Policy interdit de transmettre l'AAID pour un enfant ou un utilisateur d'âge inconnu (Z21 § 3.4) : la présence d'une permission ne prouve pas la transmission ; la mesure d'exécution (§ 5) le dirait.

3.3 Kartable, SchoolMouv, et les étalons publics Kalulu, CNED, Lumni

Application εxodus Paquet courant Autres constats Déclarations (Z21)
Kartable (com.kartable.android) 10.16.2 (23/04/2024, mis à jour 14/07/2024) : Facebook Login, Google Analytics, Crashlytics, Firebase Analytics ; 5.4.4 (2018) : 8 pisteurs dont Braze et Facebook Analytics 11.1.4 (Capacitor, API 36) : Facebook Analytics, Facebook Login, Facebook Share, Crashlytics, Firebase Analytics Permissions AD_ID, ACCESS_ADSERVICES_AD_ID, ATTRIBUTION, CUSTOM_AUDIENCE, TOPICS ; appli web embarquée : preconnect vers googletagmanager.com et connect.facebook.net, conteneur GTM-M4N4L2, SDK Facebook chargé pour la connexion (loadFacebookScript, puis FB.init({…cookie:!0}), qui active le cookie de Facebook) ; 275 classes définies facebook/appevents, 460 gms/measurement Google : badge Familles, partage de nom, e-mail, ID utilisateur, téléphone, interactions, ID appareil « Publicité ou marketing », « Les données ne sont pas chiffrées » ; Apple : données liées dont « Publicités ou marketing du développeur »
SchoolMouv (com.schoolmouv) 2.30.0 (23/09/2026) : AppsFlyer, Facebook Analytics, Facebook Login, Facebook Share, Crashlytics, Firebase Analytics ; 2.1.4 et 2.1.7 (2020) : 11 pisteurs 2.33.0 (Flutter, API 36) : les mêmes six Braze (com/braze/…, dont com/braze/location : 20 paquets au relevé du 12/10, 70 au décompte de la contre-vérification) et RevenueCat (2 631 occurrences) non vus par εxodus ; 22 permissions, dont AD_ID et quatre permissions ADSERVICES (ADSERVICES_AD_ID, ATTRIBUTION, CUSTOM_AUDIENCE, TOPICS), CAMERA, RECORD_AUDIO, biométrie (USE_BIOMETRIC, USE_FINGERPRINT), BILLING, BIND_GET_INSTALL_REFERRER_SERVICE Google : partage d'e-mails (publicité), plantages, ID appareil et « Applications installées » (analytique, publicité) ; Apple : « Données utilisées pour vous suivre »
Kalulu (org.godotengine.kalulu) 3.0.0 (18/05/2026) : 0 pisteur 3.1.5 (Godot, API 36) : 0 8 permissions, dont READ_LOGS Google : collecte d'interactions et nom (facultatifs), e-mail ; « Les données ne sont pas chiffrées »
Cned (fr.cned.sam) 0.20.8 (22/09/2025) : Google AdMob, Crashlytics, Firebase Analytics ; 16 permissions dont AD_ID, ADSERVICES_AD_ID et ATTRIBUTION, CAMERA, RECORD_AUDIO ; « Aucune signature trouvée » pour le certificat 1.3 (React Native, API 36 ; paquet du 16/10/2026, certificat 629c7f02…, sans point de comparaison εxodus) : Crashlytics (388 classes définies), Firebase Analytics (452 classes gms/measurement), « AdMob » La signature AdMob vient de neuf interfaces de l'API Google IMA (com/google/ads/interactivemedia/v3/api/AdError…), sans aucune classe d'implémentation (…/internal/ absent), que référence l'extension IMA du lecteur vidéo (androidx/media3/exoplayer/ima, ImaAdsLoader) : le SDK publicitaire n'est pas embarqué ; la bibliothèque de l'identifiant publicitaire Google est, elle, embarquée (AdvertisingIdClient, zza, zzb, zzc définies) ; 17 permissions dont AD_ID, ADSERVICES_AD_ID et ATTRIBUTION, CAMERA, biométrie ; RECORD_AUDIO n'y est plus Google (16/10/2026) : « Aucune donnée partagée avec des tiers » ; collecte : fichiers et documents, journaux de plantage (facultatifs, fonctionnement) ; suppression possible ; badge Familles. L'application sert le suivi des inscrits (notes, dépôt des devoirs, messages) : « Les contenus de vos cours […] ne sont pas accessibles depuis l'application mobile »
Lumni.fr – Cours & révisions (fr.lumni.www.twa) 1 (25/02/2024, mis à jour 14/07/2024) : 0 pisteur ; ACCESS_FINE_LOCATION, POST_NOTIFICATIONS ; certificat ab230b14… 2.0.7 (API 36 ; paquet du 16/10/2026, même certificat ab230b14…) : 0 Coque Trusted Web Activity de 674 classes, qui affiche le site lumni.fr : ce que le site charge (mesure, consentement) est relevé au navigateur le 16/10/2026 (§ 3.5 bis) ; permissions ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION, POST_NOTIFICATIONS, CHECK_LICENSE Google (16/10/2026, développeur France Télévisions) : partage d'e-mails, d'ID utilisateur et d'interactions notamment pour « Publicité ou marketing », d'ID de l'appareil pour « Données analytiques » ; collecte dont « Position » ; badge Familles ; fiche : contenus « sans pub et 100% gratuits »

Kartable s'engage aux règles Familles de Google tout en embarquant trois kits Facebook et en demandant les permissions de publicité ciblée par centres d'intérêt (TOPICS) et d'audiences personnalisées (CUSTOM_AUDIENCE) ; ses déclarations Google et Apple annoncent bien un usage publicitaire : le code et la déclaration concordent, c'est l'engagement Familles qui jure avec eux. Kalulu, application publique, ne porte aucun kit ni en 3.0.0 ni en 3.1.5.

Les deux autres applications publiques ne tiennent pas ce niveau de la même façon. L'application du CNED embarque Firebase Analytics, Crashlytics et la bibliothèque de l'identifiant publicitaire Google, avec la permission AD_ID, sous badge Familles et avec une déclaration Google réduite aux fichiers et aux journaux de plantage : le même écart que celui d'Accès éditions (§ 3.4) ; sa signature AdMob, en revanche, est le faux positif IMA du § 3.1. Lumni ne porte aucun kit dans sa coque, mais sa déclaration Google annonce un partage pour « Publicité ou marketing » : ce qui part se joue sur le site lumni.fr, que la coque affiche. Relevé au navigateur le 16/10/2026 pour un premier visiteur (Q31 § 1.6), l'accueil de lumni.fr affiche un bandeau Didomi (« Continuer sans accepter », « Paramétrer », « Tout Accepter ») et appelle, avant toute réponse, Piano (tag.aticdn.net, pa-cd.com, xiti.com), NPAW (mesure vidéo), Akamai mPulse, nmrodam.com et maxwell.france.tv ; après « Continuer sans accepter », Piano passe en mode « exempt » et xiti.com n'est plus appelé, mais NPAW, mPulse et nmrodam.com restent. Le relevé porte sur le site ouvert dans Chrome, pas sur la coque Android (§ 3.5 bis). Sources : pages εxodus brutes du 12/10/2026 (Q25/exodus/L_fr.cned.sam.html, L_fr.lumni.www.twa.html) ; paquets et fiches Google Play du 16/10/2026 (Q25-integ/).

Analyse publique antérieure : le rapport de Human Rights Watch du 25/05/2022 a analysé, entre mars et août 2021, 163 produits éducatifs recommandés par 49 gouvernements pendant les fermetures d'écoles, France comprise ; 145 (89 %) « appeared to engage in data practices that put children's rights at risk ». Pour la France, il range Jules, MaSpéMaths et Ma classe à la maison parmi les neuf produits publics « found to protect children's data by not installing any tracking technologies », et Deutsch für Schulen et English for Schools parmi les 56 produits publics « transmitting children's data to AdTech companies ». C'est, avec εxodus, la seule mesure publique trouvée des traceurs de ressources scolaires recommandées en France ; elle date de 2021 et les produits français qu'elle nomme ne comprennent aucun lecteur de manuels. Source : texte brut de https://www.hrw.org/report/2022/05/25/how-dare-they-peep-my-private-life/childrens-rights-violations-governments, lu le 16/10/2026.

Base d'échantillon pour d'autres étalons publics : le jeu « Catalogue des applications mobiles (Android et iOS) proposées par la puissance publique… - 2026 » (data.gouv.fr, version 1.0-RC3 du 23/06/2026, publié par un compte utilisateur et non par une administration) recense 1 038 applications (feuille « Somme » : 974 actives, 980 sous Android), avec éditeur et liens magasins. Il porte Lumni, Gallica, Gallicadabra, Fabricabrac et BDnF, la fabrique à BD (BnF), mais ni Kalulu ni l'application du CNED ; du ministère de l'Éducation nationale, il ne recense que CycladesVerif et e-colibris, deux applications de gestion. Il sert de point de départ, pas de liste complète des applications scolaires publiques. Source : fichier catalogue-applications-puissance-publique-rc3.ods, lu le 16/10/2026.

3.4 Les applications d'activités et compléments d'éditeurs

Application Paquet analysé Pisteurs (signatures εxodus) et kits Permissions notables Google Play, « Sécurité des données » (12/10/2026)
Zoum – Conscience phonologique (fr.jocatop.zoum.phonologie) 200005 (API 35) Aucun INTERNET, WRITE_EXTERNAL_STORAGE Aucun partage ; collecte : ID appareil (données analytiques), e-mail (fonctionnement) ; suppression possible
Enig'maths CP, CM1, CM2 (fr.jocatop.enigmaths.cp, .cm1, .cm2) 1.4.0 ; 1.2.0 (API 30) ; 1.4.0 Aucun CP et CM2 : RECORD_AUDIO, READ_PHONE_STATE Aucun partage ; collecte : e-mail ; suppression possible
14 autres applications Jocatop (Applimaths CP, BDG CP, CE1, CE2, Contes numériques, ELPE, Lecthème ×4, LI Conjugaison, Mission Maths CE2, Quizztop ×2) versions 1.0.4 à 1.5.4 (18 paquets Jocatop lus en tout ; Motissimo et Odyssée français n'ont pas de paquet récupéré) Aucun RECORD_AUDIO et READ_PHONE_STATE pour 6 ; CAMERA, RECORD_AUDIO et READ_PHONE_STATE pour Contes numériques ; RECORD_AUDIO sans READ_PHONE_STATE pour Lecthème+ Texte Lues pour Applimaths CP, Contes numériques, ELPE, Lecthème Lecture : aucun partage, e-mail seulement
Accès éditions (com.acceseditions) 6.00 (API 36) ; Google Play affiche 6.01 le 16/10/2026 Firebase Analytics (FirebaseAnalytics et AppMeasurement définis), Sentry (598 classes) ; chaînes doubleclick.net, googleadservices.com dans le code Google AD_ID, ACCESS_ADSERVICES_AD_ID, ATTRIBUTION, ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION Aucun partage ; collecte : e-mail facultatif ; impossible de supprimer ; badge Familles
Step by step drawings (com.acceseditions.ajmd) 1.0.23 Aucun BILLING « Aucune donnée collectée » ; badge Familles
Accès EPS (com.acceseps.app) 1.9.0 (Ionic) RevenueCat ; bibliothèque de l'identifiant publicitaire Google embarquée (classes zza, zzb, zzc présentes) ; la signature AdMob d'εxodus vient de neuf noms d'interface de l'API Google IMA, sans classe d'implémentation : pas de SDK publicitaire embarqué (§ 3.1) BILLING, SYSTEM_ALERT_WINDOW Collecte : ID appareil, e-mail, ID utilisateur ; « Les données ne sont pas chiffrées »
MEDIA+ (fr.hachettelivre.mediaplus) 1.10 (εxodus : 1.8, 0 pisteur, 2024) Aucun ; option hasCookieBot dans le lecteur web CAMERA, RECORD_AUDIO « Aucune donnée collectée » ; impossible de supprimer ; badge Familles
Le Robert Ortho (com.lerobert.ortho) 1.1.1 (εxodus : 1.0.13, Adjust, Google Analytics, Google Tag Manager, 2024) Aucune signature ; configuration de mesure laissée vide (ADJUST_KEY:"", MATOMO_TRACKING_URL:"") 4 permissions « Aucune donnée collectée » ; badge Familles
Bescherelle Conjugaison (com.diagonal.bcw_bescherellecwebview) 1.0.0 (εxodus : 0 pisteur, 03/01/2026) Aucun SDK : l'application ouvre https://conjugaison-app.bescherelle.com/ (§ 3.5) CHECK_LICENSE « Aucune donnée collectée » ; fiche : « Contient des annonces »
BOOSTIN, KLAPSO learning (com.beedeezboostin, com.beedeezklapsolearning) 12.56.21 Amplitude, Sentry ; la signature AdMob d'εxodus vient de neuf noms d'interface de l'API Google IMA, sans classe d'implémentation : pas de SDK publicitaire embarqué (§ 3.1) 23 permissions dont READ_CALENDAR, WRITE_CALENDAR, DETECT_SCREEN_CAPTURE, RECORD_VIDEO Aucun partage ; collecte : agenda, interactions, historique de recherche, contenu, photos et vidéos, plantages (données analytiques) ; pour BOOSTIN, la déclaration ajoute « Contacts », nom, e-mail et ID utilisateur (relevé du 16/10/2026)

Constats :

  • Les 18 applications Jocatop, toutes pour l'école primaire, ne portent aucun kit tiers, en catégorie Enfants chez Apple ou non ; neuf demandent le micro et l'état du téléphone (READ_PHONE_STATE), Contes numériques compris, et une dixième, Lecthème+ Texte, le micro seul ; leur fiche ne commente pas ces permissions. Zoum déclare un « ID de l'appareil » collecté à des fins d'analyse sans kit pour le faire : la déclaration annonce plus que le code ne montre (collecte possible par le serveur de l'éditeur, non vérifiable statiquement).
  • Accès éditions concentre l'écart le plus net : badge Familles, déclaration réduite à une adresse e-mail facultative, mais Firebase Analytics, Sentry, permission AD_ID et localisation précise dans le paquet. La Families Policy interdit la permission AD_ID à une application qui ne vise que des enfants et toute localisation précise (Z21 § 3.4) ; le public cible exact déclaré par l'éditeur n'est pas public (Z21 § 5). L'application du CNED montre un écart de même forme (Firebase Analytics, AD_ID, badge Familles, déclaration limitée aux fichiers et plantages, § 3.3).
  • Aucune des applications d'activités ne porte de SDK publicitaire : les signatures AdMob d'Accès EPS, de BOOSTIN et de KLAPSO learning sont des noms d'interface de l'API Google IMA cités par le lecteur vidéo (§ 3.1).
  • Le Robert Ortho et MEDIA+ montrent qu'un éditeur peut sortir les kits : Le Robert Ortho portait Adjust, Google Analytics et Tag Manager en 1.0.13 et n'en porte plus en 1.1.1 ; MEDIA+ n'en porte dans aucune des deux versions.

3.5 Les sites : collecte bornée du HTML et des en-têtes (12/10/2026, 09 h 01)

« Chargé d'office » : le script est dans un bloc <script> sans type ou de type text/javascript, exécuté dès l'analyse de la page, avant toute réponse au bandeau. « Réservé au consentement » : bloc type="didomi/javascript" que Didomi n'exécute qu'après accord pour le fournisseur nommé (data-vendor).

Page Gestionnaire de consentement Chargé d'office Réservé au consentement Cookies posés par le serveur Domaines tiers (EasyPrivacy ; Disconnect)
mesmanuels.fr, accueil et /acces-libre/9782017329022 Didomi non établi : « didomi » n'apparaît que dans des règles CSS (#didomi-host…), aucun chargeur privacy-center.org dans le HTML ; le chargeur vient d'un script (conteneur GTM ou bundle Nuxt) qui ne se lit qu'à l'exécution ; au navigateur le 16/10/2026, sdk.privacy-center.org est appelé et le bandeau s'affiche (§ 3.5 bis), et /acces-libre/9782017329022 répond « Cette page est introuvable » Google Tag Manager GTM-WQZ265F (<script src="//www.googletagmanager.com/gtm.js?id=GTM-WQZ265F">, sans type) ; /js/myfeelback.js — Aucun www.googletagmanager.com (EasyPrivacy) ; cdn.jsdelivr.net, fonts.googleapis.com (Disconnect : Content)
hg-college.nathan.fr (accueil, ouvrage), transmath-college.nathan.fr Didomi Google Tag Manager GTM-MNXNC5M Google Analytics « analytics.js » UA-74210848-4 et -6 (data-vendor="c:google-4TYR6RNr", anonymizeIp, cookie de 32 572 800 s, soit 377 jours) PHPSESSID (session) www.googletagmanager.com (EasyPrivacy) ; sdk.privacy-center.org (Disconnect : ConsentManagers, Didomi)
college.editions-bordas.fr (accueil, ouvrage), myriade.editions-bordas.fr Didomi Google Tag Manager GTM-MNXNC5M (le même conteneur que Nathan) Google Analytics UA-97191632-1 et UA-85182391-1 PHPSESSID (session) idem
ressources.eleve.magnard.fr (accueil, ouvrage 9782210107854) Aucun Matomo, site 8, https://matomo.pole-education.fr/matomo.php, setDoNotTrack ; conteneur Matomo Tag Manager container_Z83Nxo2C.js, qui peut déclencher d'autres balises — Aucun matomo.pole-education.fr (aucune des deux listes)
hatier-clic.fr Aucun : « didomi » n'y figure que dans un commentaire HTML (<!-- id="didomi-cookies" -->) Matomo Cloud, site 15, https://hatiermarketing.matomo.cloud/, setDoNotTrack — Aucun hatiermarketing.matomo.cloud (EasyPrivacy : matomo.cloud ; Disconnect : Advertising, InnoCraft)
www.lelivrescolaire.fr (accueil, Webflow) Didomi Microsoft Clarity (projet o454ybqa1k), avec, à l'événement load, window.clarity("set","user_type",…) puis window.clarity('consent') pour tout visiteur, anonyme compris, sans condition liée à Didomi ; Piano Analytics (https://tag.aticdn.net/piano-analytics.js, collecte sur data.lelivrescolaire.fr) Meta Pixel 1068176371381027 (data-vendor="metaads-xKecBpgc") _cfuvid (session, Cloudflare) www.clarity.ms (EasyPrivacy ; Disconnect : Analytics, Microsoft) ; tag.aticdn.net (EasyPrivacy ; Disconnect : Analytics, Piano) ; connect.facebook.net (Disconnect : Social, Meta) ; neuf domaines de contenu (CDN, glitch.me, esm.town)
www.lelivrescolaire.fr/manuels/mathematiques-6eme-2025 (manuel gratuit) Aucun dans le HTML Piano Analytics (site 620185, collectDomain: 'https://data.lelivrescolaire.fr') — AWSALBTG, AWSALBTGCORS (7 jours, répartition de charge) assets.lls.fr seulement
www.schoolmouv.fr (accueil, /6eme/francais/grammaire) Axeptio, présent seulement par le lien openAxeptioCookies() Aucune balise <script> GTM dans le HTML : GTM-T47Q33C2 est une configuration du rendu Next.js ("isEnabled":true, "isServerSide":true, environnement env-24) que le JavaScript applique ; son chargement avant le bandeau ne s'établit pas sans exécution — cid (identifiant, Max-Age=31536000, un an) www.googletagmanager.com (EasyPrivacy)
www.kartable.fr (accueil, cours de seconde) Aucun dans le HTML (application monopage) Rien de lisible sans exécution — Aucun preconnect vers www.googletagmanager.com et connect.facebook.net
www.belin-education.com Sirdata (choices.consentframework.com) Google Tag Manager GTM-TFT98Q9 — Aucun : les en-têtes connectionStatus et connectedUserCertification suppriment ces cookies (=deleted, Max-Age=0) www.googletagmanager.com (EasyPrivacy)
www.enseignants.hachette-education.com Didomi Rien d'exécuté dans le HTML (GTM-5TDB2HL dans un bloc application/json) — Aucun Liens et données de 22 domaines, aucun script de mesure chargé d'office
conjugaison-app.bescherelle.com (vue web de l'application Bescherelle Conjugaison) Didomi Piano Analytics (tag.aticdn.net, collecte logs1412.xiti.com, site 647892) ; trois paires de scripts de la régie The Moneytizer (//ads.themoneytizer.com/s/gen.js?type=1, type=28, type=6, chacun avec requestform.js?siteId=99977…) — Aucun ads.themoneytizer.com (Disconnect : Advertising, Azerion) ; tag.aticdn.net (EasyPrivacy)
www.libmanuels.fr ; manuel.sesamath.net (étalon) Aucun Rien de tiers ; Sésamath charge ssl.sesamath.net/…/bandeau.min.js, sur le domaine de l'association — Aucun Aucun

Pages relues le 16/10/2026 par la contre-vérification (15 pages, ~/.cache/manuels-vague8/Q25-verif/web/) ; mesmanuels.fr y renvoie 502 (pare-feu « HL WAAP ») et sa page brute du 12/10 a été relue.

Ce que la lecture du code de Lelivrescolaire.fr ajoute (bundle client-j3z6zx7b.js, enregistré le 12/10/2026 ; le 16/10, le bundle porte un autre nom, client-CxiVPC_B.js, que le site ne sert pas au client scripté) :

  • la fonction qui initialise Clarity s'arrête quand l'utilisateur n'est pas connecté ou est un utilisateur du GAR (forbidAccessToGarUser:o=!0, puis i=o&&(!e||e?.isGarUser) et if(i)return) ; pour un utilisateur connecté hors GAR, elle appelle UH.init(t),UH.consent(!0) — le signal de consentement de Clarity est envoyé à « vrai » par le code — puis étiquette la session avec user_type (« teacher » ou « student ») et user_plan ;
  • un bandeau du lecteur affiche « Lors de votre navigation sur ce site, des cookies nécessaires au bon fonctionnement et exemptés de consentement sont déposés » ; le code servi ne règle aucun mode de confidentialité de Piano, dont la configuration par défaut lue dans piano-analytics.esm.js est privacyDefaultMode:"optin", avec une durée de vie du visiteur de 395 jours (storageLifetimeVisitor:395). Le mode « exempt » existe dans la bibliothèque. Au navigateur le 16/10/2026, le cookie pa_privacy du manuel gratuit vaut « optin » pour un premier visiteur et reste « optin » après un refus Didomi donné sur l'accueil (Q31 § 1.6) : le mode que le site enregistre chez le visiteur est « optin », pas « exempt » ;
  • le même relevé trouve Clarity (cookies _clck, _clsk, appels à clarity.ms) sur la page du manuel gratuit pour un visiteur non connecté, avant toute réponse et après refus (Q31 § 1.6) ; le bundle servi ce jour-là n'est pas celui lu ci-dessus.

Constats :

  • Tous les sites d'éditeurs lus chargent une mesure d'audience d'office, sauf l'espace enseignants d'Hachette : Google Tag Manager en balise <script> (mesmanuels.fr, sites compagnons Nathan et Bordas, Belin), Matomo (Magnard, avec un conteneur Matomo Tag Manager ; Hatier), Piano et Clarity (Lelivrescolaire.fr). Chez SchoolMouv, GTM est déclaré dans la configuration du rendu Next.js et appliqué par le JavaScript : son chargement avant le bandeau ne se lit pas dans le HTML. Google Tag Manager n'écrit pas de cookie par lui-même ; ce qu'il déclenche dépend du conteneur, qui ne se lit qu'à l'exécution. Les marqueurs Google Analytics des sites compagnons Nathan et Bordas, eux, sont subordonnés au consentement Didomi. À l'exécution, le 16/10/2026, les conteneurs de mesmanuels.fr, de Nathan, de Bordas et de Belin ne déclenchent aucune requête d'analytique ni de publicité vue, avant toute réponse comme après refus ; celui de SchoolMouv est appelé avant toute réponse au bandeau, avec AdRoll (§ 3.5 bis).
  • Le manuel gratuit de Lelivrescolaire.fr, les ressources élève de Magnard et hatier-clic.fr mesurent sans bandeau : Piano chez le premier, Matomo auto-hébergé chez Magnard, Matomo Cloud chez Hatier, dont la page ne charge aucun gestionnaire de consentement. Ces outils peuvent entrer dans l'exemption de la CNIL s'ils sont configurés pour (§ 3.7) ; le HTML ne montre ni l'anonymisation ni la durée des cookies. Au navigateur le 16/10/2026, le manuel gratuit de Lelivrescolaire.fr charge aussi Microsoft Clarity, avec ses cookies, sous un simple encart d'information sur des cookies « exemptés de consentement », et Piano y est en mode « optin » ; Magnard n'a ni bandeau ni mention des cookies dans la page ; hatier-clic.fr dépose les cookies Matomo _pk_id et _pk_ses (§ 3.5 bis).
  • Microsoft Clarity est chargé d'office sur l'accueil de Lelivrescolaire.fr, et le site lui envoie le consentement pour tout visiteur. Microsoft écrit que depuis le 31/10/2025 Clarity « does not place cookies in the EEA, UK, or Switzerland unless valid consent is received » ; le script d'accueil appelle, à l'événement load, window.clarity('consent') pour tout visiteur, anonyme compris, sans condition liée à Didomi : le signal de consentement de Clarity est donc envoyé par le site dès l'accueil, et pas seulement dans l'appli web du lecteur pour les comptes hors GAR. Au navigateur le 16/10/2026, Clarity dépose ses cookies _clck et _clsk avant toute réponse au bandeau Didomi ; il ne figure pas dans la liste de partenaires de Didomi et continue après refus, sur l'accueil (3 requêtes) comme sur le manuel gratuit (4 requêtes) (§ 3.5 bis).
  • La seule régie publicitaire trouvée est sur le site qu'affiche l'application Bescherelle Conjugaison (The Moneytizer), chargée sans attribut de consentement, pour une application qui déclare « aucune donnée collectée » sur Google Play. Au navigateur le 16/10/2026, cette régie et ses partenaires sont appelés avant toute réponse et continuent après un refus enregistré (§ 3.5 bis). Elle n'est plus la seule trouvée : Kartable et SchoolMouv appellent des services publicitaires dès l'arrivée (§ 3.5 bis).
  • Le seul cookie d'identifiant posé par le serveur avant tout consentement est celui de SchoolMouv (cid, un an) ; les en-têtes Set-Cookie de Belin suppriment des cookies au lieu d'en poser. Les cookies déposés par les scripts, relevés au navigateur, sont au § 3.5 bis.

3.5 bis Les sites au navigateur : premier visiteur, puis refus (16/10/2026)

Relevé fait dans Chrome le 16/10/2026 (Q31 § 1.6), avec l'accord de PF pour effacer les cookies des 11 sites. Sur chaque site : effacement par script de tous les cookies lisibles et du stockage local, contrôle que plus aucun cookie ne reste, rechargement comme premier visiteur, attente de 8 secondes, relevé des cookies lisibles par script, des hôtes tiers appelés (Performance API) et du bandeau ; puis réponse « refuser » quand le bandeau l'offre, rechargement, même relevé. La méthode ne voit pas les cookies HttpOnly ni les cookies déposés sous un domaine tiers ; elle établit des appels et des dépôts, pas l'usage que les partenaires font des données. Quand la capture d'écran a échoué (rendu figé), le bandeau a été contrôlé par script (texte de la page, éléments fixes, iframes, shadow DOM, API de consentement). La page mesmanuels.fr/acces-libre/9782017329022 répondant « Cette page est introuvable », le relevé de mesmanuels.fr porte sur cette page puis sur l'accueil (Q31 § 2).

Site (page) Bandeau au premier niveau Avant toute réponse Après refus
lelivrescolaire.fr, manuel gratuit de mathématiques 6e Aucun bouton accepter/refuser ; encart d'information « cookies nécessaires […] exemptés de consentement » Microsoft Clarity (cookies _clck, _clsk ; 6 requêtes) ; Piano en pa_privacy = "optin" Pas de refus possible sur cette page
lelivrescolaire.fr, accueil Didomi : « Refuser », « Accepter & Fermer », « En savoir plus » Clarity (5 requêtes, cookies) ; Piano « optin » et tag.aticdn.net Refus enregistré (Piano hybride seul activé ; Google et Wisepops refusés), mais Clarity continue (cookies et 3 à 4 requêtes, accueil et manuel) ; Piano reste « optin »
lumni.fr, accueil Didomi : « Continuer sans accepter », « Paramétrer », « Tout Accepter » Piano (tag.aticdn.net 4, pa-cd.com, xiti.com) ; NPAW (mesure vidéo) ; Akamai mPulse ; nmrodam.com ; maxwell.france.tv Piano passe en pa_privacy = "exempt" ; xiti.com n'est plus appelé ; NPAW, mPulse, nmrodam.com restent
mesmanuels.fr (Hachette Éducation, Hatier, Didier, Foucher, Istra) « En poursuivant votre navigation […] vous acceptez » ; « EN SAVOIR PLUS », « J'ACCEPTE » ; aucun refus au premier niveau ; au second niveau, 4 finalités sur 7 précochées « Accepter », pas de « Tout refuser » Google Tag Manager chargé ; aucune requête d'analytique vue Refus enregistré (0 partenaire activé) ; gtm.js toujours chargé, aucune analytique vue
hg-college.nathan.fr (site compagnon Nathan) Didomi : « Continuer sans accepter », « En savoir plus », « Accepter » Google Tag Manager seul Idem
college.editions-bordas.fr (ressources élève Bordas) Didomi : « Continuer sans accepter », « En savoir plus », « Accepter & Fermer » Google Tag Manager seul Idem
ressources.eleve.magnard.fr (ressources élève Magnard) Aucun bandeau ni mention des cookies dans la page Matomo du pôle éducation (matomo.pole-education.fr, 4 requêtes) ; aucun cookie lisible Pas de bandeau
hatier-clic.fr, accueil Aucun bandeau ; lien « Cookies » en pied de page Matomo Cloud « hatiermarketing » (3 requêtes), cookies _pk_id, _pk_ses Pas de bandeau
schoolmouv.fr, leçon de grammaire de 6e Axeptio : « Fermer sans accepter les cookies », « Je choisis », « Accepter » Consentement non donné ($completed: false, aucun partenaire autorisé), mais AdRoll (reciblage publicitaire) appelé 24 fois et ses cookies __adroll_fpc, __ar_v4 déposés ; GTM, Plausible, GrowthBook, Unbounce AdRoll n'est plus appelé, mais ses deux cookies restent ; GTM, Plausible, Unbounce restent
kartable.fr, cours de mathématiques de 2de Aucun bandeau (aucune mention des cookies dans la page, aucune API de consentement) Google Analytics 4, Google Ads (_gcl_au, DoubleClick), Microsoft Advertising (bat.bing.com 9, _uetsid, _uetvid), Criteo (cto_bundle, 3 hôtes), pixel Meta (connect.facebook.net, facebook.com) Pas de bandeau
belin-education.com, accueil enseignants Sirdata : « Continuer sans accepter », « Paramétrer vos choix », « Tout accepter » Plateforme de consentement et GTM seuls Idem ; aucune analytique ni publicité vue
conjugaison-app.bescherelle.com (Hatier) Didomi : « Continuer sans accepter », « Paramétrer », « J'accepte » Régie complète : The Moneytizer, Smart AdServer, Criteo, Teads, Quantcast, ID5, First-ID (cookies firstid), Confiant, pbxai, adleadevent, affec.tv ; Piano « optin » Refus enregistré (0 finalité sur 4, 0 partenaire sur 11), mais les appels de régie continuent et s'étendent (AppNexus, Smart AdServer en synchronisation) ; cookies First-ID et Piano « optin » restent

Constats, à la date du 16/10/2026, pour un premier visiteur :

  • Deux sites déposent des traceurs publicitaires avant tout consentement : Kartable, qui n'a aucun bandeau (Google Ads, Microsoft Advertising, Criteo, pixel Meta, Google Analytics 4), et SchoolMouv (AdRoll, consentement non donné ; ses deux cookies restent après refus).
  • Lelivrescolaire.fr charge un service d'analyse comportementale qui ne figure pas dans sa liste de partenaires et qui continue après refus : Microsoft Clarity, y compris sur le manuel gratuit en accès libre.
  • Le conjugueur Bescherelle continue d'appeler sa régie après un refus enregistré. La chaîne de consentement transmet ce refus aux partenaires, et les appels peuvent servir une publicité non personnalisée : le profilage n'est pas établi par ce relevé.
  • mesmanuels.fr propose un consentement par poursuite de navigation, sans refus au premier niveau, avec des finalités précochées au second.
  • Nathan, Bordas et Belin ne chargent que leur outil de consentement et Google Tag Manager, avant toute réponse comme après refus. Lumni, après refus, passe Piano en mode « exempt » et garde ses mesures d'audience vidéo et de performance (NPAW, mPulse) et nmrodam.com.
  • Magnard (ressources élève) et hatier-clic n'ont pas de bandeau et utilisent Matomo ; la configuration d'exemption de ces Matomo n'est pas visible par cette méthode.
  • Le relevé porte sur les sites web ; les applications (§ 3.1 à § 3.4) ne sont pas mesurées par cette méthode.

3.6 Les règles du contrat GAR qui s'appliquent à ces mesures

  • Annexe 3 § 1.2 (p. 23-24), « Absence de demande de DCP et principes associés » : « absence de toute collecte de données par l'application en dehors des DCP fournies par le GAR et justifiées dans la déclaration de conformité » ; « absence de toute transmission de données à des tiers quels qu'ils soient, que ce soit par l'éditeur, le DTR, le DCR ou un de leurs partenaires ou sous-traitants, non concernés par l'exécution du service » ; « absence de tout lien aux réseaux sociaux (sous forme d'icône ou autre) sur l'ensemble de la ressource, à l'exception des ressources à destination des seuls enseignants ».
  • Annexe 3 § 2.2 (p. 26-27), éléments de la déclaration de conformité : « description des éventuels outils de traçage et/ou de mesure d'audience utilisés au sein de la ressource. L'éditeur s'engage à n'utiliser que des solutions exemptées de consentement (pour les usages scolaires) et respectant les recommandations de la CNIL et les termes du contrat GAR ».
  • Annexe 4 (p. 35) : « Données conservées via des cookies : durée de conservation limitée à 13 mois au maximum ».
  • Annexe 5 (p. 43-45) : les contenus multimédias intégrés doivent être « dépourvus de tout traceur publicitaire et ne déposant que des traceurs pour lesquels il n'est pas nécessaire de recueillir le consentement » ; l'éditeur doit « vérifier que l'intégration de ces contenus externes ne déclenche aucun dépôt ou lecture de traceur, en activant, par exemple, un mode de confidentialité proposé par le fournisseur tiers » ; « À défaut de telles garanties, l'usage de contenus multimédias externes intégrés […] est réputé non conforme » ; « En cas de détection de contenu non acceptable, le ministère se réserve le droit de bloquer l'accès à la ressource ». L'annexe 5 porte deux formules : « exempts de tout traceur publicitaire » dans les recommandations de la CNIL qu'elle reprend (p. 43), « dépourvus de tout traceur publicitaire » dans les attendus du ministère ; elles coexistent dans le texte.
  • Annexe 4 § 10 : « Le responsable de traitement se réserve le droit d'effectuer, à sa seule discrétion, tout audit du sous-traitant » ; le texte ne prévoit pas de contrôle continu des ressources, et les déclarations de conformité par ressource n'étant pas publiées, le contrôle effectivement mené n'est pas établi.

Ces règles visent la ressource servie par le GAR, pas les sites publics des éditeurs ni leurs ventes hors GAR. Le code du lecteur de Lelivrescolaire.fr montre une séparation explicite : Clarity n'y est pas lancé pour un utilisateur du GAR (§ 3.5) ; l'accueil public du site, qui n'est pas la ressource servie par le GAR, envoie en revanche le consentement à Clarity pour tout visiteur. Les autres lecteurs servent le même paquet aux utilisateurs du GAR et aux autres (aucun paquet distinct trouvé sur Google Play) ; si leurs kits tiers sont désactivés pour les sessions GAR, cela ne se voit pas statiquement.

3.7 Ce que dit la CNIL de ces kits

  • Mesure d'audience exemptée (04/07/2025) : traceurs « utilisés pour une finalité strictement limitée à la seule mesure de l'audience […] pour le compte exclusif de l'éditeur », servant « à produire des données statistiques anonymes uniquement », sans « recoupement des données avec d'autres traitements » ni transmission « à des tiers » de données non anonymes ; durée de vie de treize mois « non prorogée automatiquement », conservation de vingt-cinq mois. La page ne publie plus de liste de solutions : « La CNIL met à disposition des fournisseurs […] un outil d'auto-évaluation » ; « il ne vous est pas possible de la présenter comme "certifiée" ou "validée par la CNIL" ». Elle vise expressément « un site web ou […] une application mobile ».
  • Lignes directrices et recommandation du 17/09/2020 (page du 29/09/2020) : sans acte positif, « aucun traceur non essentiel au fonctionnement du service ne pourra être déposé ».
  • Recommandation « applications mobiles » (08/04/2025), § 6.3 : « toute opération de lecture et/ou écriture au sens de l'article 82 de la loi Informatique et Libertés qui nécessite un consentement qui serait effectuée au premier lancement de l'application est à proscrire » ; « Ces recommandations s'appliquent également aux SDK fournis par les fournisseurs d'OS » ; « Point d'attention […] effet "poupées russes" : lorsque l'intégration d'un SDK implique celle d'autres SDK » ; liste de vérifications 2.2.2 : « Tout SDK mis en œuvre est analysé […] pour identifier s'il procède à des traitements de données personnelles » ; 1.2.6 : « Des mesures additionnelles sont appliquées sur les données des personnes mineures ». L'annonce du 24/09/2024 prévoit « dès 2025 » « une campagne spécifique de contrôles » : c'est une intention annoncée ; aucun contrôle visant un éditeur scolaire n'a été trouvé (§ 5). Ces textes sont la doctrine et les recommandations de la CNIL, non des règlements.
  • Fiche « outils collaboratifs en ligne » du 24/08/2026 (V21 § 3) : traceurs publicitaires « en principe interdits, au regard du principe de neutralité du service public de l'éducation, incluant la neutralité commerciale ».

Rattachement des kits mesurés à ces règles (lecture du rapport, aucune autorité n'a qualifié ces applications) : Matomo, Piano et AT Internet sont des outils qui peuvent être configurés pour l'exemption ; Firebase Analytics, Microsoft Clarity, Amplitude, AppsFlyer et les kits Facebook ne s'y rangent pas tels quels, parce que leur fournisseur réutilise des données ou suit l'utilisateur entre applications, ou parce qu'il exige lui-même un consentement (Clarity) ; les rapports de plantage (Crashlytics, Sentry, Bugsnag) relèvent d'une analyse au cas par cas (transmission à un tiers, données d'appareil).

4. Ce que ce sujet apprend pour une solution qui édite des manuels et les met à disposition

  1. Aucun des lecteurs de manuels actuels n'est sans kit tiers, et un concurrent peut le vérifier en une journée. Les dix lecteurs et compléments Android embarquent au moins un kit de mesure ou de rapport de plantage, dans la version analysée de chacun (présence, pas activation ; pour Biblio Exos, module d'analyse du SDK web Firebase dont l'activation n'est pas établie ; iOS non mesuré) (§ 3.2) ; Lelivrescolaire.fr y ajoute un enregistreur de sessions. Le même contrôle, avec les outils publics employés ici (rapports εxodus, liste de signatures ouverte, paquets du magasin), peut être fait sur l'application d'un entrant par un acheteur, un journaliste ou la CNIL ; il doit alors distinguer les classes définies des noms seulement cités, sous peine de faux positifs (OneTrust, AdMob, HMS, identifiants publicitaires, § 3.1). Un lecteur sans aucun kit tiers, avec une mesure d'audience auto-hébergée configurée pour l'exemption, est un niveau que personne ne tient parmi les lecteurs mesurés, et que Kalulu (public) et les 18 applications Jocatop (privées, primaire) montrent tenable ; une application publique ne le garantit pas d'elle-même : celle du CNED embarque Firebase Analytics et la bibliothèque de l'identifiant publicitaire. Human Rights Watch avait déjà trouvé en 2021 trois produits publics français sans aucune technologie de suivi (Jules, MaSpéMaths, Ma classe à la maison) et deux qui transmettaient des données à des sociétés publicitaires (Deutsch für Schulen, English for Schools). Sources : § 3.1 à § 3.4.
  2. Les déclarations des magasins ne sont pas un contrôle : des écarts nets sont mesurés. FLEX Manuel déclare « aucune donnée collectée » chez Google avec trois kits tiers (Crashlytics, OneSignal, Matomo) ; Lib Manuels déclare « aucune donnée collectée » avec Sentry et Matomo ; Accès éditions déclare une adresse e-mail facultative avec Firebase Analytics, AD_ID et localisation précise sous badge Familles ; l'application du CNED déclare seulement des fichiers et des journaux de plantage avec Firebase Analytics et AD_ID sous badge Familles ; l'application Bescherelle Conjugaison déclare « aucune donnée collectée » en affichant une régie publicitaire, que le site continue d'appeler après un refus enregistré (§ 3.5 bis). Ces écarts opposent un kit embarqué à une déclaration, pas une collecte mesurée, et aucune autorité ne les a qualifiés. La règle qui en découle pour une solution : établir la déclaration à partir de l'inventaire du paquet compilé (kits, permissions, domaines appelés), la refaire à chaque version (les kits changent d'une version à l'autre chez cinq lecteurs et compléments, § 3.2), et la tenir identique dans les deux magasins (Z21 § 3.7). Sources : § 3.2, § 3.3, § 3.4, § 3.5, § 3.5 bis.
  3. Le contrat GAR fixe le niveau sans prévoir de contrôle continu ; la mesure sert donc aussi d'argument de vente. L'annexe 3 interdit toute transmission à des tiers non concernés par le service et n'admet que des outils de mesure exemptés de consentement ; l'annexe 5 fait vérifier par l'éditeur qu'aucun contenu intégré ne lit ni n'écrit de traceur ; le ministère se réserve des audits à sa discrétion (annexe 4) et le blocage d'une ressource (annexe 5), mais les déclarations de conformité n'étant pas publiées, le contrôle effectivement mené n'est pas établi (§ 3.6). Un seul éditeur montre dans son code une séparation entre sessions GAR et hors GAR (Lelivrescolaire.fr, pour Clarity). Une solution qui sert la même application dans le GAR et hors du GAR doit soit n'embarquer que ce que le GAR admet, soit prouver la désactivation par session ; la première voie est la seule qui se vérifie sur le paquet publié. Sources : § 3.5, § 3.6 ; 04-formats § 4 ; 10-vague5 § 6.6.
  4. Hors GAR, l'existant mesure les mineurs d'office sur ses pages gratuites. Le manuel gratuit de Lelivrescolaire.fr (Piano, sans bandeau, en mode « optin » relevé au navigateur, avec une durée de vie du visiteur de 395 jours par défaut dans la bibliothèque lue le 12/10/2026, le code servi ne réglant pas cette durée, et Microsoft Clarity avec ses cookies), les ressources élève de Magnard (Matomo et un conteneur Matomo Tag Manager, sans bandeau) et hatier-clic.fr (Matomo Cloud, sans gestionnaire de consentement, cookies _pk_id et _pk_ses) mesurent d'office (la configuration de ces Matomo n'étant pas visible, leur conformité à l'exemption de la CNIL n'est ni établie ni infirmée) ; l'accueil de Lelivrescolaire.fr envoie le consentement à Clarity pour tout visiteur, et Clarity continue après un refus ; mesmanuels.fr, les sites compagnons Nathan et Bordas et Belin chargent Google Tag Manager par une balise <script> exécutée avant le bandeau, sans requête d'analytique vue au navigateur ; SchoolMouv pose un identifiant d'un an par le serveur et appelle AdRoll, régie de reciblage, avant toute réponse au bandeau ; Kartable, sans bandeau, dépose dès l'arrivée les cookies de Google Ads, Microsoft Advertising et Criteo et appelle le pixel Meta (§ 3.5 bis). Pour une solution qui publie un accès libre élève (le modèle de mesmanuels.fr et de Lelivrescolaire.fr, 01-existant), la page d'élève sans aucun script tiers chargé d'office et la mesure exemptée configurée et documentée (durée de 13 mois, 25 mois de conservation) sont le niveau que le contrat GAR exige de la ressource qu'il sert (il ne vise pas ces pages publiques, § 3.6) et que l'exemption de la CNIL permet de tenir sans bandeau (§ 3.7), et qu'aucun des sites d'éditeurs lus ne tient entièrement ; Sésamath et libmanuels.fr ne chargent rien. Sources : § 3.5, § 3.5 bis, § 3.7.
  5. Les permissions se lisent aussi, et un acheteur public au moins les regarde. Les écoles de Paris retiennent « l'absence de publicité et les autorisations demandées » pour sélectionner une application (12-vague7 § 3.2), un cas qui ne se généralise pas aux autres collectivités : FLEX Manuel demande 26 permissions, SchoolMouv 22 (§ 3.3), BOOSTIN et KLAPSO 23 (agenda, détection de capture d'écran ; sans SDK publicitaire, leur signature AdMob étant un faux positif, § 3.1) ; neuf applications Jocatop demandent le micro et l'état du téléphone, une dixième le micro seul ; Bordas FlashPage et Nathan Live ne demandent plus la localisation précise qu'elles demandaient en 2018-2020. Une application de manuel qui se limite à INTERNET, l'état du réseau et, au besoin, le micro pour les langues, se distingue sur ce critère lisible par un groupe de travail de collectivité. Sources : § 3.2, § 3.3, § 3.4.
  6. Les identifiants publicitaires viennent souvent d'un kit de mesure, pas d'une intention publicitaire. Les permissions ACCESS_ADSERVICES de Bordas FlashPage, Nathan Live, Accès éditions et de l'application du CNED accompagnent Firebase Analytics, qui les embarque. AT Internet et Piano, dans Biblio Manuels et SOLAIRE, cherchent l'identifiant publicitaire de Google et de Huawei, mais les bibliothèques qui le fournissent ne sont pas dans le paquet : l'appel est prévu par le kit et reste sans effet tant que l'application n'embarque pas la bibliothèque. Sous la Families Policy, ces identifiants ne doivent pas être transmis pour un enfant ou un utilisateur d'âge inconnu (Z21 § 3.4) ; sous la recommandation CNIL, aucune lecture soumise au consentement au premier lancement. Le choix d'un kit de mesure qui embarque lui-même ces permissions, comme Firebase Analytics, engage donc la conformité « enfants » de l'application entière (effet « poupées russes » de la CNIL). Sources : § 3.1 à § 3.4, § 3.7.
  7. εxodus seul ne suffit pas à établir l'absence de traceurs. Sa liste ignore Piano Analytics, Microsoft Clarity, le paquet actuel de Braze et RevenueCat, et ses rapports datent de 2018 à 2025 pour huit des dix lecteurs ; il n'a aucun rapport pour SOLAIRE ni Biblio Exos. À l'inverse, ses signatures par préfixe signalent des kits absents (AdMob pour l'API IMA d'un lecteur vidéo dans Accès EPS, BOOSTIN, KLAPSO et l'application du CNED ; HMS pour les noms cités par OneSignal dans FLEX Manuel). Pour tenir le niveau qu'elle affiche, une solution doit faire sa propre analyse de chaque version publiée (classes définies, domaines, et mesure du trafic à l'exécution), pas s'en remettre à un rapport tiers. Sources : § 3.1, § 3.2, § 3.3.

5. Ce que la recherche n'a pas pu établir

  • Le trafic réel des applications à l'exécution (quels kits s'activent, quels identifiants partent, avant ou après consentement, pour un compte GAR et pour un compte direct) : il faut lancer chaque application sur un appareil ou un émulateur Android derrière un proxy d'interception, avec des comptes de démonstration. Les comptes des lecteurs sont déjà demandés dans docs/demarches/03-comptes.md § 2 (Édulib, CNS, Hachette) ; la mesure elle-même n'est pas faite.
  • Les applications iOS : les paquets IPA ne se lisent pas sans appareil ; l'écart entre les étiquettes d'Apple et le code (Bordas FlashPage « Données non collectées » chez Apple, Firebase dans sa version Android) reste à mesurer.
  • Les dernières versions de Manuel max (1.16.2), FLEX Manuel (2.4.2) et Bordas FlashPage (5.1.2), absentes du miroir : leurs kits peuvent avoir changé.
  • Les cookies déposés par les sites une fois les scripts exécutés : relevés au navigateur le 16/10/2026 sur les 11 sites (Q31 § 1.6), pour un premier visiteur avant toute réponse puis après refus, aux adresses https://www.lumni.fr/ ; https://mesmanuels.fr/acces-libre/9782017329022 (« Cette page est introuvable », relevé fait sur cette page puis sur l'accueil, Q31 § 2) ; https://hg-college.nathan.fr/9782091716534 ; https://college.editions-bordas.fr/9782047326671 ; https://ressources.eleve.magnard.fr/9782210107854 ; https://www.hatier-clic.fr/ ; https://www.lelivrescolaire.fr/ et https://www.lelivrescolaire.fr/manuels/mathematiques-6eme-2025 ; https://www.schoolmouv.fr/6eme/francais/grammaire ; https://www.kartable.fr/ressources/mathematiques/cours/manipuler-les-nombres-reels/54476 ; https://www.belin-education.com/ ; https://conjugaison-app.bescherelle.com/ (résultats au § 3.5 bis). Restent ouverts : les cookies HttpOnly et ceux déposés sous un domaine tiers, que la méthode ne voit pas ; ce que les conteneurs GTM-WQZ265F, GTM-MNXNC5M, GTM-T47Q33C2 et GTM-TFT98Q9 déclenchent après acceptation, le relevé n'ayant jamais accepté de bandeau ; l'usage que les partenaires de la régie Bescherelle font des appels maintenus après refus (publicité non personnalisée ou profilage), que le relevé n'établit pas.
  • Le mode de confidentialité de Piano dans SOLAIRE (exempt ou non) : il se règle aussi côté plateforme de collecte et ne se voit pas dans le code. Sur le manuel gratuit de Lelivrescolaire.fr, le cookie pa_privacy vaut « optin » avant toute réponse et après refus ; sur lumni.fr, il passe à « exempt » après refus (Q31 § 1.6 ; § 3.5, § 3.5 bis).
  • La configuration des Matomo d'Édulib, de Belin (Matomo Cloud), de Magnard et d'Hatier (anonymisation des adresses IP, durée des cookies, absence de recoupement) : à demander aux éditeurs ou à lire dans leur politique de cookies ; non lue ici. Le relevé au navigateur du 16/10/2026 (Q31 § 1.6) établit seulement que Magnard appelle son Matomo sans cookie lisible et qu'hatier-clic.fr dépose _pk_id et _pk_ses, sans bandeau dans les deux cas ; la configuration d'exemption n'est pas visible par cette méthode.
  • Les déclarations de conformité GAR des ressources (annexe 3 § 2.2), qui décrivent les outils de traçage de chaque ressource : non publiées ; à demander au ministère (DNE, bureau du GAR) par la demande de communication déjà prévue dans docs/demarches/ si elle couvre ces pièces, sinon à ajouter.
  • Le public cible déclaré par chaque éditeur dans la Play Console (enfants seulement ou mixte), qui décide si la permission AD_ID d'Accès éditions ou de Kartable est interdite : non public (Z21 § 5).
  • Les rapports εxodus de SOLAIRE et de Biblio Exos : aucun n'existe ; une analyse peut être demandée sur le site public d'εxodus (formulaire « analyser », démarche tournée vers l'extérieur, non faite).
  • La clé d'API d'εxodus : la recherche publique a suffi ici ; l'appel détaillé (/api/search/<id>/details, historique complet et horodatage des versions) demande une clé gratuite, obtenue par courriel à api@exodus-privacy.eu.org (nom d'utilisateur, adresse, description du projet, adresse IP fixe le cas échéant). Démarche à ajouter à docs/demarches/03-comptes.md ou à 09-demarches-vague7.md § 4, où elle ne figure pas ; elle établirait le suivi des versions des lecteurs dans le temps.
  • Une sanction ou un contrôle de la CNIL visant un éditeur scolaire pour ses traceurs : le jeu ouvert des sanctions de la CNIL ne donne que des agrégats annuels ; le jeu « Observatoire SansTrace » (export du 16/10/2026, 390 sanctions, dont 260 publiées par la CNIL et 130 sur Légifrance) nomme ou décrit les organismes, mais n'a pas de colonne de motif (la colonne categories porte « amende », « injonction »…) ; aucun de ses organismes n'est un éditeur de manuels ou de ressources scolaires ; les entrées du secteur de l'enseignement visent des établissements (« ETABLISSEMENT PUBLIC NATIONAL (ENSEIGNEMENT) », 23/05/2024, 6 000 € ; « ASSOCIATION GERANT UN LYCEE ET UN INTERNAT POUR LES JEUNES EN SITUATION DE DECROCHAGE SCOLAIRE », 11/09/2025, 7 000 € ; plusieurs universités), sans motif lisible dans le jeu. Aucune décision visant les traceurs d'un éditeur scolaire n'a été trouvée.
  • La signature AdMob de l'application du CNED dans la version 0.20.8 analysée par εxodus : le contrôle des classes définies est fait sur la version 1.3 (§ 3.3), pas sur la 0.20.8, dont le paquet n'a pas été récupéré.

6. Sources

εxodus

Paquets et magasins

Sites (collecte du 12/10/2026)

Sites (relevé au navigateur du 16/10/2026, etude/vague8/Q31-sources-lues-au-navigateur.md § 1.6 et Q31-donnees/notes-de-lecture.md)

Listes de traceurs

Textes

Rapports et études

Données ouvertes

Rapports de l'étude : Z21 § 3.4, § 3.5, § 3.7, § 5 ; Z22 § 3.2 ; V21 § 3, § 4.10 ; R15 § 3.2 ; X27 § 3.5 ; Y26 § 3.5 ; 04-formats § 4 ; 07-vague3 § 6.3 ; 10-vague5 § 6.6 ; 12-vague7 § 3.2, § 3.3, § 9, § 10.