# Grille d'auto-évaluation CNIL remplie

*Version 1.1 du 15 octobre 2026 · Equateur Analytics, sites en mode exempté (le mode par défaut).*

Ce document reprend, critère par critère, l'outil d'auto-évaluation publié par la CNIL en juillet 2025 pour la mise en œuvre d'une solution de mesure d'audience exemptée de consentement. Il dit ce qu'Equateur Analytics fait, ce qui reste à votre charge en tant qu'éditeur du site, et où nous avons fait un choix qui demande votre attention.

> **Projet à faire valider par un juriste avant publication.** Les intitulés des critères sont résumés. Le texte qui fait foi est celui de la CNIL : [Solutions pour la mesure d'audience](https://www.cnil.fr/fr/solutions-pour-la-mesure-daudience).

## Comment lire ce document

- La CNIL ne certifie aucun outil, et sa liste publique de solutions exemptées n'existe plus depuis le 1er janvier 2026. C'est à l'éditeur du site de documenter que sa mesure d'audience respecte les conditions de l'exemption. Cette grille vous y aide : vous pouvez la joindre à votre registre.
- L'exemption ne porte que sur le consentement (article 82 de la loi Informatique et Libertés). Le RGPD s'applique toujours. Vous êtes responsable du traitement, Equateur Analytics est votre sous-traitant.
- Chaque critère porte un statut : **Respecté**, **Respecté sous condition** (une action de votre part est nécessaire) ou **Écart argumenté** (un choix d'Equateur Analytics, expliqué, que nous soumettons à la validation d'un juriste).

| Objectif | Critères | Statut |
|---|---|---|
| 1. La seule finalité est la mesure d'audience | 1.1, 1.2 | Respecté |
| 2. Le prestataire agit comme sous-traitant | 2.1 à 2.4 | Respecté |
| 3. Pas de suivi en dehors de votre site | 3.1, 3.2, 3.3 | Respecté, avec un écart argumenté sur 3.1 (libellés de campagne) et des lectures sur l'appareil décrites en 3.2 |
| 4. Uniquement des statistiques anonymes | 4.1, 4.2, 4.3 | Respecté, avec une analyse d'anonymat à la place de l'arrondi |
| 5. Le droit d'opposition est respecté | 5.1, 5.2 | Respecté sous condition : le lien doit figurer dans votre politique |

## Objectif 1 · La seule finalité est la mesure d'audience

### 1.1 Les fonctions qui sortent du cadre peuvent être désactivées

**Ce que demande la grille.** Le prestataire donne les moyens de désactiver toute fonctionnalité qui dépasse la mesure d'audience.

**Ce que fait Equateur Analytics.** Chaque site a un mode, choisi dans ses réglages. En **mode exempté**, le mode par défaut, les fonctions incompatibles avec l'exemption ne sont pas désactivables par erreur : elles n'existent pas. Il n'y a ni export ligne à ligne, ni identifiant de visite, ni propriété d'événement libre. Le **mode consentement** les débloque, et il est réservé aux sites qui recueillent eux-mêmes le consentement de leurs visiteurs.

**Ce que vous faites.** Laissez votre site en mode exempté si vous ne demandez pas le consentement pour Equateur Analytics.

**Statut : Respecté.**

### 1.2 Les données collectées sont minimisées

**Ce que demande la grille.** (A) Les informations tirées des en-têtes HTTP (navigateur, système, appareil, écran) sont réduites. (B) La solution collecte au plus trois types d'événements : la présence sur une page, l'usage d'une fonctionnalité (clic, envoi de formulaire) et des mesures de temps.

**Ce que fait Equateur Analytics.**

- (A) Le navigateur et le système sont réduits à leur famille, sans numéro de version. Le script envoie la largeur de la fenêtre (`innerWidth`) ; le serveur la réduit aussitôt à trois catégories (mobile sous 600 pixels, tablette sous 1 024, ordinateur au-delà) et ne garde que la catégorie. La langue du navigateur sert à écarter les robots et n'est pas enregistrée. Le pays est déduit de l'adresse IP au moment de la visite (en-tête du CDN ou base GeoIP intégrée), puis seul le code pays est gardé.
- (B) Equateur Analytics enregistre trois types d'événements : la page vue (adresse sans paramètres ni fragment, emails et identifiants masqués), le clic ou l'envoi qui déclenche un objectif (appel, email, téléchargement, lien sortant, formulaire), et le temps d'engagement sur la page.
- Le nom d'un événement est masqué mot à mot avant d'être enregistré : une adresse email devient `:email`, une suite de 5 chiffres ou plus `:id`, une longue chaîne aléatoire `:token` (« Newsletter jean.dupont@gmail.com » est enregistré « Newsletter :email »).
- Les détails d'un événement sont limités à une liste blanche de sept clés : `fichier`, `vers`, `offre`, `formule`, `categorie`, `methode`, `etape`. Chaque valeur fait au plus 40 caractères, et les emails et identifiants y sont masqués. Toute autre clé est ignorée à la réception.

**Ce que vous faites.** N'envoyez aucune donnée personnelle dans un nom d'événement ou une valeur (nom, email, numéro de client ou de commande).

**Statut : Respecté.**

## Objectif 2 · Le prestataire agit comme sous-traitant

### 2.1 Un accord de sous-traitance conforme à l'article 28

**Ce que fait Equateur Analytics.** Un accord de sous-traitance standard, en français, qualifie Equateur Analytics de sous-traitant et reprend les mentions de l'article 28 du RGPD. Il fait partie des conditions d'utilisation et il est téléchargeable : [Accord de sous-traitance](/conformite/accord-sous-traitance/). À l'inscription, une case à cocher non précochée, « J'accepte les conditions et l'accord de sous-traitance », est obligatoire ; la version acceptée (aujourd'hui `2026-10`) et la date d'acceptation sont enregistrées dans le compte. Les comptes créés avant cet enregistrement n'ont ni version ni date.

**Statut : Respecté.**

### 2.2 Aucune mise en commun des données entre clients

**Ce que fait Equateur Analytics.** Les données de chaque site sont rattachées à ce site et ne sont jamais croisées avec celles d'un autre site, ni d'un autre client. L'identifiant d'un visiteur est calculé avec le domaine du site : le même visiteur sur deux sites donne deux identifiants sans rapport. La vue multi-sites des comptes Agence additionne des totaux par site, sans jamais rapprocher les visiteurs.

**Statut : Respecté.**

### 2.3 Aucune réutilisation pour le compte du prestataire

**Ce que fait Equateur Analytics.** Les statistiques de votre site servent uniquement à vous les montrer. Equateur Analytics ne les utilise ni pour améliorer un autre service, ni pour la publicité, ni pour établir des statistiques de marché. Elles ne sont ni vendues, ni partagées. Cet engagement figure dans l'accord de sous-traitance.

**Statut : Respecté.**

### 2.4 Un point de contact pour les questions de conformité

**Ce que fait Equateur Analytics.** Une adresse dédiée, indiquée dans l'accord de sous-traitance, reçoit les questions des clients, de leurs DPO et de leurs prospects : [adresse à compléter, par exemple confidentialite@equateur.org]. Réponse sous cinq jours ouvrés.

**Statut : Respecté une fois l'adresse publiée.**

## Objectif 3 · Pas de suivi en dehors de votre site

### 3.1 Aucun import de données externes

**Ce que demande la grille.** Pas de collecte ni d'import d'identifiant client, d'UTM ou d'identifiant de campagne dans les URL. Un site référent réduit à son domaine. Aucune intégration avec des outils tiers.

**Ce que fait Equateur Analytics.**

- Aucun identifiant client n'est collecté ni importé. Il n'existe pas de fonction « User ID ».
- Le site référent est réduit à son domaine, et seulement pour la première page de la visite.
- Les identifiants de clic publicitaires (`gclid`, `msclkid` et les autres) servent à reconnaître le canal Publicité, puis sont jetés : leur valeur n'est jamais enregistrée.
- Les paramètres `utm_content` et `utm_term` sont jetés.
- **Écart argumenté :** les libellés `utm_source`, `utm_medium` et `utm_campaign` sont gardés, parce qu'ils disent quelle campagne amène des visites (« newsletter-octobre »). Ils sont traités comme des libellés, jamais comme des identifiants :
  - à la réception, chaque mot est masqué : une adresse email devient `:email`, une suite de 5 chiffres ou plus `:id`, un UUID `:id`, une chaîne de 16 caractères ou plus mêlant lettres et chiffres (ou de 32 caractères ou plus) `:token`. `utm_source=jean.dupont-48213` est enregistré « Jean.dupont-:id », `utm_campaign=relance-48213` « relance-:id » ;
  - en mode exempté, une campagne vue sur moins de 3 visites dans la période affichée est regroupée sous « Autres campagnes », et une source (qu'elle vienne d'un `utm_source` ou d'un site référent) vue sur moins de 3 visites dans la période est regroupée, dans son canal, sous « Autres sources ». Ce regroupement s'applique au tableau de bord, aux conversions par source, aux exports `sources`, `campagnes` et `objectifs`, au résumé du lundi (qui ne cite jamais une source regroupée) et au rapport mensuel. Il neutralise les liens personnalisés par destinataire (`utm_source=jean.dupont`, `utm_campaign=client-48213`) ;
  - limite : un libellé personnel qui ne ressemble pas à un identifiant (`utm_source=jean.dupont`) est enregistré tel quel dans les parcours conservés côté serveur, et n'apparaît que s'il atteint 3 visites sur la période.
- Pour les DPO qui préfèrent la lecture la plus stricte, le **mode strict** ignore tous les paramètres de campagne, comme le fait le mode CNIL de Matomo.
- L'import d'historique (fichiers CSV d'agrégats journaliers venus de GA4, Matomo ou Piwik PRO) et la connexion à Google Search Console apportent des totaux par jour, par page ou par requête. Ils ne contiennent aucune donnée sur un visiteur et ne sont jamais rapprochés d'une visite. Aucune donnée ne part d'Equateur Analytics vers ces outils.

**Ce que vous faites.** N'ajoutez pas d'identifiant personnel dans vos liens de campagne. Activez le mode strict si votre DPO le demande.

**Statut : Écart argumenté sur les libellés de campagne et sur les imports d'agrégats, soumis à la validation d'un juriste.**

### 3.2 Aucun identifiant permettant un suivi sur plusieurs domaines

**Ce que demande la grille.** Un cookie éventuel est interne au site. L'adresse IP est réduite. Une empreinte éventuelle comporte une composante propre au site et une composante temporelle. Aucun marquage ne récupère des informations personnelles, par exemple par un formulaire.

**Ce que fait Equateur Analytics.**

- Aucun cookie, aucun identifiant déposé sur l'appareil.
- **Ce que le script lit dans le navigateur**, précisément : l'adresse de la page (`location.href`), la page précédente (`document.referrer`, à la première page vue seulement), la largeur de la fenêtre (`innerWidth`, réduite côté serveur à trois catégories), `navigator.webdriver` (pour écarter les navigateurs pilotés par un robot), les signaux Global Privacy Control (`navigator.globalPrivacyControl`) et Do Not Track (`navigator.doNotTrack`), l'état de visibilité de la page (pour le temps d'engagement) et, avant chaque envoi, le drapeau d'opposition `equateur:opposition` dans le stockage local (`localStorage`) du site. Au clic, il lit l'adresse du lien cliqué et les attributs `data-eq-*`, jamais le contenu d'un champ.
- **Ce que le script écrit** : rien, sauf le drapeau d'opposition quand un visiteur refuse la mesure (et son effacement s'il l'accepte de nouveau, voir 5.2).
- Ces lectures servent à la mesure elle-même, à écarter les robots et à respecter un refus. Aucune ne sert à reconnaître l'appareil d'une visite à l'autre, et aucune empreinte de l'appareil n'est calculée.
- L'adresse IP n'est jamais enregistrée. Au moment de la visite, elle sert à déduire le pays et à calculer l'identifiant du jour, puis elle est oubliée.
- L'identifiant du jour est `sha256(sel du jour + domaine du site + adresse IP + navigateur)`, tronqué. Le domaine en fait un identifiant propre au site. Le sel est aléatoire, change chaque jour (selon le fuseau horaire du site) et n'existe que dans la mémoire du serveur : il n'est jamais écrit dans la base de données, ni donc dans son journal ou ses sauvegardes. Il est oublié au plus tard 48 heures après, et à chaque redémarrage du serveur (une visite en cours à ce moment-là est alors comptée deux fois). Une fois le sel oublié, personne, pas même Equateur Analytics, ne peut relier un identifiant à une adresse IP. Le même visiteur, le lendemain, reçoit un autre identifiant.
- Le script ne lit jamais le contenu des champs de formulaire. L'envoi d'un formulaire peut déclencher un objectif, sans rien transmettre de ce qui a été saisi.

**Statut : Respecté. Les lectures listées ci-dessus sont soumises à la validation d'un juriste.**

### 3.3 Aucune mesure de couverture ni de dédoublonnage entre sites

**Ce que fait Equateur Analytics.** Equateur Analytics ne calcule ni portée (« reach ») unifiée, ni dédoublonnage de visiteurs entre sites ou entre jours. Les visites de deux sites ne sont jamais rapprochées, et un visiteur revenu deux jours différents compte deux fois.

**Statut : Respecté.**

## Objectif 4 · Uniquement des statistiques anonymes

### 4.1 L'interface et les exports ne montrent que des statistiques anonymes

**Ce que demande la grille.** Dans l'interface comme à l'export, uniquement des statistiques anonymes : des chiffres arrondis à la dizaine ou, à défaut, une analyse qui justifie leur caractère anonyme (avis 05/2014 du G29).

**Ce que fait Equateur Analytics.**

- Le tableau de bord, les résumés par email, les rapports mensuels et les liens de partage ne montrent que des totaux : visites, pages, sources, campagnes, pays, appareils, objectifs.
- Les exports CSV sont des agrégats. Ils suivent la période choisie et, depuis une vue filtrée, ses filtres, avec exactement les règles de la vue affichée (voir 4.2 ; un nombre masqué s'exporte « < 3 ») :
  - `sources` : visites, visites converties et taux par canal et par source, en totaux sur la période ; en mode exempté, les sources de moins de 3 visites sont regroupées sous « Autres sources » ;
  - `pages` : pages vues, visites et entrées par page, en totaux sur la période (chemins masqués à la collecte) ;
  - `jours` : pour chaque jour, visites, pages vues, rebonds, visites converties et temps d'engagement, tous canaux et toutes pages confondus ;
  - `campagnes` : visites et visites converties par campagne, source et support, en totaux sur la période ; en mode exempté, les campagnes de moins de 3 visites sont regroupées sous « Autres campagnes » ;
  - `objectifs` : visites converties et valeur par objectif et par source, en totaux sur la période ; en mode exempté, avec le même regroupement des sources.
- Il n'existe ni export ligne à ligne ni identifiant de visite en mode exempté. L'export des événements ligne à ligne n'existe qu'en mode consentement, et seulement pour les événements reçus depuis le passage en mode consentement (voir 4.3).
- Equateur Analytics n'arrondit pas les totaux : il applique des seuils (voir 4.2) et une [analyse d'anonymat](/conformite/analyse-anonymat/) écrite, comme la grille le permet.

**Statut : Respecté, par une analyse d'anonymat plutôt que par l'arrondi. À valider par un juriste.**

### 4.2 L'anonymat tient quelle que soit la combinaison de critères

**Ce que fait Equateur Analytics.** Cliquer sur une source, une page, une campagne, un pays ou un appareil filtre le tableau de bord. Une vue filtrée est calculée sur les parcours conservés, avec ces règles :

- **des semaines entières et closes.** Une vue filtrée porte sur des semaines du lundi au dimanche (fuseau du site), toutes terminées : « 7 jours », « 30 jours » et « 90 jours » deviennent les 1, 4 et 13 dernières semaines closes ; « ce mois-ci », « le mois dernier » et une plage libre sont étendus aux semaines qui les recouvrent, arrêtés au dernier dimanche passé. La semaine en cours n'y entre qu'une fois finie, et une semaine dont la durée de conservation a commencé à effacer les parcours n'y entre plus. Les dates réellement couvertes sont affichées au-dessus du tableau de bord et dans le nom du fichier exporté. La comparaison porte sur autant de semaines juste avant, ou sur les mêmes semaines 52 semaines plus tôt ;
- **un seuil par semaine.** Chaque nombre de la vue (visites, visites converties, rebonds, entrées, conversions et valeur d'un objectif, au total, par ligne, par point de courbe et pour la période de comparaison) est la somme de ses comptes hebdomadaires, et un compte hebdomadaire de moins de 3 n'y entre pas ;
- **« < 3 » plutôt que 0, 1 ou 2.** Un nombre qui reste sous 3, zéro compris, est masqué et affiché « < 3 » : la vue ne dit jamais si une combinaison de critères est vide ou compte une ou deux visites. Une vue dont aucune semaine n'atteint 3 visites n'affiche aucun détail ; une ligne (canal, source, campagne, page, pays, appareil, navigateur, système) sans semaine d'au moins 3 visites n'apparaît pas. « Autres (moins de 3 visites) » réunit, semaine par semaine, les comptes trop petits de toutes les lignes, avec le même seuil ;
- **par source**, les conversions d'un objectif ne sont détaillées que pour les semaines d'au moins 3 visites converties.

Conséquence : deux périodes, quelles qu'elles soient (en décalant la fin d'une plage d'un jour, en revenant le lendemain sur « 7 jours »), ne diffèrent que de semaines entières, et pour chaque nombre, de comptes hebdomadaires nuls ou d'au moins 3. Soustraire deux vues ne révèle jamais une ou deux visites. Le raisonnement et ses limites sont dans l'[analyse d'anonymat](/conformite/analyse-anonymat/) (point 5).

Une vue filtrée porte sur 92 jours demandés au plus (14 semaines une fois étendue). Au-delà de 300 000 visites correspondant aux filtres, sur la période ou sur sa comparaison, elle n'est pas calculée et le tableau de bord le dit : aucun résultat tronqué n'est affiché.

Hors filtre, en mode exempté, les sources et les campagnes de moins de 3 visites sont regroupées (voir 3.1). Les pages, pays, appareils, navigateurs et systèmes ne sont pas seuillés hors filtre : chacun est ventilé seul, sans croisement possible (voir l'analyse d'anonymat). L'heure précise d'une visite n'est jamais affichée ni exportée en mode exempté.

**Statut : Respecté, à valider par un juriste avec l'analyse d'anonymat.**

### 4.3 Aucun suivi de la navigation d'une personne

**Ce que fait Equateur Analytics.** Pas d'enregistrement de session, pas de carte de chaleur, pas de profil de visiteur, pas de journal des visites. Le compteur « en ce moment » donne un nombre, rien d'autre. Les parcours conservés côté serveur servent seulement à calculer les totaux, les vues filtrées et les entonnoirs. Ils ne sont consultables par personne dans l'interface et ne sortent pas à l'export en mode exempté.

Deux cas précis, à connaître :

- **Le test en direct d'un objectif.** Le propriétaire du site peut tester un objectif pendant 10 minutes. Le détail (page ou événement, heure) ne montre que ce qui vient du navigateur qui fait le test : le serveur calcule l'identifiant du jour de la personne qui teste, à partir de son adresse IP et de son navigateur, et ne renvoie que les pages et événements de sa propre visite, sur les 15 dernières minutes au plus. Pour les autres visiteurs, il ne renvoie qu'un compteur par objectif.
- **Le passage en mode consentement.** L'export ligne à ligne des événements, propre au mode consentement, n'est pas rétroactif : il ne contient que les événements reçus depuis le dernier passage en mode consentement, jamais ceux collectés en mode exempté. La date de ce passage est enregistrée, affichée dans les réglages du site et renvoyée avec l'export (en-tête `X-Equateur-Mode-Depuis`).

**Statut : Respecté.**

## Objectif 5 · Le droit d'opposition est respecté

### 5.1 Une modalité d'opposition existe

**Ce que demande la grille.** Un bouton ou un lien cliquable dans la politique de confidentialité du site.

**Ce que fait Equateur Analytics.** Tout élément de votre page qui porte l'attribut `data-eq-opposition` devient un interrupteur « Ne plus être mesuré » / « Être mesuré à nouveau ». Le script respecte aussi le signal Global Privacy Control et Do Not Track du navigateur, sans action du visiteur.

```html
<a href="#" data-eq-opposition>Ne plus être mesuré sur ce site</a>
```

**Ce que vous faites.** Collez ce lien dans votre politique de confidentialité, avec le [paragraphe type](/conformite/politique-confidentialite-type/).

**Statut : Respecté sous condition : le lien doit être présent dans votre politique.**

### 5.2 Le refus est retenu dans la durée

**Ce que fait Equateur Analytics.** Le refus est retenu dans le stockage local de votre site (`equateur:opposition = 1`). C'est le seul cas où Equateur Analytics écrit sur l'appareil, et c'est un cas que la CNIL admet explicitement : retenir un refus. Le script lit ce drapeau avant chaque envoi : tant qu'il est présent, il n'envoie plus rien. Un développeur peut aussi utiliser `equateur.opposer()`, `equateur.accepter()` et `equateur.oppose()`.

**Limites connues.**

- Un visiteur qui vide les données de son navigateur efface aussi son refus. C'est la même limite que pour un cookie d'opposition.
- Le refus est retenu par origine : `www.exemple.fr` et `exemple.fr` sont deux origines pour le navigateur, et un refus donné sur l'une ne vaut pas pour l'autre. Servez votre site sous une seule adresse (redirection de l'une vers l'autre).
- La page publique `https://app.equateur.org/opposition` montre l'état du navigateur (Global Privacy Control, Do Not Track) et fait la démonstration du lien ; son bouton n'agit que sur app.equateur.org, pas sur votre site.

**Statut : Respecté.**

## Ce qui reste à votre charge

1. Laisser le site en mode exempté, ou recueillir le consentement si vous passez en mode consentement.
2. Ajouter le paragraphe type et le lien d'opposition à votre politique de confidentialité.
3. Ajouter la [fiche de registre](/conformite/registre/) à votre registre des traitements.
4. Accepter l'[accord de sous-traitance](/conformite/accord-sous-traitance/) (il l'est à l'inscription, par une case à cocher dédiée, avec les conditions d'utilisation) et le conserver.
5. Ne jamais envoyer de donnée personnelle dans un événement ou dans un lien de campagne.
6. Garder en tête que l'exemption ne couvre qu'Equateur Analytics : un pixel publicitaire ou un autre outil sur le même site reste soumis au consentement.

## Points soumis à un juriste

1. La conservation des libellés de campagne (critère 3.1), avec le masquage des identifiants, le seuil de 3 visites et le mode strict.
2. L'import d'agrégats externes et Search Console au regard du critère 3.1.
3. Le caractère anonyme des agrégats journaliers non arrondis (critère 4.1).
4. Le stockage du refus dans le stockage local du site (critère 5.2), et les lectures sur l'appareil décrites en 3.2 (largeur de fenêtre, `navigator.webdriver`, Global Privacy Control, Do Not Track, drapeau d'opposition).
5. Les formulations publiques de ce document.
