Aller au contenu principal

Pipeline de données

Comprendre comment les données transitent dans Zenovay — depuis la première page vue d'un visiteur jusqu'aux insights sur le tableau de bord — vous aide à développer et déboguer efficacement.

Flux de suivi des événements

Quand un visiteur arrive sur un site suivi, voici ce qui se passe :

  • Chargement du script : Notre tracker léger (<5 Ko) s'initialise et génère un ID visiteur (stocké 365 jours) et un ID session (timeout 30 minutes).
  • Déclenchement de la pageview : Les données de base sont collectées — URL, référent, taille de viewport, user agent — et envoyées à notre API.
  • Géolocalisation : Cloudflare fournit le pays et la région à partir de l'en-tête CF-Connecting-IP. Pas de géolocalisation côté client.
  • Traitement : Les événements sont validés, enrichis avec la détection d'appareil et stockés dans Supabase.
  • Mise à jour en temps réel : Les abonnés du tableau de bord reçoivent les nouvelles données via les canaux temps réel de Supabase.

Temps réel vs agrégé

Nous équilibrons la réactivité en temps réel avec la performance des requêtes :

  • Temps réel : Les compteurs de visiteurs en direct, sessions actives et événements récents sont servis directement depuis les tables brutes.
  • Agrégé : Les graphiques historiques et rapports interrogent des agrégations quotidiennes pré-calculées pour la vitesse.
  • Tâches cron : L'agrégation quotidienne s'exécute à 00:00 UTC, consolidant les événements de la veille.

Enregistrement du replay de session

Le replay de session utilise la bibliothèque rrweb pour capturer les changements DOM :

  • Enregistrement : rrweb observe les mutations DOM, mouvements de souris, défilements et saisies (avec les données sensibles masquées).
  • Découpage en fragments : Les événements sont regroupés en fragments (max 10 Mo compressés) et téléchargés vers l'API.
  • Stockage : Les fragments sont stockés dans Supabase Storage avec les métadonnées de session dans PostgreSQL.
  • Lecture : Le tableau de bord récupère les fragments à la demande et utilise rrweb-player pour reconstruire la session.

Collecte des cartes de chaleur

Les cartes de chaleur agrègent les données d'interaction à travers de nombreuses sessions :

  • Suivi des clics : Les coordonnées des éléments et les nombres de clics sont enregistrés par rapport au viewport.
  • Profondeur de défilement : Les positions de défilement maximales sont suivies pour montrer l'engagement avec le contenu.
  • Captures d'écran : Les captures d'écran de pages (max 2 Mo) sont prises pour le rendu en superposition.
  • Agrégation : Les données de clics et de défilement sont agrégées entre les sessions pour la signification statistique.

Scoring des visiteurs par ML

Chaque visiteur reçoit un score de valeur (0-100) basé sur plusieurs facteurs :

  • Multiplicateurs par pays : Pouvoir d'achat géographique (ex. Suisse 95, États-Unis 88, Inde 28)
  • Signaux d'appareil : L'OS et le navigateur sont corrélés aux taux de conversion (macOS 95, iOS 90, Android 45)
  • Patterns comportementaux : Durée de session, profondeur de page et métriques d'engagement
  • Affinement ML : Un modèle entraîné ajuste les scores en fonction des données historiques de conversion

Tâches planifiées

Les tâches en arrière-plan maintiennent les données à jour et les systèmes en bonne santé :

  • Quotidien 00:00 UTC : Agrégation analytique, génération d'insights IA
  • Toutes les 6 heures : Nettoyage du cache, vérifications de santé
  • Lundis 8h : Rapports clients hebdomadaires pour les agences
  • Toutes les 5 minutes : Vérifications de surveillance de disponibilité
  • Toutes les heures : Avertissements d'expiration d'abonnement
  • Quotidien 2h : Fermeture automatique des tickets de support inactifs