Proxy Flowsery Analytics avec Express.js
Faites transiter Flowsery Analytics via votre serveur Express.js afin d'eviter les interferences des bloqueurs de publicites et de capturer des donnees visiteurs plus precises.
1. Installer les dependances
npm install express-http-proxy2. Mettre en place le proxy
Ajoutez la configuration proxy suivante a votre application 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);Remarque : si votre application utilise deja /api/track, ajoutez data-api a la balise script Flowsery Analytics pour rediriger les evenements ailleurs. Par exemple, data-api="/flowsery-events" envoie les donnees vers /flowsery-events.
Important : si tous les visiteurs apparaissent au meme endroit dans votre tableau de bord, verifiez que x-flowsery-real-ip est bien defini sur la vraie IP du visiteur (et non celle du serveur proxy) lors du transfert des requetes vers le endpoint /events de Flowsery Analytics.
3. Modifier la balise script
Remplacez le snippet Flowsery Analytics par la version proxifiee :
<script defer data-fl-website-id="flid_******" src="/js/main.js"></script>4. Deployer
Apres le deploiement de votre serveur, la configuration proxy s'active automatiquement.
Verifier que cela fonctionne
Pour valider le bon fonctionnement du proxy :
- Ouvrez votre site web
- Ouvrez les outils de developpement de votre navigateur et passez a l'onglet Reseau
- Verifiez que les requetes analytics sont servies depuis votre domaine plutot que depuis analytics.flowsery.com
Depannage
Tous les visiteurs apparaissent au meme endroit
Lorsque tous les visiteurs affichent une seule localisation geographique (generalement la region de votre serveur), le proxy ne transmet pas correctement les vraies IP des visiteurs.
Resolution :
- Assurez-vous que votre proxy definit
x-flowsery-real-ipsur la vraie IP du visiteur (et non l'IP du serveur) lors du transfert des requetes vers le endpoint/eventsde Flowsery Analytics. - Si Express est derriere un autre proxy (Nginx, Cloudflare, etc.),
srcReq.ipsera l'IP de ce proxy amont, pas celle du visiteur. Lisez directementcf-connecting-ipoux-real-ip, comme montre a l'etape 2.