Modèle de données
Les quatre sources d'événements partagent une seule table Event. La colonne eventSource les distingue. Les métadonnées spécifiques à chaque source sont dans la colonne JSON properties.
Correspondance des champs
TrackedVisitor
TrackedVisitor conserve les données de profil propres au site séparément des événements : un externalId opaque, un nom d'affichage, le lifecycleStage et le customerSince. La première attribution reste dérivée de la toute première page vue, donc changer la période ne réécrit jamais l'acquisition.
Confidentialité
BetterMeter est conçu dès le départ pour respecter la vie privée des utilisateurs. Aucune bannière de consentement requise. Conforme au RGPD par défaut.
Sans cookies
Le suivi anonyme n'utilise ni cookie ni stockage local. Le fingerprinting reste désactivé sauf activation explicite.
Identité explicite seulement
L'appel à identify() autorise ce site à conserver l'identifiant opaque fourni dans le stockage local pour les sessions suivantes; reset() le supprime. Évitez les courriels et données personnelles directes, et appliquez vos exigences de consentement.
Identifiants hachés
Les adresses IP sont hachées en HMAC-SHA-256 avec un secret visiteur côté serveur. L'IP brute n'est jamais stockée. Les hachages de visiteurs quotidiens changent toutes les 24 heures, tandis qu'un hachage stable par site permet les profils de visiteurs sans exposer l'IP d'origine.
Aucune collecte automatique de données personnelles
Les événements analytiques ne collectent pas automatiquement les noms, courriels, corps de requête ni adresses IP brutes. Les noms de profil et identifiants opaques facultatifs sont fournis délibérément par un opérateur; les identifiants du SDK sont hachés par défaut et les clés sensibles sont masquées.
Envoi et oubli
Les appels d'analytique sont asynchrones et ne lèvent jamais d'exception. Un échec réseau abandonne silencieusement l'événement. L'analytique ne doit jamais interrompre l'application hôte.
Désactivation
Définissez disabled: true dans la configuration du SDK ou BETTERMETER_DISABLED=1 comme variable d'environnement.
Pipeline ouvert
Chaque événement passe par la même fonction processEvent(). Vous pouvez auditer exactement ce qui est collecté et stocké.