Aller au contenu
Privatus Analytics

Confidentialité

Comment les analytics sans cookies mesurent sans pister les personnes

Chacune de nos affirmations sur la confidentialité a une explication technique. Cette page décrit exactement ce qu’il advient d’une page vue, ce que nous stockons, ce que nous ne stockons jamais, et comment vous pouvez le vérifier vous-même.

Ne nous croyez pas sur parole

Ces outils sont exploités par d’autres organisations. Chaque lien analyse ce site à l’instant, vous voyez donc le résultat du jour, pas une capture d’écran que nous aurions choisie.

Le parcours des données

Chaque requête de visiteur, y compris celles provenant de l’UE, de l’EEE, du Royaume-Uni et de la Suisse, est traitée dans notre région américaine. L’adresse IP et le user agent sont utilisés en mémoire pendant le traitement de la requête, puis supprimés avant le stockage de l’événement minimisé.

  1. Étape 1 · Partout
    Navigateur du visiteur
    • URL de la page et référent
    • Paramètres UTM
    • Largeur d’écran et langue
    • Vos propriétés d’événement personnalisées
    • Ni cookies ni stockage local, sauf le choix de refus du visiteur lui-même
    • Aucune API de fingerprinting
    • Aucune requête vers des tiers
  2. Étape 2 · États-Unis
    Ingestion, en mémoire
    • Pays d’après l’en-tête Cloudflare
    • User agent → navigateur, OS, appareil
    • Détection des bots et vos règles de trafic
    • Clé de visite en mémoire
    • Adresse IP supprimée après la requête
    • User agent complet supprimé après la requête
    • Données personnelles nettoyées, chaînes de requête réduites
  3. Étape 3 · En file d’attente dans la région américaine
    Événement minimisé
    • Uniquement l’événement minimisé
    • Aucune adresse IP
    • Aucun user agent brut
    • Ni clé de visite ni sel
  4. Étape 4 · États-Unis
    Stockage et tableau de bord
    • Pages, sources, campagnes
    • Pays et catégories d’appareils
    • Identifiant de visite aléatoire (un jour au plus)
    • Propriétés d’événement
    • Rien qui identifie une personne
    • Rien qui relie des jours, des sites ou des appareils

Ce que nous collectons, et ce que nous ne collectons jamais

Collecté (après minimisation)

  • Page. Nom d’hôte et chemin. Les chaînes de requête sont supprimées, sauf les paramètres de campagne et votre liste d’autorisation. Le fragment est supprimé sauf si vous utilisez le routage par hash.
  • Référent. Domaine et chemin de la page référente. Requête supprimée, référents internes effacés.
  • Campagne. Paramètres UTM et ref. Les identifiants de clic publicitaire (gclid, msclkid, fbclid) sont réduits à un indicateur oui/non.
  • Localisation. Pays uniquement, d’après l’en-tête de pays que notre fournisseur réseau (Cloudflare) ajoute à chaque requête. Ni région, ni ville, ni coordonnées.
  • Technologie. Navigateur, système d’exploitation (famille et version majeure), type d’appareil, plage de taille d’écran, langue.
  • Engagement. Temps visible sur la page et profondeur de défilement par tranches de 10 %.
  • Fuseau horaire. Le nom du fuseau horaire du navigateur, par exemple America/Denver. Un navigateur qui tourne sur un serveur est rarement réglé sur le fuseau horaire du pays d’où vient sa requête, nous comparons donc les deux pour aider à distinguer les bots des personnes. Cela se passe en mémoire, puis le fuseau horaire est supprimé. Il n’est jamais utilisé comme localisation ni stocké avec une visite ou un événement. Il n’est conservé que dans les données d’entraînement des bots de la détection avancée des bots (hits honeypot et échantillons de nos propres sites) pendant 12 mois.
  • Événements. Noms et jusqu’à 30 propriétés typées que vous choisissez d’envoyer, après nettoyage des données personnelles.

Jamais collecté ni stocké

  • Adresses IP. Utilisées en mémoire pour la détection des bots et la clé de visite quotidienne, puis supprimées. Jamais écrites sur disque, dans des journaux, des files d’attente ou des bases de données, pas même pour les bots.
  • User agents complets. Analysés en catégories en mémoire, puis supprimés.
  • Cookies et stockage sur l’appareil. Ni cookies, ni localStorage, ni sessionStorage, ni IndexedDB (sauf le choix de refus fait par le visiteur lui-même).
  • Empreintes numériques. Aucune API canvas, WebGL, de polices, audio ou de batterie, et aucun client hint supplémentaire.
  • Identifiants persistants. Rien qui dure plus d’un jour, ni qui relie des sites ou des appareils. Aucun profil utilisateur.
  • Localisation précise. Aucune coordonnée.
  • Requêtes vers des tiers. Le traqueur ne communique qu’avec Privatus Analytics.

Nettoyeur de données personnelles. Avant tout stockage, les chemins, référents, titres et propriétés d’événements sont inspectés à la recherche d’adresses e-mail, d’identifiants longs, de chaînes ressemblant à des jetons et de longues suites de chiffres, comme des numéros de téléphone ou de carte. Les correspondances sont remplacées par des marqueurs comme [redacted-email], et chaque site voit le nombre de masquages effectués afin de corriger les fuites à la source.

Comment les visites sont comptées

  1. Chaque jour UTC, nous générons un sel aléatoire de 256 bits. Il n’existe qu’en mémoire et est détruit à la fin de la journée, après un délai de grâce de 30 minutes.
  2. Pour chaque hit, nous calculons HMAC(daily salt, site, IP, user agent) en mémoire et le recherchons dans un stockage en mémoire uniquement, avec un délai d’inactivité de 30 minutes, plafonné à minuit UTC.
  3. Une nouvelle visite reçoit un identifiant de visite aléatoire qui n’est pas dérivé de cette clé. Seul l’identifiant aléatoire est stocké.
  4. Une fois le sel détruit, plus rien ne permet de relier les visites stockées à un appareil, ni entre elles d’un jour à l’autre.

Ce sont des données pseudonymes : fortement minimisées et impossibles à relier au-delà d’une journée. Nous ne les qualifions pas d’anonymes.

Tous les champs que nous stockons

L’ajout d’un champ stocké exige un examen écrit de sa finalité, de sa minimisation et de sa durée de conservation. Voici la liste actuelle.

ChampFinalitéMinimisationConservation
Nom d’hôte, cheminPagesRequête supprimée sauf liste d’autorisation, données personnelles nettoyées, masques de cheminForfait
Hôte et chemin du référentSourceswww. et m. retirés, requête supprimée, référents internes effacésForfait
Paramètres UTM, ref, clic payantCampagnesIdentifiants de clic réduits à un indicateur oui/nonForfait
PaysLocalisationD’après l’en-tête de pays de Cloudflare, IP suppriméeForfait
Appareil, navigateur, OS (avec versions majeures), plage d’écranTechnologieUser agent brut supprimé, écran regroupé par plagesForfait
Identifiant de visiteVisitesUUID aléatoire, un jour UTC au plusForfait
Propriétés d’événementÉvénementsJusqu’à 30 clés, typées, données personnelles nettoyéesForfait
Nom du fuseau horaireEntraînement du score de botJamais stocké avec une visite ou un événement. Conservé uniquement avec un hit honeypot ou un échantillon de nos propres sites12 mois
Compteurs de filtrageBots, règles, masquagesAgrégats uniquement, aucune IP13 mois
Clé de visite (stockage en mémoire)Continuité de la visiteClé HMAC, expiration après 30 minutesUn jour au plus
Sel quotidien (stockage en mémoire)Clé de visiteJamais persisté1 jour + 30 minutes

Conservation « Forfait » : 3 mois avec Free, illimitée pendant l’abonnement avec les forfaits payants, avec des réglages possibles par site.

Vérifiez par vous-même

  1. Ouvrez les outils de développement de cette page et allez dans l’onglet Application (ou Stockage). Vous n’y trouverez aucun cookie et rien dans le stockage local de la part du traqueur. La seule chose que le traqueur stocke est le choix de refus du visiteur lui-même. Ce site y conserve aussi votre thème clair ou sombre si vous le changez.
  2. Passez à l’onglet Réseau, filtrez sur /api/event et rechargez. Vous verrez une petite requête par page vue.
  3. Ouvrez la charge utile de la requête. Elle ne contient que les champs listés ci-dessous : aucun identifiant, aucune empreinte.
  4. Ajoutez data-debug="true" à la balise script de votre propre site et surveillez la Console. Chaque hit est consigné avec le préfixe [privatus], exactement tel qu’il serait envoyé, et rien ne quitte le navigateur. Un hit ignoré consigne la raison, et cela fonctionne sur localhost. Voir Tester sans rien envoyer.
  5. Lisez le code source du traqueur. Il est sous licence MIT et assez court pour être lu d’une traite. Voir open source.

Essayez aussi le scanner de cookies et de traqueurs sur votre propre site.

Ce que contient une requête

Ces exemples montrent tous les champs qui peuvent apparaître dans chaque type de hit. La plupart des hits en contiennent beaucoup moins. Le tableau ci-dessous indique quand chaque champ est envoyé.

Une page vue
{
  "s": "pa_7Q2K9XH3AB",
  "t": "pageview",
  "u": "https://example.com/app?utm_source=newsletter#/pricing",
  "l": "en-US",
  "w": 1440,
  "i": 0,
  "r": "https://news.example.org/",
  "h": 1,
  "d": 1,
  "g": 1,
  "hp": 1,
  "a": "webdriver",
  "tz": "America/Denver",
  "xp": "var_4M8T2KQ9ZD",
  "p": { "plan": "pro" }
}
Un hit d’engagement
{
  "s": "pa_7Q2K9XH3AB",
  "t": "engagement",
  "u": "https://example.com/app?utm_source=newsletter#/pricing",
  "l": "en-US",
  "w": 1440,
  "i": 1,
  "r": "https://news.example.org/",
  "h": 1,
  "d": 1,
  "g": 1,
  "hp": 1,
  "a": "webdriver",
  "tz": "America/Denver",
  "e": 48210,
  "sd": 80
}
Un événement personnalisé
{
  "s": "pa_7Q2K9XH3AB",
  "t": "event",
  "u": "https://example.com/app?utm_source=newsletter#/pricing",
  "l": "en-US",
  "w": 1440,
  "i": 1,
  "r": "https://news.example.org/",
  "h": 1,
  "d": 1,
  "g": 1,
  "hp": 1,
  "a": "webdriver",
  "tz": "America/Denver",
  "n": "signup",
  "p": { "plan": "pro" }
}
ChampSignificationQuand il est envoyéCe qu’il devient de notre côté
sIdentifiant du siteChaque hitSert à retrouver le site. Stocké comme le site auquel l’événement appartient.
tType de hit : pageview, engagement ou event. Les modules facultatifs Web Vitals et carte des clics ajoutent vital et click.Chaque hitStocké comme le type d’événement.
uURL de la page, dont les paramètres de requête hors campagne sont déjà retirés dans le navigateurChaque hitLe nom d’hôte et le chemin sont stockés après les masques de chemin et le nettoyeur de données personnelles. Les paramètres de campagne sont stockés, les identifiants de clic publicitaire deviennent un indicateur oui/non, et le reste de la requête est supprimé.
lLangue du navigateurChaque hitStockée, tronquée à 16 caractères.
wLargeur d’écran en pixelsChaque hitStockée uniquement comme une plage de taille. Lue en mémoire pour le score de bot. La largeur exacte est supprimée.
i1 après la première vraie interaction sur la page (pointeur, touche, toucher ou molette), sinon 0Chaque hitStocké comme un oui ou un non sur la visite. Rien sur l’interaction elle-même n’est envoyé.
rRéférentUniquement s’il y en a unL’hôte et le chemin sont stockés après le nettoyeur de données personnelles. La requête est supprimée, et un référent de votre propre site est effacé.
h1 lorsque le routage par hash est utiliséUniquement lorsque le fragment fait partie de l’adresse de la pageUtilisé en mémoire pour conserver le fragment dans le chemin. Non stocké.
d1 lorsque le navigateur envoie Do Not TrackUniquement lorsqu’il est activéSi le site respecte Do Not Track (désactivé par défaut), le hit est abandonné et rien n’est stocké. Sinon, il est ignoré. L’indicateur n’est jamais stocké.
g1 lorsque le navigateur envoie Global Privacy ControlUniquement lorsqu’il est activéSi le site respecte Global Privacy Control (activé par défaut), le hit est abandonné et rien n’est stocké. Sinon, il est ignoré. L’indicateur n’est jamais stocké.
hp1 sur une page que le propriétaire du site a marquée comme honeypot, 0 sur une page marquée comme atteinte uniquement par des personnesUniquement sur les pages marquées pour la détection avancée des botsUn hit avec 1 ne devient jamais une visite ni un événement. Il est compté comme un bot et, avec les forfaits dotés de la détection avancée des bots, conservé comme hit honeypot. Un hit avec 0 est compté normalement, et seuls nos propres sites en gardent une copie comme échantillon d’entraînement.
ch1 sur une page « confirmez que vous êtes humain » qu’un site montre à quelques visiteurs au hasard, personnes et bots confondusUniquement sur les pages marquées data-hp="ch"Un hit avec 1 ne devient jamais une visite ni un événement et n’est pas compté comme un bot. Avec les forfaits dotés de la détection avancée des bots, il est conservé à côté des hits honeypot, marqué comme défi.
aNom de l’automatisation : webdriver, phantom, nightmare ou cypressUniquement sur une page honeypot ou de défi, lorsqu’un navigateur automatisé est détectéConservé avec le hit honeypot. Ignoré partout ailleurs.
tzNom du fuseau horaire, par exemple America/DenverChaque hit, lorsque le navigateur en indique unComparé en mémoire au pays de la requête pour le score de bot, puis supprimé. Jamais stocké avec une visite ou un événement et jamais utilisé comme localisation. Conservé uniquement avec un hit honeypot ou un échantillon d’entraînement.
xpValeur d’aperçu d’expérience, issue de pa_preview dans l’adressePages vues uniquement, lorsque l’adresse contient pa_previewUtilisée en mémoire pour afficher la version en aperçu. La page vue n’est pas comptée pour l’expérience. Non stockée.
pPropriétés personnaliséesPages vues et événements personnalisésJusqu’à 30 sont stockées après le nettoyeur de données personnelles. Le revenu et la devise sont stockés dans leurs propres champs.
eTemps visible sur la page, en millisecondesHits d’engagementStocké, plafonné à 4 heures.
sdProfondeur de défilement, en pourcentageHits d’engagementStockée par tranches de 10 %.
nNom de l’événementÉvénements personnalisésStocké, tronqué à 120 caractères.
vValeur d’un Web VitalHits vital (module Web Vitals)Stockée avec le nom du Web Vital, pour un échantillon de hits.
cSélecteur CSS court de l’élément cliqué, ou le nom que le site lui a donnéHits click (module carte des clics)Stocké, tronqué à 512 caractères. Ni coordonnées ni texte.

Le module de sondage facultatif envoie ses propres petites requêtes. Elles sont listées avec la référence complète dans la documentation. Ce que conserve un hit honeypot est décrit dans Détection avancée des bots.

Où résident vos données

Stockage et traitement aux États-Unis, et garanties de transfert.

Espace conformité

RGPD, ePrivacy, lois des États américains et plus encore.

Accord de traitement des données

Inclus dans nos conditions.

Commencez à mesurer sans cookies

Ni cookies, ni fingerprinting, ni bandeau de consentement nécessaire pour la mesure.

Votre premier espace de travail démarre avec 14 jours de Pro, gratuits. Ensuite, il passe au forfait gratuit, avec 10 k événements par mois, 3 sites et 3 mois d’historique. Sans carte bancaire.