Каждая идентификация в реальном времени
Новые события появляются за секунды: посетитель, external ID и время.
Распознавайте повторно посещённый браузер даже в режиме инкогнито или при очищенных cookie, выявляйте боты и подделанные устройства и проверяйте каждый результат на своём сервере, прежде чем действовать.
Посмотрите, что мы можем узнать об этом браузере. Запуск демо отправляет его сигналы нам и сохраняет в нём ID.
В API для вашего кода и в панели для того, кто проверяет случай.
Новые события появляются за секунды: посетитель, external ID и время.
Автоматизация, headless-браузеры, программный рендеринг, подмена нативных функций и несовпадающие часовые пояса.
Устройство показывает все external ID, которые на нём встречались, чтобы мультиаккаунты были заметны.
Браузер получает только request ID. Ваш сервер запрашивает событие с помощью secret key и принимает решение.
Удалите external ID, и все его события и связи с устройствами будут удалены.
Без тарифов и обязательств. После каждого расчётного периода вы платите за использованные идентификации, каждая со всеми сигналами, серверным API и дашбордом.
Смотрите тарифы и все цены →Указанные цены не включают применимые налоги и сборы (например, НДС).
Браузер получает request ID, ваш сервер получает всю информацию.
Один тег script от api или типизированный ES-модуль из npm.
<script src="https://zenocdn.net/agent.js"></script>
<script>
const agent = FingerprintAgent.start({ endpoint: 'https://zenocdn.net', publicKey: 'pk_...' })
</script>Запускайте при открытии формы, получайте request ID после входа пользователя.
// After a successful login:
const { requestId } = await agent.get({ externalId: user.id })
await fetch('/api/login/verify', { method: 'POST', body: JSON.stringify({ requestId }) })Прочитайте событие с secret key и примите решение. Браузер не видит флаги.
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')
}GET, PATCH и DELETE для /events, /visitors и /external-ids с одним заголовком.
Префиксы pk_ и sk_ с контрольной суммой; секретные ключи хранятся в виде хеша и показываются один раз.
Фильтр по visitor, external ID, IP, flag, bot verdict, risk score и дате.
DELETE /external-ids/{id} удаляет все события и связи устройств этого ID.
Да. Агент — это простой ES-модуль без зависимостей, он работает в React, Svelte, Vue или без фреймворка. Без бандлера загрузите /agent.js и используйте глобальный FingerprintAgent.
Нет. Одинаковые устройства, например одна и та же модель телефона с той же ОС, имеют одинаковый fingerprint, поэтому браузер без сохранённого ID может совпасть с visitor ID другого. Рассматривайте это как повод для проверки вместе с external IDs, flags и подключением.
Более 100 сигналов устройства: canvas, WebGL, аудио, шрифты, экран, оборудование, локаль, плагины и следы автоматизации. Сетевые адреса WebRTC не читаются.
Идентификация тихо приостанавливается: агент возвращает capped вместо request ID, поэтому пользователи не видят ошибок, а вход продолжает работать. Задайте бюджеты по дням, неделям или месяцам и лимит расходов на ключ. Больше ничего не ограничивается по частоте запросов.
Вы получаете деньги обратно. Не довольны в первые три месяца после первого оплаченного счёта? Мы вернём всё, что вы заплатили за этот период, без лишних вопросов.
В ЕС, в AWS eu-west-1. События хранятся до удаления или 1, 3 или 5 лет, если вы выберете этот вариант, а один вызов API удаляет все данные одного из ваших пользователей.
Оплата по факту, все сигналы включены.