Unterstützung/Proxy-Anleitungen
Proxy-Anleitungen

Flowsery Analytics mit Express.js proxyen

Leiten Sie Flowsery Analytics über Ihren Express.js-Server weiter, um Störungen durch Adblocker zu vermeiden und genauere Besucherdaten zu erfassen.

1. Abhängigkeiten installieren

Terminal
npm install express-http-proxy

2. Proxy einrichten

Fügen Sie die folgende Proxy-Konfiguration zu Ihrer Express.js-App hinzu:

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);

Hinweis: Wenn Ihre App bereits /api/track verwendet, fügen Sie dem Flowsery-Analytics-Skript data-api hinzu, um Events an einen anderen Pfad zu senden. Zum Beispiel sendet data-api="/flowsery-events" Daten stattdessen an /flowsery-events.

Wichtig: Wenn im Dashboard jeder Besucher aus demselben Ort zu kommen scheint, prüfen Sie, ob x-flowsery-real-ip beim Weiterleiten an den Flowsery-Analytics-Endpunkt /events auf die echte Besucher-IP gesetzt wird und nicht auf die IP des Proxy-Servers.

3. Skript-Tag anpassen

Ersetzen Sie das ursprüngliche Flowsery-Analytics-Snippet durch die geproxyte Variante:

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

4. Deploy

Nach dem Deploy Ihres Servers wird die Proxy-Konfiguration automatisch aktiv.

Prüfen, ob es funktioniert

So validieren Sie das Proxy-Setup:

  1. Öffnen Sie Ihre Website.
  2. Öffnen Sie die Entwicklerwerkzeuge Ihres Browsers und wechseln Sie zum Tab "Network".
  3. Prüfen Sie, ob Analytics-Requests über Ihre Domain statt über analytics.flowsery.com ausgeliefert werden.

Fehlerbehebung

Jeder Besucher scheint aus demselben Ort zu kommen

Wenn alle Besucher aus einer einzigen geografischen Region erscheinen (typischerweise aus der Region Ihres Servers), leitet der Proxy die echte Besucher-IP nicht korrekt weiter.

Lösung:

  1. Stellen Sie sicher, dass Ihr Proxy x-flowsery-real-ip beim Weiterleiten an den Flowsery-Analytics-Endpunkt /events auf die tatsächliche Besucher-IP setzt und nicht auf die Server-IP.
  2. Wenn Express hinter einem weiteren Proxy läuft (Nginx, Cloudflare usw.), ist srcReq.ip die IP dieses Upstream-Proxys und nicht die des Besuchers. Lesen Sie stattdessen direkt cf-connecting-ip oder x-real-ip, wie in Schritt 2 gezeigt.