Localhost-Tests
Standardmäßig blockiert Zenovay das Tracking auf localhost und anderen lokalen Umgebungen, um zu verhindern, dass Testdaten deine Analysen verunreinigen. Du kannst das lokale Tracking für Entwicklung und Tests aktivieren.
Localhost-Tracking aktivieren
Option 1: Dashboard-Toggle (Empfohlen)
- Gehe zu deinem Zenovay-Dashboard
- Öffne Domains und klicke auf deine Website
- Öffne in den Domain-Einstellungen den Bereich Advanced
- Aktiviere den Toggle "Allow Localhost"
- Klicke auf Speichern
Änderungen werden innerhalb von 30 Sekunden bei neuen Seitenaufrufen wirksam. Wenn die Seite bereits offen war, führe einen Hard Refresh durch (Ctrl+Shift+R / Cmd+Shift+R).

Option 2: Script-Attribut
Wenn du dies lieber umgebungsspezifisch über deinen HTML-Code steuern möchtest, füge data-allow-localhost="true" zum Script-Tag hinzu:
<script defer
data-tracking-code="YOUR_TRACKING_CODE"
data-allow-localhost="true"
src="https://api.zenovay.com/z.js">
</script>Hinweis: Die Dashboard-Einstellung oben ist die maßgebliche Steuerung. Der Server akzeptiert Localhost-Events nur, wenn sie aktiviert ist, und der Einstellungs-Abruf des Trackers hat Vorrang vor diesem Attribut. Behalte das Attribut für die Offline-Entwicklung (wenn der Einstellungs-Abruf nicht möglich ist); auf Produktions-Domains hat es keine Wirkung.
Option 3: Dynamisches Script-Laden
Für Frameworks wie React oder Next.js, bei denen du das Script dynamisch lädst:
const script = document.createElement('script');
script.src = 'https://api.zenovay.com/z.js';
script.defer = true;
script.setAttribute('data-tracking-code', 'YOUR_TRACKING_CODE');
script.setAttribute('data-allow-localhost', 'true');
document.head.appendChild(script);So funktioniert es
Zenovay erkennt lokale Umgebungen, indem es den Hostnamen überprüft:
| Hostname | Als lokal erkannt |
|---|---|
localhost | Ja |
127.0.0.1 | Ja |
::1 | Ja |
*.localhost (z.B. app.localhost) | Ja |
*.local (z.B. mysite.local) | Ja |
127.x.x.x (jede Loopback) | Ja |
Wenn eine lokale Umgebung erkannt wird, überprüft der Tracker zwei Dinge (der Reihe nach):
- Server-Einstellungen — Der Tracker lädt deine Website-Konfiguration von der Zenovay-API. Wenn
allow_localhostim Dashboard aktiviert ist, wird das Tracking fortgesetzt. - Script-Attribut — Wenn der API-Aufruf fehlschlägt oder noch nicht abgeschlossen ist, dient das
data-allow-localhost="true"-Attribut auf dem Script-Tag als Fallback.
Wenn beides nicht gesetzt ist, wird das Tracking blockiert und du siehtst diese Nachricht in der Browser-Konsole:
[Zenovay] Environment blocked — Localhost blocked (use data-allow-localhost='true' to enable)
Überprüfe, ob es funktioniert
Browser-Konsole
Öffne die DevTools (F12) → Reiter Konsole. Mit aktiviertem Localhost-Tracking solltest du sehen:
Zenovay Analytics loaded { trackingCode: "ZV_...", reason: "Active" }
Wenn Localhost blockiert ist, siehtst du:
[Zenovay] Environment blocked { reason: "Localhost blocked (use data-allow-localhost='true' to enable)" }
Um detaillierte Debug-Ausgabe zu sehen, aktiviere auch den Debug Mode in den Advanced-Einstellungen der Domain (öffne Domains, wähle deine Website aus, öffne dann den Bereich Advanced), oder füge data-debug="true" zum Script-Tag hinzu. Dies ist eine separate Einstellung von Allow Localhost.
Netzwerk-Reiter
Öffne DevTools → Reiter Netzwerk und filtere nach zenovay oder api.zenovay.com:
GET z.js— Script wird geladen (200 OK)GET /api/websites/settings/ZV_...— Einstellungen abrufen (200 OK, Antwort enthältallow_localhost: true)POST /e/ZV_...— Seitenaufruf-Ereignis verfolgt (200 OK)
Wenn Schritt 3 403 zurückgibt, blockiert deine Domain-Verifizierung die Anfrage. Stelle sicher, dass allow_localhost in deinen Dashboard-Einstellungen aktiviert ist.
Dashboard
Nach einem Seitenaufruf auf Localhost gehe zu deinem Zenovay-Dashboard. Öffne Domains, wähle deine Website aus und öffne den Reiter Analytics. In der Hosts-Aufschlüsselung solltest du localhost (oder 127.0.0.1) als Quelle sehen.
Debug Mode vs Allow Localhost
Dies sind zwei separate Einstellungen mit unterschiedlichen Zwecken:
| Einstellung | Zweck | Wo aktivierbar |
|---|---|---|
| Allow Localhost | Ermöglicht dem Tracker, auf lokalen Umgebungen zu arbeiten | Domains, deine Website auswählen, Bereich Advanced, Toggle "Allow Localhost" |
| Debug Mode | Protokolliert detaillierte Tracking-Ereignisse in der Browser-Konsole | Domains, deine Website auswählen, Bereich Advanced, Toggle "Debug Mode" |
Du kannst während der Entwicklung beide aktivieren, um maximale Sichtbarkeit zu erhalten, aber sie funktionieren unabhängig voneinander.
- Allow Localhost kontrolliert nur, ob Tracking auf Localhost läuft
- Debug Mode kontrolliert nur, ob Debug-Ausgabe in der Konsole angezeigt wird
Mit dem Load-Endpunkt verwenden
Wenn du den /load-Endpunkt verwendest (empfohlen für Produktion), werden Localhost-Einstellungen automatisch vom Server eingespritzt:
<script defer
data-tracking-code="YOUR_TRACKING_CODE"
src="https://api.zenovay.com/load/YOUR_TRACKING_CODE">
</script>Mit dem /load-Endpunkt musst du nur "Allow Localhost" im Dashboard aktivieren — das data-allow-localhost-Attribut ist nicht erforderlich.
First-Party Proxy auf Localhost
Wenn dein Produktions-Setup einen First-Party Proxy verwendet (z.B. /api/_z/script.js), funktioniert der Proxy normalerweise nicht auf localhost, da es eine serverseitige Route ist, die zu api.zenovay.com weitergeleitet wird.
Lösungen:
- Verwende das direkte Script auf Localhost: Wechsle in der Entwicklung zu
https://api.zenovay.com/z.js - Richte einen lokalen Proxy ein: Konfiguriere deinen Dev-Server, um
/api/_z/zuhttps://api.zenovay.com/zu proxieren - Verwende eine umgebungsbasierte Script-URL: Lade von deinem Proxy in der Produktion, direkt in der Entwicklung
const isDev = window.location.hostname === 'localhost';
const script = document.createElement('script');
script.src = isDev
? 'https://api.zenovay.com/z.js'
: '/api/_z/script.js';
script.defer = true;
script.setAttribute('data-tracking-code', 'YOUR_TRACKING_CODE');
if (isDev) script.setAttribute('data-allow-localhost', 'true');
document.head.appendChild(script);Fehlerbehebung
Tracking funktioniert nicht auf Localhost
- Überprüfe die Dashboard-Einstellung: Öffne Domains, wähle deine Website aus, öffne den Bereich Advanced und verifiziere, dass "Allow Localhost" aktiviert ist
- Hard Refresh: Änderungen können bis zu 30 Sekunden dauern. Führe Ctrl+Shift+R aus, um gecachte Scripts zu löschen
- Überprüfe die Konsole: Öffne DevTools und suche nach
[Zenovay]-Meldungen - Verifiziere, dass das Script geladen wird: Überprüfe den Netzwerk-Reiter für
z.js, das 200 zurückgibt - Überprüfe auf Ad-Blocker: Browser-Erweiterungen können Analysen sogar auf Localhost blockieren
Ereignisse geben 403 zurück
Die API lehnte deine Tracking-Anfrage aufgrund der Domain-Verifizierung ab. Dies bedeutet:
allow_localhostist nicht in deinen Website-Einstellungen aktiviert, ODER- Die Einstellung hat sich noch nicht propagiert (warte 30 Sekunden und versuche es erneut)
Ereignisse werden ausgelöst, aber Daten erscheinen nicht im Dashboard
Localhost-Daten erscheinen in deinen Analysen neben Produktionsdaten. Überprüfe:
- Reiter Hosts in Analytics — suche nach
localhost-Einträgen - Filter — stelle sicher, dass du localhost-Traffic nicht filterst
- Zeitbereich — stelle sicher, dass du Daten von heute anschaust
Denk daran, "Allow Localhost" zu deaktivieren, bevor du in Produktion gehst, wenn du keine Testdaten in deinen Analysen haben möchtest. Alternativ kannst du den data-allow-localhost-Attribut-Ansatz verwenden, damit er nur in deiner Entwicklungsumgebung aktiv ist.