Suporte/Guias de proxy
Guias de proxy

Proxy do Flowsery Analytics com Express.js

Encaminhe o Flowsery Analytics através do seu servidor Express.js para evitar interferência de bloqueadores de anúncios e capturar dados de visitantes mais precisos.

1. Instalar dependências

Terminal
npm install express-http-proxy

2. Configurar o proxy

Adicione a seguinte configuração de proxy à sua aplicação 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: Se a sua aplicação já usa /api/track, adicione data-api à tag de script do Flowsery Analytics para encaminhar eventos para outro caminho. Por exemplo, data-api="/flowsery-events" envia os dados para /flowsery-events.

Importante: Se todos os visitantes aparecerem na mesma localização no seu painel, confirme que x-flowsery-real-ip está definido com o IP real do visitante (e não com o IP do servidor proxy) ao encaminhar pedidos para o endpoint /events do Flowsery Analytics.

3. Modificar a tag de script

Substitua o snippet original do Flowsery Analytics pela versão com proxy:

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

4. Fazer deploy

Depois de fazer deploy do seu servidor, a configuração do proxy é ativada automaticamente.

Confirmar que funciona

Para validar que o proxy está a funcionar corretamente:

  1. Navegue até ao seu site
  2. Abra as ferramentas de desenvolvedor do navegador e mude para o separador Network
  3. Verifique que os pedidos de analytics são servidos a partir do seu domínio em vez de analytics.flowsery.com

Resolução de problemas

Todos os visitantes aparecem da mesma localização

Quando todos os visitantes mostram uma única localização geográfica (normalmente a região do seu servidor), o proxy não está a encaminhar corretamente os IPs reais dos visitantes.

Resolução:

  1. Garanta que o seu proxy define x-flowsery-real-ip com o IP real do visitante (e não com o IP do servidor) ao encaminhar pedidos para o endpoint /events do Flowsery Analytics.
  2. Se o Express estiver atrás de outro proxy (Nginx, Cloudflare, etc.), srcReq.ip será esse proxy a montante, não o visitante. Leia diretamente cf-connecting-ip ou x-real-ip, como mostrado no passo 2.