Soporte/Guías de proxy
Guías de proxy

Proxy de Flowsery Analytics con Express.js

Enruta Flowsery Analytics a través de tu servidor Express.js para evitar la interferencia de los adblockers y capturar datos de visitantes más precisos.

1. Instala las dependencias

Terminal
npm install express-http-proxy

2. Configura el proxy

Agrega la siguiente configuración de proxy a tu aplicación Express.js:

JavaScript
const express = require('express');
const proxy = require('express-http-proxy');
const app = express();
 
app.set('trust proxy', true);
 
// Proxy the tracking script
app.use(
  '/js/main.js',
  proxy('analytics.flowsery.com', {
    https: true,
    proxyReqPathResolver: function (req) {
      return '/js/main.js';
    },
  })
);
 
// Proxy the event collection endpoint + forward real visitor IP
app.use(
  '/api/track',
  proxy('analytics.flowsery.com', {
    https: true,
    proxyReqPathResolver: function (req) {
      return '/analytics/events';
    },
    proxyReqOptDecorator: function (proxyReqOpts, srcReq) {
      // Determine the real visitor IP. Use whichever header your edge provides.
      const clientIp =
        srcReq.headers['cf-connecting-ip'] || srcReq.headers['x-real-ip'] || srcReq.headers['x-forwarded-for']?.split(',')[0]?.trim() || srcReq.ip;
 
      // CRITICAL: Flowsery reads `x-flowsery-real-ip` as the authoritative
      // visitor IP. Without it, every visitor resolves to your server's
      // region because the proxy hop rewrites `cf-connecting-ip`.
      if (clientIp) {
        proxyReqOpts.headers['x-flowsery-real-ip'] = clientIp;
      }
 
      return proxyReqOpts;
    },
  })
);
 
// Your other routes...
app.listen(3000);

Nota: Si tu aplicación ya usa /api/track, agrega data-api a la etiqueta del script de Flowsery Analytics para redirigir los eventos a otra ruta. Por ejemplo, data-api="/flowsery-events" enviará los datos a /flowsery-events.

Importante: Si todos los visitantes aparecen en la misma ubicación en tu panel, confirma que x-flowsery-real-ip se esté estableciendo con la IP real del visitante, no con la del servidor proxy, al reenviar solicitudes al endpoint /events de Flowsery Analytics.

3. Modifica la etiqueta del script

Reemplaza el snippet original de Flowsery Analytics por la versión con proxy:

HTML
<script defer data-fl-website-id="flid_******" src="/js/main.js"></script>

4. Despliega

Después de desplegar tu servidor, la configuración del proxy se activa automáticamente.

Confirmar que funciona

Para validar que el proxy funciona correctamente:

  1. Navega a tu sitio web.
  2. Abre las herramientas de desarrollo del navegador y ve a la pestaña Network.
  3. Verifica que las solicitudes de analítica se sirvan desde tu dominio y no desde analytics.flowsery.com.

Solución de problemas

Todos los visitantes aparecen desde la misma ubicación

Cuando todos los visitantes muestran una única ubicación geográfica, normalmente la región de tu servidor, el proxy no está reenviando correctamente las IP reales.

Resolución:

  1. Asegúrate de que tu proxy establezca x-flowsery-real-ip con la IP real del visitante, no con la IP del servidor, al reenviar solicitudes al endpoint /events de Flowsery Analytics.
  2. Si Express está detrás de otro proxy, como Nginx o Cloudflare, srcReq.ip será la IP de ese proxy ascendente, no la del visitante. Lee directamente cf-connecting-ip o x-real-ip, como en el ejemplo del paso 2.