¿Por qué dejar de usar Google Analytics?
Aunque herramientas como Google Analytics son potentes, tienen tres grandes problemas: afectan el rendimiento de carga (WPO), son bloqueadas por AdBlockers y plantean desafíos de privacidad.
En este artículo, te enseñaré cómo implementé mi propio motor de analíticas en andressy.dev usando el stack que dominamos: Node.js, Express y Prisma.
🛠️ 1. El Modelo de Datos (Prisma)
Lo primero es definir qué queremos medir. Para un sistema robusto, necesitamos rastrear la página visitada, el tipo de dispositivo y el origen (Referrer).
Fragmento de código
// fragmento de schema.prisma
model PageStats {
id String @id @default(uuid())
path String @unique
views Int @default(0)
updatedAt DateTime @updatedAt
}
model Analytics {
id String @id @default(uuid())
browser String?
device String? // Mobile o Desktop
os String?
referrer String?
timestamp DateTime @default(now())
}
🚀 2. El Middleware de Tracking
La clave es un Middleware. Este código se ejecuta en cada petición antes de mostrar la página, capturando la información del encabezado User-Agent.
JavaScript
const trackBehavior = async (req, res, next) => {
const userAgent = req.headers['user-agent'];
const path = req.path;
// Filtramos bots y rutas administrativas
if (path.includes('/admin') || path.includes('/wp-admin')) {
return next();
}
try {
// Actualizamos contador de la página
await prisma.pageStats.upsert({
where: { path },
update: { views: { increment: 1 } },
create: { path, views: 1 }
});
// Registramos metadatos de la visita
await prisma.analytics.create({
data: {
device: userAgent.includes('Mobile') ? 'Mobile' : 'Desktop',
referrer: req.headers['referer'] || 'Directo'
}
});
} catch (error) {
console.error("Error en analíticas:", error);
}
next();
};
📊 3. Visualización en tiempo real
Con los datos en la base de datos, el siguiente paso es crear un Dashboard. Gracias a Prisma, podemos agrupar los datos fácilmente para mostrar porcentajes de dispositivos y las páginas más populares (Top Pages).
Esto nos permite tomar decisiones basadas en datos reales sin que el usuario tenga que descargar scripts pesados de terceros.
🎯 Conclusión y Beneficios
Implementar tu propia solución de analíticas no solo te da control total sobre los datos, sino que mejora la velocidad de tu sitio, un factor crítico para el SEO.
Al delegar la detección de errores y el tracking a una lógica nativa, elevamos la calidad de entrega y la privacidad del usuario final.