12

Modelo de datos

Las cuatro fuentes de eventos comparten una sola tabla Event. La columna eventSource las distingue. Los metadatos específicos de cada fuente están en la columna JSON properties.

Mapeo de campos

Campo
Web
CLI
MCP
API
eventName
pageview
cli.command
mcp.tool
api.request
eventSource
web
cli
mcp
api
pathname
Ruta URL
/command
/tool_name
/endpoint
referrer
document.referrer
(empty)
mcp://client
(empty)
properties
propiedades personalizadas
command, flags, duration, exit_code, os
tool, client, duration, success
method, endpoint, status_code, duration

TrackedVisitor

TrackedVisitor guarda los datos de perfil por sitio separados de los eventos: un externalId opaco, nombre visible, lifecycleStage y customerSince. La primera atribución se deriva de la primera página vista, por lo que cambiar el período nunca reescribe la adquisición.

13

Privacidad

BetterMeter está diseñado desde cero para respetar la privacidad del usuario. No se necesitan banners de consentimiento. Cumple con GDPR por defecto.

01

Sin cookies

El seguimiento anónimo no usa cookies ni almacenamiento local. La huella digital sigue desactivada salvo activación explícita.

02

Identidad solo explícita

Llamar a identify() permite que ese sitio guarde el ID opaco en el almacenamiento local para sesiones posteriores; reset() lo elimina. Evita correos y datos personales directos, y aplica tus requisitos de consentimiento.

03

Identificadores hasheados

Las direcciones IP se hashean con HMAC-SHA-256 usando un secreto de visitantes del servidor. La IP sin procesar nunca se almacena. Los hashes diarios rotan cada 24 horas, mientras que un hash estable por sitio permite perfiles de visitantes sin exponer la IP original.

04

Sin recopilación automática de datos personales

Los eventos analíticos no recopilan automáticamente nombres, correos, cuerpos de solicitud ni direcciones IP sin procesar. Los nombres de perfil e identificadores opacos opcionales los proporciona deliberadamente un operador; los ID del SDK se hashean por defecto y las claves sensibles se redactan.

05

Enviar y olvidar

Las llamadas de analíticas son asíncronas y nunca lanzan excepciones. Un fallo de red descarta silenciosamente el evento. Las analíticas nunca deben interrumpir la aplicación principal.

06

Desactivación

Configure disabled: true en la configuración del SDK o BETTERMETER_DISABLED=1 como variable de entorno.

07

Pipeline abierto

Cada evento pasa por la misma función processEvent(). Puede auditar exactamente qué se recopila y almacena.