Zeno
Logga in
Gratis … identifieringar per månad · Därefter betala efter användning

Enhetsidentifiering
för varje Registrera dig

Känn igen en återkommande webbläsare även i inkognito eller med rensade cookies, fånga bottar och förfalskade enheter, och bekräfta varje resultat på din server innan du agerar.

Se vad vi kan utläsa om denna webbläsare. När demon körs skickas dess signaler till oss och ett ID sparas i den.

Vad varje identifiering berättar

I API:et för din kod och i instrumentpanelen för den som granskar ärendet.

Varje identifiering, live

Nya händelser visas inom sekunder, med besökaren, external ID och tidpunkt.

Bottar och spoofing flaggade

Automatisering, headless-webbläsare, programvarurendering, ersatta natives och tidszoner som inte matchar.

Delade enheter visas

En enhet listar varje external ID som setts på den, så att multikonton syns tydligt.

Verifiera på din backend

Webbläsaren får bara ett request ID. Din server hämtar händelsen med sin secret key och beslutar.

Glöm ett external ID med ett anrop

Ta bort ett external ID så försvinner alla dess händelser och enhetslänkar.

Betala per användning

Inga planer eller bindningar. Efter varje faktureringsperiod betalar du för använda identifieringar, var och en med alla signaler, server-API:et och dashboarden.

Se planer och alla priser →

Angivna priser inkluderar inte tillämpliga skatter eller avgifter (t.ex. moms).

Från installation till verifierad på tre steg

Webbläsaren får ett request ID, din server får hela bilden.

  1. 1

    Lägg till agenten

    En script-tagg från api:et, eller en typad ES-modul från npm.

    login.html
    <script src="https://zenocdn.net/agent.js"></script>
    <script>
    	const agent = FingerprintAgent.start({ endpoint: 'https://zenocdn.net', publicKey: 'pk_...' })
    </script>
  2. 2

    Identifiera i webbläsaren

    Starta när formuläret öppnas, få ett request ID när användaren loggar in.

    login.js
    // After a successful login:
    const { requestId } = await agent.get({ externalId: user.id })
    
    await fetch('/api/login/verify', { method: 'POST', body: JSON.stringify({ requestId }) })
  3. 3

    Verifiera på din server

    Läs eventet med secret key och bestäm. Webbläsaren ser aldrig en flagga.

    login.server.ts
    const response = await fetch(`https://api.zeno.id/events/${requestId}`, {
    	headers: { 'Auth-API-Key': process.env.FP_SECRET_KEY },
    })
    const event = await response.json()
    
    if (event.bot === 'bad' || event.riskScore >= 15) {
    	throw new Error('Review this login')
    }
  • REST, ingen SDK-inlåsning

    GET, PATCH och DELETE på /events, /visitors och /external-ids, med en header.

  • Nycklar som är svåra att läcka

    pk_- och sk_-prefix med checksumma; hemliga nycklar lagras som hash och visas en gång.

  • Sök i varje händelse

    Filtrera efter visitor, external ID, IP, flag, bot verdict, risk score och datum.

  • Radera ett external ID i ett anrop

    DELETE /external-ids/{id} tar bort alla händelser och enhetslänkar för det ID:t.

Frågor

Fungerar det med mitt ramverk? +

Ja. Agenten är en vanlig ES-modul utan beroenden, så den fungerar i React, Svelte, Vue eller helt utan ramverk. Utan bundlare laddar du /agent.js och använder den globala FingerprintAgent.

Är ett delat visitor ID bevis på flera konton? +

Nej. Identiska enheter, som samma telefonmodell med samma OS, har samma fingeravtryck, så en webbläsare utan sitt sparade ID kan matchas mot en annan webbläsares visitor ID. Behandla det som en ledtråd att granska tillsammans med external IDs, flags och anslutningen.

Vad samlar agenten in? +

Över 100 enhetssignaler: canvas, WebGL, ljud, typsnitt, skärm, hårdvara, locale, plugins och spår av automation. Läser aldrig WebRTC-nätverksadresser.

Vad händer vid en budget eller användningsgräns? +

Identifieringen pausar tyst: agenten returnerar capped i stället för ett request ID, så dina användare ser aldrig något fel och inloggningen fortsätter fungera. Ange budgetar per dag, vecka eller månad samt en utgiftsgräns per nyckel. Inget annat har hastighetsbegränsning.

Tänk om det inte är för mig? +

Du får tillbaka dina pengar. Inte nöjd under de första tre månaderna efter din första betalda faktura? Vi återbetalar allt du betalat under den tiden, utan frågor.

Var lagras data? +

I EU, i AWS eu-west-1. Händelser sparas tills du tar bort dem, eller i 1, 3 eller 5 år om du väljer det, och ett API-anrop raderar allt som lagrats för en av dina användare.

Din första identifiering, på några minuter

Betala efter användning, alla signaler ingår.