Zeno
Inloggen

Eén visitor ID, hoe ze ook terugkomen

De agent zet meer dan 100 apparaatsignalen om in een visitor ID op de server. Incognito, gewiste cookies en browserupdates maken geen nieuwe bezoeker.

Wat een terugkerende bezoeker kan wijzigen

De ID is het apparaat, niet de cookie en niet de verbinding.

Ze komen terug metZelfde bezoeker-IDWaarom
Privé- of incognitovensterZelfdeOpslag is leeg, de hardware niet.
Cookies en sitegegevens gewistZelfdeHet hardware-anker en de fingerprint komen nog steeds overeen.
Een browserupdateZelfdeEen nieuwe versie wijzigt enkele signalen; fuzzy matching vangt dit op.
Een VPN of een nieuw IP-adresZelfdeHet IP maakt geen deel uit van de ID. Het wordt in plaats daarvan in de flags getoond.
Een nieuw account op hetzelfde apparaatZelfdeZo verschijnen meerdere accounts: één apparaat, veel external ID's.
Andere browser op hetzelfde apparaatNieuwe bezoekerElke browser rendert anders, dus het is een andere fingerprint.
Ander apparaatNieuwe bezoekerDe ID is het apparaat.

In volgorde gevonden

Elke identificatie wordt gecontroleerd tegen de bezoekers van het project, van de zekerste match naar beneden, en het event vermeldt welke klopte.

Opgeslagen ID
Het ID dat de agent in opslag en in een first-party-cookie bewaarde, zolang de hardware nog overeenkomt.
Hardware-anker
Grafische kaart, cores, geheugen en platform, die niet veranderen bij een browserupdate of het wissen van opslag.
Bekende fingerprint
Exact dezelfde signalen die eerder in je project zijn gezien.
Fuzzy-matching
Component voor component vergeleken met recente bezoekers op dezelfde hardware, met een marge boven de volgende beste.
Ruisbewust
Canvas en audio worden weggelaten wanneer een browser ze randomiseert, zoals Brave en privévensters.
login.ts
import { start } from 'zeno-id'

const agent = start({ publicKey: 'pk_...' })

// A stable ID per device, and whether it was seen before.
const { visitorId, returning, requestId } = await agent.get({
	externalId: user.id,
	action: 'login',
})

Meer dan 100 signalen

Vanaf nul verzameld, zonder WebRTC-netwerkadressen.

  • Renderen

    Canvas, WebGL-vendor, renderer, extensies en parameters, de WebGPU-adapter en audio.

  • Apparaat

    Scherm, kleurdiepte, pixelverhouding, cores, geheugen, touch, platform, client hints, lettertypen en stemmen.

  • Instellingen

    Tijdzone, talen, agenda, mediavoorkeuren, opslagquota en machtigingsstatus.

  • Integriteit

    Automatiseringsrestanten, vervangen native-functies en waarden die verschillen tussen de pagina, een worker en een iframe.

Bekijk wat de signalen markeren →

Eerlijk over de beperkingen

Een ID waarop je beslissingen kunt baseren, omdat het aangeeft hoe zeker het is.

  • Eén ID per project

    Het ID wordt gehasht met je project, dus hetzelfde apparaat heeft overal elders een ander ID. Niemand kan je bezoekers over diensten heen volgen.

  • Vertrouwen bij elke gebeurtenis

    Hoe zeker de match is, van 0 tot 1. Een fuzzy match op een veelvoorkomend apparaat scoort lager dan een opgeslagen ID op zeldzame hardware.

  • Een aanwijzing, nooit bewijs

    Identieke apparaten, zoals hetzelfde telefoonmodel met hetzelfde besturingssysteem, kunnen een ID delen. Bekijk een gedeeld ID samen met de external IDs, flags en verbinding.

Identificeer vandaag je eerste bezoeker

Installeer de agent, lees de gebeurtenis op je server en klaar ben je.