Resumen
{{ rangeLabel }}
Visitas
{{ totalVisits }}
Visitantes únicos
{{ uniqueVisitors }}
Países
{{ countryCount }}
Promedio diario
{{ avgDaily }}
Visitas por día
Evolución del tráfico
{{ firstDay }}
Máximo: {{ maxDay }} visitas
{{ lastDay }}
Países
De dónde nos leen
{{ c.name }}
{{ c.label }}
Páginas
Más vistas
{{ p.path }}
{{ p.label }}
Registro
Últimas visitas
Lee la tabla visits. Las IPs se guardan anonimizadas (último octeto en cero) para cumplir con normativa de privacidad.
Para conectar con la base real
Cada carga del sitio hace POST /api/visit. El servidor lee la IP del request, resuelve el país con GeoLite2 y guarda la fila. Este panel consume GET /api/visits?days=30.
CREATE TABLE visits ( id BIGINT AUTO_INCREMENT PRIMARY KEY, ip VARCHAR(45), -- anonimizada: 200.45.12.0 ip_hash CHAR(64), -- para contar únicos sin guardar la IP cruda country VARCHAR(2), -- AR, ES, US… (GeoLite2) country_name VARCHAR(80), city VARCHAR(120), lang VARCHAR(8), -- es / en path VARCHAR(255), referrer VARCHAR(255), user_agent VARCHAR(255), created_at DATETIME NOT NULL, INDEX (created_at), INDEX (country) );