Aller au contenu

La méthode

La même mesure, six mois plus tard

Un constat qui ne se refait pas est une opinion. Voici comment le nôtre se refait, à l'identique, avec la même pièce — et comment chaque note se reconstitue depuis ce qui est publié ici.

Analyseurs en production
26 analyseurs
Version de la pondération
pondération v13
Version de la notation
notation v1
Archive
archive écrite une fois

01

Le point d'observation

Nous ne mesurons pas ce qu'un routeur déclare envoyer. Nous recevons des emails, comme un abonné, sur des adresses que nous contrôlons, et nous lisons ce qui est arrivé. Tout le reste de cette page découle de ce choix.

La collecte
Nous nous inscrivons nous-mêmes aux communications des marques, depuis des adresses ordinaires. Ce qui arrive forme le corpus public, celui des rapports de marques et des comparaisons.
Le dépôt
Un client nous transmet un de ses envois, en fichier ou par transfert. Les mêmes analyseurs le lisent ; il est rattaché à son compte et n'entre dans aucun agrégat public.
La revendication
Une marque ajoute notre fiche contact à son routeur. C'est la seule voie qui donne ses transactionnels, et elle ne demande aucun accès à ses systèmes.

Aucune intégration, aucune API, aucun identifiant. Et si un constat vous paraît faux, vous pouvez le vérifier vous-même : recevez le même message, ouvrez sa source, cherchez l'extrait cité.

Pourquoi cette position d'observation →

02

L'archive

Écrite une fois

Le message brut, tel que le serveur de réception l'a reçu, est écrit une fois et adressé par l'empreinte de son contenu. Il n'est jamais modifié, jamais supprimé, et deux réceptions du même octet ne font qu'une pièce. Chaque mesure s'appuie sur cette pièce et sur rien d'autre : un message reconstruit après coup ne prouverait rien.

Lue, jamais réécrite

L'application lit l'archive, elle n'y écrit pas. Le client qui y accède refuse toute écriture sous le préfixe du corpus ; seuls les dépôts et les imports s'écrivent, sous leur propre préfixe, et ils s'effacent avec le compte qui les a créés. Aucune page publique ne lit l'archive : les aperçus sont produits à l'ingestion et servis depuis la base, pour que la consultation d'un rapport ne décide jamais de ce qui est lu dans le stockage.

Ce qui en sort, et ce qui n'en sort pas

Des mesures, des extraits de preuve et des vignettes. Jamais un message entier. Jamais les adresses par lesquelles nous le recevons : les rendre visibles permettrait de filtrer dessus, donc de se soustraire à toute mesure. L'archive est hébergée dans l'Union européenne.

03

Les analyseurs

Une fonction pure

Un analyseur est une fonction : le message brut et un contexte entrent, des constats sortent. Il n'a pas d'état, ne fait aucun appel, et deux passages sur le même message donnent le même résultat, au caractère près.

(message brut, contexte) → constats

Ce qu'il sait du monde, et rien d'autre

Tout ce dont un analyseur a besoin lui est passé en paramètre, figé pour la durée du passage :

  • l'instant de l'analyse — injecté, jamais lu sur l'horloge ;
  • les domaines de la marque attribuée, vides si le message est en quarantaine ;
  • les domaines d'infrastructure d'envoi connus, qui distinguent un domaine de mesure d'un domaine de marque ;
  • les autorités d'authentification reconnues pour la boîte qui a reçu le message ;
  • les signatures de routeurs, recopiées plutôt que lues en base ;
  • un drapeau : ce message est-il un artefact de notre propre inscription ;
  • la règle du pixel de suivi, publiée ci-dessous avec ses dates.

Ni base, ni réseau, ni aléatoire. C'est ce contexte qui rend le rejeu reproductible : sur deux machines, à deux dates, la même archive et le même contexte donnent les mêmes constats.

Ce qu'un constat porte

Une clé
pixel.detected, auth.dmarc — jamais une phrase. Le libellé se résout à l'affichage, par langue.
Un signal
Ce qui a déclenché la détection, pas seulement le fait qu'elle a eu lieu. Un traceur repéré par son domaine d'hôte ne se défend pas comme un traceur repéré par ses dimensions.
Une preuve
L'extrait du source, verbatim, tronqué à 400 caractères et signalé comme tel. C'est la pièce.
Un emplacement
Un en-tête nommé, ou une position dans le HTML — de quoi retrouver l'extrait dans la pièce.
Une signature
L'analyseur, sa version, la date du passage.

La règle du pixel de suivi

Une image est un pixel de suivi si l'un de ces trois signaux tient ; le constat dit lequel. Un pixel se reconnaît à sa taille, à la forme de son adresse ou à l'hôte qui le sert — jamais à son seul masquage.

  1. Sa taille. Une dimension déclarée — attribut width ou height, ou style en ligne — d'au plus 2 px. Depuis le 4 octobre 2026.

    Masquée par son style en ligne (display:none, visibility:hidden, width:0, height:0), une image n'est un pixel que si son adresse porte un identifiant du destinataire. Masquée par une classe ou une règle @media — la bascule mobile et bureau d'une image de contenu —, elle n'en est pas un, quelle que soit sa taille. Depuis le 4 octobre 2026.

    Un identifiant du destinataire, c'est, dans un segment du chemin, un jeton : au moins 20 caractères parmi lettres, chiffres, _ et -, mêlant majuscules, minuscules et chiffres. Dans une valeur de requête, un jeton, une adresse email en clair ou encodée, ou une empreinte hexadécimale d'au moins 32 caractères. Les paramètres utm_… n'en portent jamais : ce sont des étiquettes de campagne. Une valeur courte ou purement numérique n'identifie personne. Depuis le 4 octobre 2026.

  2. La forme de son adresse. L'adresse de l'image contient l'un de ces motifs, sans égard à la casse :
    Motif Point de mesure Depuis
    /open — 2 août 2026
    open? — 2 août 2026
    /o.gif — 2 août 2026
    /t.gif — 2 août 2026
    /oo.gif — 2 août 2026
    wf/open — 2 août 2026
    beacon — 2 août 2026
    /pixel — 2 août 2026
    pixel. — 2 août 2026
    /track — 2 août 2026
    track? — 2 août 2026
    /imp — 2 août 2026
    impression — 2 août 2026
    /spacer — 2 août 2026
    /blank.gif — 2 août 2026
    /t/o? Connectif 12 septembre 2026
    ?esid= Salesforce 12 septembre 2026
    &esid= Salesforce 12 septembre 2026
    /p.png? Boursobank 12 septembre 2026
    /tr/op/ Brevo 4 octobre 2026
    /mk/op/ Brevo 4 octobre 2026
    email-open Veepee 4 octobre 2026
    /probe. Zalando 4 octobre 2026
  3. L'hôte qui la sert. Un domaine de mesure connu — celui d'un routeur, ou d'un moteur qui compose l'image à l'ouverture —, distinct des domaines de la marque.

Un motif s'ajoute par une ligne de la règle et une entrée au journal des méthodes ; l'archive est alors relue avec la règle nouvelle.

Ne pas savoir est un état

Un routeur absent de la table des signatures n'est pas rapproché du plus proche : il est « non identifié », qualifié à la main, et la table s'enrichit sans redéploiement. Un envoi dont la nature n'est pas établie n'est ni campagne ni transactionnel : il reçoit la grille commune, et rien d'autre. L'authentification n'est jamais recalculée : le verdict est celui que le serveur de réception a rendu à l'arrivée, daté par construction, lu au plus haut de la chaîne sur une autorité reconnue.

Ce qui tourne, en ce moment

26 analyseurs, chacun avec sa version courante. Un constat plus ancien garde la sienne — c'est ce qui permet de retracer une décision passée.

Analyseurs en production

  • Adresse de réponse reply_path v1
  • Authentification auth v2
  • Authentification déclarée declared v2
  • Concordance de l'expéditeur identity v5
  • Demande de confirmation d'inscription confirmation v3
  • Désinscription unsubscribe v6
  • Empreinte du contenu shape v1
  • En-têtes d'envoi en nombre bulk v1
  • Fil de discussion thread v1
  • Forme du message rfc5322 v1
  • Identifiant du destinataire recipient v1
  • Identité de l'expéditeur sender v2
  • Identité mise en avant claims v1
  • Lisibilité sans images image_free v2
  • Nature de l'envoi kind v5
  • Outil de rédaction composer v1
  • Pièces jointes attachments v1
  • Poids et structure structure v3
  • Politique de confidentialité policy v2
  • Qualité de la signature DKIM dkim v1
  • Rendu déclaré rendering v3
  • Ressources distantes resources v1
  • Routeur d'envoi esp v8
  • Suivi de clic links v11
  • Traceurs d'ouverture pixel v4
  • Validité du HTML markup v1

04

Le rejeu

Chaque constat porte sa version

Modifier un analyseur monte sa version. Les constats produits par l'ancienne restent ; les nouveaux s'écrivent à côté. Rien ne s'écrase : un rapport lu hier se relit demain à l'identique, et l'écart entre deux versions se lit au lieu de se deviner.

Un critère ajouté remonte le temps

Un analyseur nouveau est rejoué sur toute l'archive. L'historique d'un critère commence à la première pièce archivée, pas au jour où l'idée a eu lieu. C'est ce qui permet de dire d'une marque ce qu'elle faisait en mars sur un critère écrit en septembre.

Idempotent, reprenable

Le triplet analyseur, version, message est unique. Rejouer deux fois le même lot donne la même base, et le harnais le vérifie à chaque changement. Chaque analyseur a ses fichiers témoins : toute variation de sortie apparaît comme un écart explicite, relu avant d'être accepté.

Contester, c'est rejouer

Un chiffre contesté se refait : mêmes pièces, même version, même contexte. Nous republions le calcul et l'extrait qui l'établit, et nous corrigeons si l'erreur est de notre côté.

05

Ce que nous ne faisons jamais

Chacun de ces gestes fausserait la donnée qu'on mesure, ou la statistique de la marque qu'on observe. Aucun n'a d'exception dans un analyseur.

Charger une image
Une seule requête vers le domaine de mesure d'une marque enregistre une ouverture. L'aperçu d'un message bloque toute ressource distante et affiche à sa place l'hôte qu'elle appelait.
Suivre un lien
Un lien tracé enregistre un clic et marque un contact comme engagé. Les liens se comptent, se classent, se lisent — jamais ne se visitent, pas même pour vérifier qu'ils répondent. Une redirection enveloppée se lit dans l'URL elle-même.
Ouvrir une pièce jointe
Ce qu'un fichier est se lit dans ses octets de tête et dans son nom, jamais en l'ouvrant.
Recalculer l'authentification
Une vérification refaite interrogerait le DNS d'aujourd'hui. Le verdict est celui du serveur de réception, à la date de réception.
Interroger le réseau depuis un analyseur
La seule requête que le produit adresse à l'extérieur est celle de la vérification d'un email suspect, vers les registres de noms de domaine — jamais vers le site de l'expéditeur. Elle vit hors des analyseurs, et elle est datée.
Contourner un test posé à un visiteur
Une inscription se fait comme un abonné la ferait. Un formulaire sous captcha reste hors de portée, et c'est un résultat consigné, pas une difficulté à résoudre.

06

Aucun modèle de langage dans une mesure

Aucune mesure publiée ne provient d'un modèle de langage. Un modèle ne rend pas deux fois la même réponse ; une mesure qui en dépendrait ne se rejouerait pas, donc ne se défendrait pas le jour où quelqu'un la conteste.

Un modèle sert à lire du texte, dans une couche à part : la nature d'un envoi quand les en-têtes ne suffisent pas, une mécanique promotionnelle, la formulation d'un consentement. Ces lectures sont stockées comme des interprétations, marquées comme telles dans le rapport et dans la donnée. Elles n'entrent dans aucune note, aucun classement, aucune alerte.

Et jamais sur chaque message : l'empreinte de gabarit d'abord, le modèle seulement sur un gabarit jamais vu, sous un plafond quotidien qui s'arrête en le disant.

Ce que « mesuré » et « interprété » changent dans un rapport →

07

Comment se lit un rapport

Les quatre états d'un critère

Un état décrit ce qui a été observé, jamais la gravité de ce qu'on observe. Deux critères également non tenus portent le même état, qu'ils soient graves ou non — la gravité se lit dans le poids.

Tenu
Vérifié sur tous les envois où le critère s'appliquait.
Tenu en partie
Vérifié sur une partie d'entre eux. Le détail dit lesquels.
Non tenu
Vérifié sur aucun.
Non observable
Le critère ne s'appliquait à aucun envoi reçu. Il sort du dénominateur et n'est jamais compté comme un échec.

Deux régimes, une seule méthode

Les analyseurs produisent les mêmes constats sur tous les messages. Ce qui change avec la nature de l'envoi est le référentiel de notation : les critères retenus et leur poids. Un pixel ne pèse pas la même chose dans une promotion et dans une confirmation de commande.

Campagnes
La grille entière, désinscription comprise.
Transactionnels
La même grille sans la prospection — la désinscription y est sans objet — et des poids plus lourds sur le suivi.
Nature non établie
La grille commune seulement. On n'invente pas une obligation à un envoi dont on ne sait pas ce qu'il est.

Le calcul d'une famille

Chaque critère porte un poids, et rapporte ce poids au prorata des envois où il est tenu : un critère de 25 points tenu sur quatre envois sur cinq rapporte 20 points. La note d'une famille est la somme de ses points sur la somme des poids de ses critères applicables. Un critère non observable ne compte ni au numérateur ni au dénominateur ; un critère hors de sa portée non plus — il s'affiche « sans objet ».

Certains critères sont des indicateurs : ils répondent à une question — le destinataire comprend-il encore ? peut-il agir ? — par plusieurs observations qui comptent également. Les hiérarchiser demanderait des nombres qu'aucune source ne fonde.

La grille, famille par famille

Les poids ci-dessous sont lus dans le code qui note, au moment où vous lisez cette page. Une ligne « sans objet » sort du dénominateur ; une ligne marquée bonus n'y entre jamais.

Conformité Campagnes Transactionnels
Aucun pixel de suivi d'ouverture 30 35
Se désinscrire est possible et annoncé · 2 observations 15 sans objet
Le destinataire garde la main sur le suivi · 2 observations · conditionné 20 20
Le message dit qui écrit et selon quelles règles · 3 observations 15 20
Un chemin non tracé mène au site 10 15
Aucun identifiant du destinataire dans le message 10 10
Délivrabilité Campagnes Transactionnels
Signature DKIM validée 20 20
Alignement DMARC validé 20 20
Politique DMARC qui contribue à écarter certaines usurpations 15 15
Aucun échec SPF 10 10
Désinscription en un clic, au sens de la RFC 8058 · 2 observations 15 sans objet
Signature DKIM qui couvre l'essentiel · 4 observations 5 5
Technique Campagnes Transactionnels
HTML sous le seuil de troncature de Gmail 25 25
Gabarit peu imbriqué · 1 observations 20 20
HTML bien formé · 4 observations 15 15
Chaque lien mène quelque part 10 10
Aucune feuille de style distante 10 10
Le message respecte la forme d'un courriel · 5 observations 5 5
Expérience Campagnes Transactionnels
Le message se comprend sans ses images, dès la boîte de réception · 2 observations 25 25
Le message reste restituable hors du HTML · 3 observations 15 15
Tous les liens restent visibles images bloquées 15 15
Zones cliquables assez grandes 10 10
Le message reste lisible avec une aide technique · 4 observations 20 20
Le message déclare son adaptation aux écrans · 2 observations 15 15
Thème sombre déclaré · bonus +5 +5

« Conditionné » : une des observations de l'indicateur n'est mesurée qu'en présence d'une autre — on ne reproche pas l'absence d'un réglage du suivi à un message qui ne suit personne.

Les bonus

Un bonus est un poids qui entre au numérateur quand il est acquis, jamais au dénominateur : ne pas l'avoir ne coûte rien, l'avoir rapporte. La règle qui décide : ne pas tenir une mesure est-il un manquement ? Si oui, c'est un critère. Si non, mais que la tenir demande un travail observable, c'est un bonus.

Il n'en existe qu'en Technique et Expérience — jamais en conformité, la famille qu'on désigne en disant « voilà ce qui pourrait vous être opposé », ni en délivrabilité, dont les critères sont des verdicts empruntés au serveur de réception. La note reste bornée à 100.

La note globale d'une marque

La note globale est la moyenne des familles, pesée par leur poids. Ce que la marque risque de se voir opposer pèse le plus ; personne n'a jamais été mis en demeure pour un DOM profond.

Conformité
35
Délivrabilité
30
Technique
15
Expérience
20

Elle se lit en trois paliers — haut dès 80, moyen dès 55 — sans adjectif : « bon » ou « faible » n'ajouteraient rien au chiffre et le rapprocheraient d'un jugement. Un constat disqualifiant reste affiché quel que soit le score : la note n'absorbe jamais l'alerte.

La lettre d'un envoi

Le rapport d'un envoi déposé porte une lettre. Elle ne moyenne pas : elle pèse l'écart de chaque famille à 100, à la puissance 1,5, puis revient à une note. Une famille effondrée coûte plus que deux familles tièdes, et toute réparation fait monter la lettre — la moyenne diluait un effondrement, la pire famille ne bougeait pas quand on réparait le reste.

note = 100 − ( Σ poids × (100 − famille)^1,5 / Σ poids )^(1/1,5)

A
dès 90
B
dès 80
C
dès 70
D
dès 60
E
dès 50
F
en dessous

Un niveau de risque accompagne la lettre. Il est décidé d'abord par le plus lourd des critères manqués — 25 points ou plus le rend critique, 15 ou plus élevé — puis par la note globale, qui ne peut qu'aggraver. Aucun palier ne porte d'adjectif rassurant, et aucun ne dit « sain ».

Les seuils, et d'où ils viennent

La plupart des critères s'appuient sur un document public — une RFC, une spécification du W3C ou du WHATWG, un tableau de compatibilité. Chaque page de rapport cite ces sources sous le critère concerné, et nous les relisons : une source qui ne répond plus disparaît de la page plutôt que d'y rester morte.

Quelques seuils n'ont aucune source de première main. Nous les assumons comme des choix plutôt que de leur en inventer une, et ils sont lus ici dans le code qui les applique :

  • La troncature Gmail à 102 Ko. Un comportement observé, que Google ne documente nulle part et qu'aucun tableau de compatibilité ne couvre.
  • Les tableaux de mise en page, au plus 6 imbriqués. Aucune spécification ne fixe la limite ; les références de rendu d'email en recommandent de quatre à six, et nous retenons la borne haute. La profondeur du document, elle, ne se note plus : elle se lit dans le rapport, sans seuil.
  • Au moins 200 caractères lisibles sans les images. Ce seuil repère l'envoi presque tout en images ; il n'est pas la frontière du compréhensible.
  • L'existence d'un chemin non tracé vers le site. Aucune norme ne l'exige. Un message dont tous les liens passent par un traceur ne laisse aucune façon de consulter la marque sans être mesuré.
  • La désinscription non tracée. Même raison, sur le lien qui compte le plus : exercer son opposition sans être mesuré une dernière fois.

Ces seuils se discutent, et c'est pour ça qu'ils sont nommés ici plutôt que fondus dans les autres.

08

Les versions

Chaque nombre de cette page a une version, et chaque résultat archivé porte la sienne. Une note produite sous une version antérieure n'est jamais réécrite : on recalcule sous la nouvelle, à côté, et l'écart se lit.

Pondération des familles v13 Monte à toute modification d'un poids, d'un seuil, d'un critère ajouté ou retiré. Écrite sur chaque note.
Calibration de la lettre v1 L'exposant et les poids de familles réunis. Distincte de la pondération : la monter ne force pas un rejeu quand aucune note de famille ne bouge.
Analyseurs une par analyseur Voir la liste en production, section 03. Chaque constat porte celle qui l'a produit.
Indice de la vérification v1 Les poids des constats et les seuils des paliers de l'outil « Vérifier un email suspect ».
Barème du diagnostic pixel-cnil-2026-09 Stockée sur chaque passage du diagnostic du pixel de suivi. Le recalcul rétroactif est interdit.

Journal des méthodes

Chaque changement de méthode qui fait bouger des constats publiés, daté du rejeu qui l'applique à l'archive. Une entrée ne se réécrit pas : une correction est une entrée nouvelle.

  1. La confirmation de l'inscription se lit sur nos propres inscriptions

    Un analyseur lit désormais, dans le courrier qui suit chacune de nos inscriptions, si la marque demande de confirmer l'abonnement : un lien de confirmation, un bouton qui le demande, ou un objet que le corps du message confirme. Il lit vingt-trois langues. Une activation de compte n'est pas une demande.

    Une marque compte une fois. Elle demande une confirmation si l'une de ses inscriptions en a reçu une ; elle n'en demande pas si une campagne est arrivée sans demande avant elle. Une inscription restée sans réponse, ou qui n'a reçu que des messages de service, ne conclut rien et sort de la base.

    Aucune règle française n'impose cette confirmation : la mesure décrit une pratique. Rejouée le 17 octobre 2026 sur toute l'archive, elle donne 46 marques sur 241 au marché français, que l'observatoire publie avec leur base.

  2. Le pixel de suivi se lit sur les trois dernières campagnes

    Le critère « Aucun pixel de suivi d'ouverture » se lit désormais sur les trois dernières campagnes reçues d'une marque, et non plus sur toutes. Une marque qui retire son pixel le voit dans sa note dès ses trois envois suivants ; une marque qui en pose un aussi.

    Les autres critères se lisent toujours sur tous les envois reçus. La page nomme la fenêtre, « sur les 3 dernières campagnes », dès qu'elle écarte un envoi plus ancien, et son en-tête dit quand notre adresse est entrée dans la base de la marque.

    Aucun poids ne bouge. Les notes calculées avec la pondération 12 restent en base, à côté de celles de la pondération 13.

  3. La règle du pixel de suivi : la taille, pas le masquage

    Un pixel de suivi se reconnaît désormais à sa taille, pas à son masquage. Une image est un pixel si l'un de trois signaux tient : une dimension déclarée de 2 px au plus, l'un des motifs d'ouverture publiés, ou un hôte de mesure connu, distinct de ceux de la marque.

    Une image masquée par son style en ligne n'est un pixel que si son adresse porte un identifiant du destinataire. Masquée par une classe ou une règle @media, comme les images de contenu qui changent entre mobile et ordinateur, elle n'en est pas un, quelle que soit sa taille.

    Quatre motifs d'ouverture entrent : /tr/op/ et /mk/op/ (Brevo), email-open (Veepee), /probe. (Zalando).

    Sept envois ne comptent plus de pixel : cinq campagnes d'Amazon, du 30 juillet au 5 septembre 2026, et deux envois de Shopify, des 6 juin et 6 juillet 2026. Le seul signal qui les désignait était une image de contenu masquée.

    Trente envois en comptent un, qu'une taille de 2 px faisait passer inaperçu : Niche Beauty (dix-neuf), Miliboo (six), Loberon (deux), Tennis-Point, Höffner et Sconto (un chacun).

    Les pages des marques et de leurs envois suivent la mesure depuis le rejeu. Un rapport d'audit déjà rendu sur un email déposé garde les constats et la note de son exécution.

    La règle complète

09

Les autres outils, même exigence

La vérification d'un email suspect

Elle mesure ce qu'un message dit de lui-même, jamais ce qu'il est. Chaque constat porte un poids ; leur somme est un indice, lu en trois paliers, et le plancher ne délivre aucun quitus :

faisceau
dès 35
isole
dès 1
aucun
à 0

Le seuil haut est sous le poids du plus lourd des constats : un seul écart peut suffire. La seule requête sortante va aux registres de noms de domaine, jamais au site de l'expéditeur, et l'absence de réponse est un état nommé, pas une case vide.

Vérifier un email suspect →

Le diagnostic du pixel de suivi

Un barème, calculé côté serveur — sans base, sans horloge, sans réseau — et versionné. Il qualifie avant de noter : une condition déterminante est portée par un constat, visible quel que soit le score. Les axes sans objet sortent du dénominateur, et le score est une mesure de maturité, jamais une qualification.

La règle CNIL, et le diagnostic →

10

Contester un constat

Tout constat publié se rejoue à l'identique, avec sa preuve. Si un chiffre vous paraît faux, indiquez la marque et le constat : nous republions le calcul et l'extrait qui l'établit, et corrigeons si l'erreur est de notre côté. Un rapport exact n'est pas retiré à la demande de la marque.

Contester un constat →

Vérifiez sur un de vos envois

Le rapport est donné en entier, sans compte et sans adresse à laisser.

Analyser un de mes emails