Zeno
Войти

Один visitor ID, как бы они ни возвращались

Агент преобразует более 100 сигналов устройства в visitor ID на сервере. Режим инкогнито, очистка cookie и обновления браузера не создают нового посетителя.

Что может изменить вернувшийся посетитель

ID — это устройство, а не cookie и не соединение.

Они возвращаются сТот же ID посетителяЗачем
Приватное или инкогнито-окноТо же самоеХранилище пустое, а железо — нет.
Cookies и данные сайта очищеныТо же самоеАппаратный якорь и отпечаток по-прежнему совпадают.
Обновление браузераТо же самоеНовая версия меняет некоторые сигналы; нечеткое сопоставление их компенсирует.
VPN или новый IP-адресТо же самоеIP не входит в ID. Он отображается во flags.
Новый аккаунт на том же устройствеТо же самоеТак проявляются множественные аккаунты: одно устройство, много external ID.
Другой браузер на том же устройствеНовый посетительКаждый браузер отображает по-своему, поэтому это другой отпечаток.
Другое устройствоНовый посетительID — это устройство.

Совпало по порядку

Каждая идентификация сверяется с посетителями проекта от самого точного совпадения вниз, а событие указывает, какое совпадение сработало.

Сохранённый ID
ID, который агент сохранил в хранилище и в cookie первой стороны, пока оборудование совпадает.
Аппаратный якорь
Графика, ядра, память и платформа, которые не меняются при обновлении браузера или очистке хранилища.
Известный отпечаток
Точно такие же сигналы, которые уже встречались в вашем проекте.
Нечеткое сопоставление
Компонент за компонентом с недавними посетителями на том же оборудовании, с запасом над следующим.
Учёт шума
Canvas и аудио не учитываются, если браузер их рандомизирует, например Brave и приватные окна.
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',
})

Более 100 сигналов

Собрано с нуля, без сетевых адресов WebRTC.

  • Рендеринг

    Canvas, производитель и рендерер WebGL, расширения и параметры, адаптер WebGPU и аудио.

  • Устройство

    Экран, глубина цвета, соотношение пикселей, ядра, память, касание, платформа, client hints, шрифты и голоса.

  • Настройки

    Часовой пояс, языки, календарь, медиа-настройки, квота хранилища и состояния разрешений.

  • Целостность

    Следы автоматизации, подменённые нативные функции и значения, отличающиеся между страницей, воркером и iframe.

Посмотрите флаг signals →

Честно о границах

ID, на основе которого можно принимать решения, так как он показывает степень уверенности.

  • Один ID на проект

    ID хешируется вместе с вашим проектом, поэтому то же устройство получает другой ID в других местах. Никто не может отслеживать ваших посетителей между сервисами.

  • Уверенность в каждом событии

    Уверенность совпадения от 0 до 1. Нечёткое совпадение на распространённом устройстве получает меньший балл, чем сохранённый ID на редком оборудовании.

  • Подсказка, но не доказательство

    Одинаковые устройства, например одна и та же модель телефона с той же ОС, могут получить одинаковый ID. Проверяйте общий ID вместе с external ID, флагами и соединением.

Идентифицируйте первого посетителя сегодня

Установите агент, считайте событие на сервере и готово.