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
npm install express-http-proxy2. Configurar o proxy
Adicione a seguinte configuração de proxy à sua aplicação Express.js:
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:
<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:
- Navegue até ao seu site
- Abra as ferramentas de desenvolvedor do navegador e mude para o separador Network
- 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:
- Garanta que o seu proxy define
x-flowsery-real-ipcom o IP real do visitante (e não com o IP do servidor) ao encaminhar pedidos para o endpoint/eventsdo Flowsery Analytics. - Se o Express estiver atrás de outro proxy (Nginx, Cloudflare, etc.),
srcReq.ipserá esse proxy a montante, não o visitante. Leia diretamentecf-connecting-ipoux-real-ip, como mostrado no passo 2.