Installations-Status
Überprüfen Sie, ob Ihr Zenovay-Tracker funktioniert, ohne den Echtzeit-Globus beobachten zu müssen. Der Endpoint Install Health liefert eine strukturierte Momentaufnahme der jüngsten Tracker-Aktivität, der Erreichbarkeit Ihrer Website, der aktuellen Cookieless- und Einwilligungs-Konfiguration sowie eine umsetzbare Liste etwaiger Probleme.
Diese URL kann nicht direkt im Browser geöffnet werden. Der Endpoint erfordert ein Bearer-JWT — beim Öffnen der URL in einem neuen Tab erhalten Sie 401 Missing or invalid authorization header. Unterstützte Wege, den Bericht anzusehen:
- Dashboard (empfohlen) — melden Sie sich bei app.zenovay.com an, öffnen Sie Ihre Domain und klicken Sie auf Einstellungen → Install Health.
- API — rufen Sie den Endpoint mit einem gültigen Bearer-JWT (Ihr Dashboard-Sitzungstoken) auf. Siehe API-Referenz unten.
Wo Sie ihn finden
Im Zenovay-Dashboard:
- Öffnen Sie die Seite Domains und klicken Sie auf Ihre Domain.
- Öffnen Sie Einstellungen und klicken Sie auf den Tab Install Health.
- Der Bericht aktualisiert sich automatisch alle 30 Sekunden. Mit Aktualisieren erzwingen Sie eine Neuprüfung.
Antwort lesen
Jeder Aufruf liefert ein JSON-Objekt mit den folgenden Feldern:
| Feld | Typ | Bedeutung |
|---|---|---|
last_event_seen_at | ISO8601 | null | Zeitpunkt, zu dem Zenovay zuletzt ein Ereignis für diese Website empfangen hat. |
minutes_since_last_event | number | null | Praktische Ableitung des obigen Werts. |
last_event_count_5m | number | Seitenaufrufe + benutzerdefinierte Ereignisse in den letzten 5 Minuten. |
last_event_count_24h | number | Derselbe Wert über die letzten 24 Stunden. |
script_reachable | boolean | null | Ergebnis einer serverseitigen HEAD-Anfrage an Ihre Domain. null = Probe blockiert oder Sandbox; false = HTTP-Fehler; true = Website antwortet normal. |
script_version | string | null | Tracker-Version, die Zenovay aktuell ausliefert. |
csp_blocking_suspected | boolean | Reserviert für eine zukünftige Heuristik; in V1 immer false. |
cookieless_enabled | boolean | true, wenn entweder der Cookieless-Schalter im Dashboard aktiviert ist oder das ausgelieferte HTML data-cookieless="true" auf dem Zenovay-Skript-Tag enthält. SPAs, die das Skript aus einem separaten JS-Bundle injizieren (Next.js, dynamische Loader), werden vom HTML-Scan nicht erkannt — schalten Sie in diesem Fall die Dashboard-Einstellung explizit ein. |
consent_recording_active | boolean | Ob das Cookie-Einwilligungs-Banner (CMP) für diese Site konfiguriert ist. Dies ist NICHT Session Replay — die Sitzungs-Aufzeichnung ist eine separate Pro+-Funktion und wird unter Domain → Einstellungen → Berichte gesteuert. |
last_5_event_types | string[] | Die fünf zuletzt empfangenen benutzerdefinierten Ereignistypen. |
issues | array | Vom Diagnose erkannte umsetzbare Punkte — siehe unten. |
Status-Farben im Dashboard
Die vier Kacheln am oberen Rand des Tabs verwenden folgende Schwellenwerte:
- Grün — Ereignisse innerhalb der letzten 5 Minuten empfangen.
- Gelb — Ereignisse innerhalb der letzten Stunde, aber nicht in den letzten 5 Minuten.
- Rot — Mehr als eine Stunde stumm oder noch nie ein Ereignis empfangen.
Häufige Probleme und Lösungen
Das Array issues enthält Diagnose-Codes, die Zenovay zurückgeben kann. Jeder Eintrag hat eine severity, einen stabilen code, eine menschenlesbare message und eine fix_url.
| Code | Schweregrad | Bedeutung | Was zu tun ist |
|---|---|---|---|
awaiting_first_event | info | Die Website wurde vor weniger als 24 Stunden angelegt und es ist noch kein Ereignis eingegangen. | Laden Sie Ihre Website neu, um den ersten Seitenaufruf zu senden. |
script_never_installed | error | Zenovay hat für diesen Tracking-Code noch nie ein Ereignis empfangen. | Stellen Sie sicher, dass das Tracking-Skript auf jeder Seite vorhanden ist. |
silent_tracker | error | Der aktuelle Abstand zwischen Ereignissen ist mindestens 10× länger als der typische Abstand für diese Site (Mindestschwelle 6 Stunden, Obergrenze 7 Tage). Wird nur ausgelöst, wenn die Site in den letzten 24 Stunden ≥5 Ereignisse hatte — persönliche Sites mit einem Besucher pro Tag lösen es niemals fälschlich aus. | Prüfen Sie, ob das Skript-Tag noch vorhanden ist, ein Ad-Blocker die Anfrage abfängt oder eine Content Security Policy api.zenovay.com blockiert. |
tracker_quiet | warn | Der aktuelle Abstand ist mindestens 3× länger als der typische Abstand für diese Site (Mindestschwelle 1 Stunde, Obergrenze 24 Stunden). Wird nur ausgelöst, wenn die Site in den letzten 24 Stunden ≥10 Ereignisse hatte; Low-Traffic-Sites werden bewusst nicht gewarnt. | Öffnen Sie Ihre Website in einem neuen Tab, um die Tracking-Funktion zu bestätigen. Die Warnung enthält den tatsächlichen und den typischen Abstand, sodass Sie beurteilen können, ob es sich um einen echten Ausfall handelt. |
site_not_reachable | warn | Zenovay hat Ihre Website erreicht, aber einen HTTP-Fehler erhalten. | Prüfen Sie den Status Ihres Hosting-Anbieters. |
probe_blocked | info | Eine Netzwerk- oder CSP-Regel hat den Probe-Aufruf blockiert. Der Tracker funktioniert möglicherweise dennoch. | Informativ — vergleichen Sie mit dem Zähler für aktuelle Ereignisse. |
sandbox_detected | info | Ihre Domain entspricht einem bekannten Entwicklungsmuster (localhost, *.vercel.app, *.netlify.app usw.). | Für Staging-Umgebungen erwartet. |
Möchten Sie genau sehen, was gesendet wird? Aktivieren Sie das Debug Overlay und hängen Sie ?zenovay_debug=1 an eine beliebige URL Ihrer Website an. Sie sehen die letzten 20 ausgehenden Tracker-Ereignisse mit maskierten personenbezogenen Daten — nützlich, wenn Install Health tracker_quiet meldet und Sie überprüfen möchten, ob eine bestimmte Seite tatsächlich Ereignisse sendet.
E-Mail-Benachrichtigungen (pro Domain optional)
Wenn die Diagnose einen silent_tracker-Fehler für Ihre Domain auslöst, sendet Zenovay eine einmalige E-Mail an den Eigentümer der Website. Sobald die Ereignisse wieder fließen, erhalten Sie eine einmalige Entwarnung. Maximal eine E-Mail pro Ausfall — fünf Sicherungs-Schichten verhindern Spam:
- Der Cron läuft alle 6 Stunden, nicht jede Minute.
- Die
silent_tracker-Schwelle selbst erfordert eine Lücke von mindestens 6 Stunden. - Sites mit weniger als 5 Ereignissen in den letzten 24 Stunden lösen niemals eine Benachrichtigung aus (ein persönlicher Blog mit einem Besuch pro Tag wird Sie nie per E-Mail benachrichtigen).
- Eine interne Zustandsmaschine feuert nur bei Übergang (gesund → still oder still → gesund), niemals bei aufeinanderfolgenden Cron-Läufen.
- Der E-Mail-Log-Idempotenz-Schlüssel ist am Zeitstempel des ersten Schweigens des Ausfalls verankert — selbst ein Fehler in der Zustandsmaschine kann nicht zwei stille E-Mails pro Ausfall senden.
Sandbox-/Entwicklungs-Domains (localhost, *.vercel.app, *.netlify.app, *.pages.dev, *.workers.dev, *.test, *.local) sind vollständig von Benachrichtigungen ausgeschlossen.
Schalten Sie Benachrichtigungen pro Domain unter Domain → Einstellungen → Install Health → E-Mail-Benachrichtigungen ein oder aus. Standardmäßig aktiviert.
API-Referenz
/api/install-health/:trackingCodeAuthentifizierte Diagnose für eine einzelne Website.
URL: https://api.zenovay.com/api/install-health/<IHR_TRACKING_CODE> — ersetzen Sie <IHR_TRACKING_CODE> durch Ihren Code (z. B. ZV_AbCdEf...). Die Routendefinition verwendet die Express-Notation :trackingCode, der führende Doppelpunkt gehört jedoch nicht zur tatsächlichen URL.
Authentifizierung: Bearer-JWT (das Sitzungstoken Ihres Dashboards).
Caching: Antworten werden 30 Sekunden lang am Edge zwischengespeichert, damit das Dashboard-Polling leichtgewichtig bleibt.
Datenschutz: Keine personenbezogenen Daten (IP-Adressen, User-Agent-Strings oder Referrer-Werte) erscheinen in der Antwort — nur Zähler, Flags und Ereignistyp-Bezeichner.
Beispiel-Anfrage
# Beachten Sie: Die URL enthält KEINEN führenden Doppelpunkt — ersetzen
# Sie ZV_IHR_TRACKING_CODE durch Ihren echten Code aus app.zenovay.com →
# Domain → Einstellungen. Das Bearer-JWT ist verpflichtend; kopieren Sie es
# aus einer angemeldeten Dashboard-Sitzung über DevTools → Netzwerk →
# /api/auth/user.
curl https://api.zenovay.com/api/install-health/ZV_IHR_TRACKING_CODE \
-H "Authorization: Bearer $IHR_JWT"Beispiel-Antwort
{
"last_event_seen_at": "2026-05-02T21:15:42.110Z",
"minutes_since_last_event": 0,
"last_event_count_5m": 12,
"last_event_count_24h": 1843,
"script_reachable": true,
"script_version": "v2.0.1",
"csp_blocking_suspected": false,
"cookieless_enabled": true,
"consent_recording_active": false,
"last_5_event_types": ["pageview", "click", "scroll", "form_submit", "outbound_click"],
"issues": []
}Der Endpoint ist absichtlich authentifiziert. Tracking-Codes sind im Wesentlichen öffentlich (sie sind im HTML Ihrer Website eingebettet), sodass eine nicht authentifizierte Diagnose eigene Missbrauchsschutz-Mechanismen benötigen würde. Verwenden Sie Ihr Dashboard-JWT.