Zeno
Se connecter
Gratuit … identifications par mois · Ensuite, paiement à l'usage

Identification d'appareils
pour chaque S'inscrire

Reconnaissez un navigateur déjà connu même en navigation privée ou avec les cookies effacés, détectez les bots et les appareils usurpés, et confirmez chaque résultat sur votre serveur avant d'agir.

Découvrez ce que nous pouvons savoir sur ce navigateur. La démo nous envoie ses signaux et y stocke un ID.

Ce que révèle chaque identification

Dans l'API pour votre code et dans le tableau de bord pour la personne qui examine le cas.

Chaque identification, en direct

Les nouveaux événements apparaissent en quelques secondes, avec le visiteur, l'external ID et l'heure.

Bots et spoofing détectés

Automatisation, navigateurs headless, rendu logiciel, natifs remplacés et fuseaux horaires incohérents.

Appareils partagés repérés

Un appareil liste chaque external ID vue dessus, pour repérer les comptes multiples.

Vérifiez sur votre backend

Le navigateur ne reçoit qu'un request ID. Votre serveur récupère l'événement avec sa secret key et décide.

Oubliez un external ID en un seul appel

Supprimez un external ID et tous ses événements et liens d'appareil disparaissent.

Paiement à l'usage

Sans forfaits ni engagements. Après chaque cycle de facturation, vous payez les identifications utilisées, chacune avec tous les signaux, l'API serveur et le tableau de bord.

Voir les offres et tous les prix →

Les prix affichés n'incluent pas les taxes ou frais applicables (ex. TVA).

De l'installation à la vérification en trois étapes

Le navigateur reçoit un request ID, votre serveur obtient tous les détails.

  1. 1

    Ajouter l'agent

    Une balise script servie par l'api, ou un module ES typé depuis 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

    Identifier dans le navigateur

    Lancez-le à l'ouverture du formulaire, obtenez un request ID à la connexion de l'utilisateur.

    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

    Vérifier sur votre serveur

    Lisez l'événement avec la secret key et décidez. Le navigateur ne voit jamais de flag.

    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, sans dépendance au SDK

    GET, PATCH et DELETE sur /events, /visitors et /external-ids, avec un seul header.

  • Des clés difficiles à divulguer

    Préfixes pk_ et sk_ avec checksum ; les secret keys sont stockées sous forme de hash et affichées une seule fois.

  • Recherchez chaque événement

    Filtrer par visiteur, external ID, IP, flag, verdict bot, score de risque et date.

  • Supprimer un external ID en un seul appel

    DELETE /external-ids/{id} supprime tous les événements et liens d'appareil de cet ID.

Questions

Fonctionne-t-il avec mon framework ? +

Oui. L'agent est un module ES simple sans dépendances : il fonctionne avec React, Svelte, Vue ou sans framework. Sans bundler, chargez /agent.js et utilisez le global FingerprintAgent.

Un visitor ID partagé prouve-t-il un multi-compte ? +

Non. Les appareils identiques, comme le même modèle de téléphone sous le même OS, ont la même empreinte, donc un navigateur sans son ID stocké peut correspondre au visitor ID d'un autre. Considérez-le comme une piste à examiner avec les external IDs, les flags et la connexion.

Que collecte l'agent ? +

Plus de 100 signaux d'appareil : canvas, WebGL, audio, polices, écran, matériel, langue, plugins et traces d'automatisation. Il ne lit jamais les adresses réseau WebRTC.

Que se passe-t-il en cas de budget ou de limite d'utilisation ? +

L'identification se met en pause discrètement : l'agent répond avec capped au lieu d'un request ID, ainsi vos utilisateurs ne voient jamais d'erreur et votre connexion continue de fonctionner. Définissez des budgets par jour, semaine ou mois, et une limite de dépenses par clé. Rien d'autre n'est limité en débit.

Et si ce n'est pas pour moi ? +

Vous êtes remboursé. Pas satisfait durant les trois premiers mois après votre première facture payée ? Nous vous remboursons tout ce que vous avez payé pendant cette période, sans poser de questions.

Où les données sont-elles stockées ? +

Dans l'UE, dans AWS eu-west-1. Les événements sont conservés jusqu'à leur suppression, ou pendant 1, 3 ou 5 ans si vous le choisissez, et un seul appel API efface toutes les données stockées pour l'un de vos utilisateurs.

Votre première identification, en quelques minutes

Paiement à l'usage, tous les signaux inclus.