Zeno
로그인

하나의 visitor ID, 어떻게 돌아오든

에이전트는 100개 이상의 기기 신호를 서버에서 visitor ID로 변환합니다. 시크릿 모드, 쿠키 삭제, 브라우저 업데이트는 새로운 방문자를 만들지 않습니다.

재방문 방문자가 변경할 수 있는 항목

ID는 기기를 가리키며, 쿠키나 연결이 아닙니다.

다음 정보와 함께 돌아옴동일한 방문자 ID왜
비공개 창 또는 시크릿 창동일저장소는 비어 있지만 하드웨어는 그렇지 않습니다.
쿠키 및 사이트 데이터 삭제됨동일하드웨어 앵커와 핑거프린트가 여전히 일치합니다.
브라우저 업데이트동일새 버전에서 일부 신호가 바뀌지만, 퍼지 매칭이 이를 흡수합니다.
VPN 또는 새로운 IP 주소동일IP는 ID의 일부가 아닙니다. 대신 flags에 표시됩니다.
같은 기기의 새 계정동일다중 계정은 이렇게 나타납니다: 하나의 기기, 여러 external ID.
같은 기기의 다른 브라우저신규 방문자브라우저마다 렌더링이 달라서 다른 핑거프린트가 됩니다.
다른 기기신규 방문자ID는 기기입니다.

순서대로 일치

각 식별은 가장 확실한 일치부터 순서대로 프로젝트의 방문자와 대조되며, 이벤트에 일치한 항목이 표시됩니다.

저장된 ID
에이전트가 스토리지와 퍼스트파티 쿠키에 저장한 ID이며, 하드웨어가 일치하는 동안 유지됩니다.
하드웨어 앵커
브라우저 업데이트나 저장소 삭제로도 바뀌지 않는 그래픽, 코어, 메모리 및 플랫폼.
알려진 핑거프린트
프로젝트에서 이전에 확인된 것과 정확히 동일한 신호입니다.
유사 일치
같은 하드웨어의 최근 방문자와 구성 요소별로 비교하며, 차순위와 일정 차이를 둡니다.
노이즈 인식
Brave나 비공개 창처럼 브라우저가 Canvas와 오디오를 무작위로 변경하면 이들은 제외됩니다.
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보다 낮은 점수를 받습니다.

  • 단서일 뿐, 증거는 아님

    같은 휴대폰 모델과 같은 OS처럼 동일한 기기는 ID를 공유할 수 있습니다. 공유된 ID는 external IDs, 플래그, 연결 정보와 함께 검토하세요.

오늘 첫 방문자를 식별하세요

에이전트를 설치하고 서버에서 이벤트를 읽으면 끝입니다.