Zeno
ログイン

ひとつの visitor ID で、どのように再訪しても

エージェントは100以上のデバイスシグナルをサーバー上でvisitor IDに変換します。シークレットモード、Cookieの削除、ブラウザのアップデートでは新しい訪問者は作成されません。

再訪問したビジターが変更できること

IDは端末を示し、Cookieや接続ではありません。

再訪時の状態同じvisitor ID理由
プライベートウィンドウまたはシークレットウィンドウなぜストレージは空、ハードウェアは違う。
Cookie とサイトデータを消去しましたなぜハードウェアアンカーとフィンガープリントは引き続き一致しています。
ブラウザのアップデートなぜ新バージョンでいくつかのシグナルが変わりますが、ファジーマッチングが吸収します。
VPNまたは新しいIPアドレスなぜIPはIDの一部ではありません。代わりにflagsに表示されます。
同じデバイス上の新しいアカウントなぜマルチアカウントはこのように表示されます:1つのデバイスに多数の external ID。
同じデバイス上の別のブラウザ新規訪問者ブラウザごとに描画が異なるため、別のフィンガープリントになります。
別のデバイス新規訪問者IDはデバイスです。

順番に一致

各識別は、最も確実な一致から順にプロジェクトの訪問者と照合され、イベントでどれが一致したかがわかります。

保存済みID
エージェントがストレージとファーストパーティCookieに保存したID。ハードウェアが一致している間有効です。
ハードウェアのアンカー
ブラウザのアップデートやストレージの削除では変わらない、グラフィック、コア数、メモリ、プラットフォーム。
既知のフィンガープリント
プロジェクト内で以前確認されたものと全く同じシグナルです。
あいまい一致
同じハードウェア上の最近の訪問者とコンポーネントごとに比較し、次点との差を考慮します。
ノイズ認識
ブラウザが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確からしさを示すため。

  • プロジェクトごとに1つのID

    IDはプロジェクトとともにハッシュ化されるため、同じデバイスでも他の場所では別のIDになります。誰もサービスをまたいで訪問者を追跡できません。

  • すべてのイベントに信頼度

    一致の確度(0〜1)。一般的なデバイスでのあいまい一致は、希少なハードウェアで保存済みのIDより低いスコアになります。

  • 手がかりであり、証拠ではない

    同じ機種・同じOSの端末など、同一のデバイスはIDを共有することがあります。共有IDは external IDs、フラグ、接続情報と合わせて確認してください。

今すぐ最初のビジターを識別

エージェントをインストールし、サーバーでイベントを読み取るだけで完了です。