Zeno
Войти
Бесплатно … идентификаций в месяц · Затем оплата по факту использования

Идентификация устройств
для каждого: Регистрация

Распознавайте повторно посещённый браузер даже в режиме инкогнито или при очищенных cookie, выявляйте боты и подделанные устройства и проверяйте каждый результат на своём сервере, прежде чем действовать.

Посмотрите, что мы можем узнать об этом браузере. Запуск демо отправляет его сигналы нам и сохраняет в нём ID.

Что показывает каждая идентификация

В API для вашего кода и в панели для того, кто проверяет случай.

Каждая идентификация в реальном времени

Новые события появляются за секунды: посетитель, external ID и время.

Боты и спуфинг помечены

Автоматизация, headless-браузеры, программный рендеринг, подмена нативных функций и несовпадающие часовые пояса.

Общие устройства видны

Устройство показывает все external ID, которые на нём встречались, чтобы мультиаккаунты были заметны.

Проверка на вашем бэкенде

Браузер получает только request ID. Ваш сервер запрашивает событие с помощью secret key и принимает решение.

Удалите external ID одним вызовом

Удалите external ID, и все его события и связи с устройствами будут удалены.

Оплата по факту

Без тарифов и обязательств. После каждого расчётного периода вы платите за использованные идентификации, каждая со всеми сигналами, серверным API и дашбордом.

Смотрите тарифы и все цены →

Указанные цены не включают применимые налоги и сборы (например, НДС).

От установки до проверки за три шага

Браузер получает request ID, ваш сервер получает всю информацию.

  1. 1

    Добавить агент

    Один тег script от api или типизированный ES-модуль из 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

    Идентификация в браузере

    Запускайте при открытии формы, получайте request ID после входа пользователя.

    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

    Проверка на сервере

    Прочитайте событие с secret key и примите решение. Браузер не видит флаги.

    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, без привязки к SDK

    GET, PATCH и DELETE для /events, /visitors и /external-ids с одним заголовком.

  • Ключи, которые трудно утечь

    Префиксы pk_ и sk_ с контрольной суммой; секретные ключи хранятся в виде хеша и показываются один раз.

  • Поиск по всем событиям

    Фильтр по visitor, external ID, IP, flag, bot verdict, risk score и дате.

  • Удалите external ID одним вызовом

    DELETE /external-ids/{id} удаляет все события и связи устройств этого ID.

Вопросы

Работает ли с моим фреймворком? +

Да. Агент — это простой ES-модуль без зависимостей, он работает в React, Svelte, Vue или без фреймворка. Без бандлера загрузите /agent.js и используйте глобальный FingerprintAgent.

Доказывает ли общий visitor ID мультиаккаунт? +

Нет. Одинаковые устройства, например одна и та же модель телефона с той же ОС, имеют одинаковый fingerprint, поэтому браузер без сохранённого ID может совпасть с visitor ID другого. Рассматривайте это как повод для проверки вместе с external IDs, flags и подключением.

Что собирает агент? +

Более 100 сигналов устройства: canvas, WebGL, аудио, шрифты, экран, оборудование, локаль, плагины и следы автоматизации. Сетевые адреса WebRTC не читаются.

Что происходит при достижении бюджета или лимита использования? +

Идентификация тихо приостанавливается: агент возвращает capped вместо request ID, поэтому пользователи не видят ошибок, а вход продолжает работать. Задайте бюджеты по дням, неделям или месяцам и лимит расходов на ключ. Больше ничего не ограничивается по частоте запросов.

А если это не для меня? +

Вы получаете деньги обратно. Не довольны в первые три месяца после первого оплаченного счёта? Мы вернём всё, что вы заплатили за этот период, без лишних вопросов.

Где хранятся данные? +

В ЕС, в AWS eu-west-1. События хранятся до удаления или 1, 3 или 5 лет, если вы выберете этот вариант, а один вызов API удаляет все данные одного из ваших пользователей.

Ваша первая идентификация за считаные минуты

Оплата по факту, все сигналы включены.