Pilote Orléans · configuration, pas un fork · aucun lieu inventé

Livrable 22

Analytics

Instrument de vérité interne. Pas un tableau de vanity. Pas de pixel publicitaire par défaut.

Événements

Noms stables :

search · search_result_click · search_zero · venue_view · event_view · offer_view · map_open · map_marker_click · directions_request · booking_click · booking_start · booking_complete · favorite_add · follow_add · night_plan_created · night_plan_started · share · business_publish · campaign_created · report_submitted

Propriétés communes : city_id, occurred_at, entity_id si pertinent, surface (home|now|map|search|venue|…).

Absents volontairement : lat/lng, IP, user agent complet, texte libre non normalisé au-delà de la query (la query va dans search_gaps normalisée, pas en clair indéfiniment).

booking_complete n'existe que lorsqu'une réservation interne existe. Un clic sortant = booking_click, jamais une réservation.

Définitions de métriques

NomDéfinition
Découverte réussiesession (id éphémère 1re partie, pas un cookie long sans consentement) avec au moins une action forte : directions, booking_click, favorite, follow, share, night_plan_created, offer click
Pro actifsur une fenêtre glissante : login ou business_publish ou edit event ou edit offer
Fraîcheur% d'entités publiées dont le statut n'est pas STALE ni EXPIRED — le dénominateur est « publiées », le numérateur suit la définition Live
Couverturecomptage de lieux/events par zone parmi les données ingérées, pas « % de la réalité »
Rétention procomptes pro avec une action sur deux périodes successives. Pas de % inventé

North stars produit : voir vision. Aucune cible numérique dans cette architecture.

Interdits

Users online fictifs, trending sans fenêtre et sans seuil, stock, popularité, visiteurs physiques, social proof, « reach estimé », ROI, « clients gagnés ».

Trending, si un jour affiché : top des entités par actions fortes sur 7 jours, dans la ville, avec un minimum d'occurrences (seuil de politique, à fixer quand le bruit est observable — pas maintenant). Sous le seuil : module absent.

Pro

Le pro voit ses counts : vues fiche, vues carte (marker ou liste sur son id), directions, booking clicks, offer clicks, event views. Période affichée. Pas d'extrapolation.

Insight texte : seulement une reformulation du count (« consulté N fois »). N vient de la requête.

City

Recherches sans résultat, entités stale, lieux non claim, events sans source, activité numérique par zone (sums). Export CSV des agrégats.

Décisions

D1 — First party, append-only, puis agrégats

  • Alternatives : SaaS analytics (rapide, transfert, consentement). Possible plus tard, pas le défaut.
  • Compromis : on construit un petit pipeline.
  • Sandbox : table analytics_events. Pas de warehouse.

D2 — Trois classes, pas un oui global

ClasseExemplesConsentement
Sécuritélogin, rate limit, auditpas une bannière. Rétention courte. Jamais un tableau pro.
Agrégat opérationnelsearch_gaps (requête normalisée, sans user id, sans IP), comptes d'objets publiéspas un profil. Durée proposée 30 jours. Requêtes à caractère sensible (santé, religion, orientation, opinion) : non stockées. LEGAL REVIEW REQUIRED avant de traiter ça comme « strictement nécessaire ».
Mesurevues, clics, directions, carte, favorisoff tant que cookies n'est pas oui

Le dashboard pro n'affiche un count de mesure que parmi les sessions consenties, avec la phrase « sessions ayant accepté la mesure ». S'il n'y en a pas : « pas encore de mesure consentie ». Jamais un 0 nu qui voudrait dire « personne n'est intéressé ».

booking_complete est inactif. La north star « réservation » au MVP est un booking_click sortant, libellé comme tel.

La distance n'est pas une métrique. Sans origine consentie, le filtre distance n'est pas proposé (pas de centroïde silencieux).

Flags

  • Pas de volume de référence.
  • booking_complete : inactif tant qu'il n'y a pas de réservation interne.