Zenovay zeigt eines von drei Badges neben jedem Besucher — Anonymous, Identified oder Paying. Die Badges erscheinen auf dem 3D-Globus (im Hover-Popup eines Besuchers) und im Journeys → Users Tab. Dieser Artikel erklärt, was jeder Status bedeutet, wie ein Besucher zwischen ihnen wechselt und wie du die Daten beim externen Teilen maskierst.
Die drei Badges
| Badge | Was es bedeutet | Wann der Besucher es bekommt |
|---|---|---|
| Anonymous (grau) | Der Besucher surft, ohne sich anzumelden. Zenovay kennt sein Gerät, Land und Verhalten — aber nicht, wer er ist. | Standard für jeden nicht identifizierten Seitenaufruf. Im Cookieless-Modus werden keine Cookies gesetzt. |
| Identified (blau) | Der Besucher ist in deinem Produkt angemeldet. Zenovay kennt seine E-Mail, seinen Namen und alle Custom-Traits, die du gesendet hast. | Nachdem deine Seite zenovay('identify', userId, { email, name }) aufgerufen hat — meist direkt nach Login oder Signup. |
| Paying (grün) | Der Datensatz des Besuchers ist mit einem bezahlten Abo verknüpft oder hat einen Lifetime-Umsatz größer null. | Automatisch, sobald Zenovay einen Payment-Webhook von Stripe, LemonSqueezy, Polar oder PayPal erhält — kein zusätzlicher Tracker-Aufruf nötig. |
Wie du Besucher als "Identified" markierst
Identifikation ist Opt-in: Deine Seite muss zenovay('identify', ...) aufrufen, sobald sich ein User anmeldet. Der einfachste Aufruf:
// Direkt nach Login, Signup oder wann immer du einen bekannten User hast
zenovay('identify', user.id, {
email: user.email,
name: user.name
});
Das war's. Der nächste Pageview wird mit dieser Identität verknüpft, das Badge wechselt von Anonymous zu Identified. Häufiger Fehler: Rufe identify() nur mit stabilen IDs auf (deinem Datenbank-Primärschlüssel) — übergib keine E-Mail oder Username als userId, da User diese ändern können.
Schritt-für-Schritt-Anleitung mit Code-Beispielen für Next.js, React, Vue, plain HTML, Shopify und WordPress in der Visitor Identification Doku.
Du arbeitest mit Claude Code, Cursor, ChatGPT oder GitHub Copilot? Verweise deinen KI-Assistenten auf die Visitor Identification Doku und lass ihn zenovay('identify') für deinen Stack einbauen. Die Doku enthält copy-paste-fertige Snippets für die gängigen Frameworks.
Wie Besucher zu "Paying" werden
Du machst einen Besucher nicht mit einem Tracker-Aufruf zu Paying. Zenovay empfängt Webhook-Events von den Payment-Providern, die du verbindest (Stripe, LemonSqueezy, Polar, PayPal), und verknüpft den Customer-Record automatisch. Sobald eine Zahlung eingeht, wechselt das Badge des Besuchers auf Paying. Lifetime-Umsatz und Bestellanzahl erscheinen im Visitor-Detail-Panel.
Wenn ein Besucher sein Abo später kündigt, behält er das Paying-Badge, solange total_revenue größer null ist — vergangener Customer Value bleibt für dein Team relevant.
Was, wenn ich nur eine Customer-ID habe, keine E-Mail?
Manche Integrationen (z. B. Mobile-Apps mit interner User-ID, aber noch keiner E-Mail) können aufrufen:
zenovay('identify', user.id, {
customer_id: 'cus_internal_123'
});
Dieser Besucher zählt als Identified — das Badge erscheint und in der Visitor-Detailkarte steht ID only in der E-Mail-Zeile. Sobald ein Payment-Webhook diese Customer-ID mit einem Stripe / LemonSqueezy / Polar / PayPal Account verknüpft, wird er zu Paying.
Identifier in Screenshots und Demos verbergen
Öffne /profile → Preferences → schalte Blur identifiers ein. E-Mails werden mit allem außer den ersten paar Zeichen und der Top-Level-Domain maskiert (z. B. jo••••@ex••.com) und Namen behalten nur den Anfangsbuchstaben jedes Teils (z. B. J••• D•) überall im Dashboard. Der Toggle bleibt pro Browser bestehen — du musst ihn nach einem Reload nicht neu aktivieren.
Blur ist eine Präsentations-Hilfe, keine Zugriffskontrolle. Ein User mit Browser-DevTools sieht die unmaskierten Daten weiterhin, auch wenn der Toggle AN ist. Um Zugriff auf Identifier wirklich einzuschränken, verwalte deine Team-Mitgliedschaft in Settings → Team.
Öffentliche Dashboards maskieren immer
Wenn du ein öffentliches Read-only-Dashboard teilst, werden Identifier unabhängig vom Blur-Toggle maskiert. E-Mails erscheinen als ••••••@•••••• und Namen als J••• D•, selbst wenn der Dashboard-Eigentümer über die öffentliche URL zugreift. Die Globe-API entfernt zusätzlich die Felder identity_email, identity_name und identity_plan komplett aus der öffentlichen Response — die Daten sind nicht nur in der UI versteckt, sondern werden gar nicht erst übertragen.
Das ist eine harte Garantie: Du kannst einen öffentlichen Link teilen, ohne reale Kunden-E-Mails an den Empfänger zu leaken.
Wo die Badges erscheinen
- 3D-Globus: Klick auf einen Visitor-Marker, um sein Popup zu öffnen — das Popup zeigt das Badge (grün für Paying, blau für Identified).
- Journeys → Users Tab: Jede Zeile in der Users-Liste zeigt das Badge, plus eine vollständige Identitätskarte im Visitor-Detail-Panel mit E-Mail, Name, Plan und allen Custom-Traits, die du mit
identify()gesendet hast. Du kannst die Liste über die Filter (Goal, Device, OS, Country, Source) über der Tabelle eingrenzen.
Häufig gestellte Fragen
F: Brauche ich Cookies für identify()?
A: Nein. Zenovays Cookieless-Modus nutzt eine In-Memory-Window-scoped Visitor-ID — identify() verknüpft die bestehende Session mit dem User, ohne ein Cookie oder einen localStorage-Eintrag zu setzen.
F: Braucht identify() Einwilligung nach DSGVO / ePrivacy?
A: Hängt von deiner Verarbeitungsgrundlage ab. Der Cookieless-Tracker selbst speichert nichts auf dem Endgerät, also greift Art. 5(3) ePrivacy nicht. Der identify()-Aufruf verarbeitet jedoch personenbezogene Daten (E-Mail, Name) — dafür brauchst du eine Rechtsgrundlage nach Art. 6 DSGVO. Für die meisten Produkte ist „Vertragserfüllung" (der User ist in deinem Produkt angemeldet) die Grundlage.
F: Kann ich einen Besucher direkt mit identify() als zahlend markieren, ohne Webhook?
A: Per Design nicht. Paying wird aus total_revenue > 0 oder einer Payment-Provider-Customer-ID abgeleitet, beides setzen Webhooks. So bleibt der Wert verifizierbar — dein Finance-Team vertraut dem Badge, weil es an echtes Geld gekoppelt ist. Wenn du einen Besucher manuell zu Test-Zwecken markieren willst, lass eine $0-Test-Zahlung durch Stripe Test Mode laufen.
F: Was passiert, wenn ich identify() mit einer anderen ID für dieselbe Browser-Session aufrufe?
A: Zenovay behandelt es als Account-Wechsel — die neue Identität ersetzt die alte für diesen Visitor-Record. Das vorherige Identify-Event bleibt in der Timeline, damit du Account-Wechsel auditieren kannst.
Verwandte Artikel
- Wie teile ich ein öffentliches Dashboard? — Maskierung + Zugriffskontrolle für geteilte Links
- Benutzt Zenovay Cookies? — wie Identifikation ohne Cookies funktioniert
- Stripe-Revenue-Integration — Payment-Webhooks für Paying-Badges anbinden