Prise en main

Catalogue d'événements

Défini dans packages/analytics/src/core/events.ts. Les noms et les charges utiles sont vérifiés à la compilation, puis validés à l'exécution par Zod avant tout envoi.

C'est le seul fichier propre au projet : pour réutiliser les paquets ailleurs, on le remplace. Aucun adaptateur ne connaît un nom d'événement.

ÉvénementVersionPropriétésÉmis par
page_viewed1path, localePageTracker (intégration)
search_performed1outcome, resultCount, localeÀ brancher sur la recherche
outbound_link_clicked1target, fromSectionÀ brancher sur OutboundLinkTracker
record_viewed1kind, recordId, localeFiches hors personnes
feature_used1feature, surface?Libre

Les cinq sont câblés depuis le 27/10/2026, chacun depuis un seul point d'appel partagé avec les compteurs Prometheus (src/features/analytics/events.ts) :

ÉvénementOù il est émis
page_viewedPageTracker, dans la mise en page
search_performedPagefindSearch, au même endroit que l'envoi vers /api/telemetry
outbound_link_clickedOutboundLinkTracker, avec la section d'origine en plus de la catégorie
record_viewedFiches de structure, projet, groupe et thématique — jamais personne
feature_usedUsage réel des filtres de liste

record_viewed n'est pas émis sur les fiches de personnes : enregistrer quels chercheurs sont consultés dépasse ce que l'ADR 006 autorise, et la DPO ne s'est pas prononcée.

Ce que le catalogue interdit volontairement

Le vocabulaire est fermé, dans la continuité de la route /api/telemetry existante :

  • aucun terme de recherche : search_performed ne porte que l'issue et le nombre de résultats ;
  • aucune URL complète ni query string ;
  • recordId est un identifiant public de structure (numéro RNSR), jamais un identifiant de personne ;
  • fromSection et surface sont des énumérations, pas du texte libre, pour borner la cardinalité.

Versionner un schéma

eventVersion accompagne chaque envoi. L'incrémenter dès qu'un changement casse la compatibilité : propriété retirée, type modifié, sémantique différente. Ajouter une propriété facultative ne la change pas.

Déduplication

eventId est un identifiant unique par événement. Les fournisseurs qui savent dédupliquer peuvent s'en servir. La livraison reste « au mieux » : ni Umami ni Matomo ne garantissent l'unicité.

Ajouter un événement

  1. Déclarer le schéma dans EVENT_SCHEMAS, avec sa version.
  2. Le documenter ici, en indiquant qui l'émet.
  3. Vérifier que les propriétés respectent les interdits ci-dessus.
  4. L'appeler via useTrackEvent() côté navigateur, ou le client serveur.

Aucune modification d'adaptateur n'est nécessaire.