¿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.