Zeno
ログイン
無料 月間…件の識別 · その後は従量課金

デバイス識別
あらゆる 新規登録 に

シークレットモードやCookieを削除した状態でも、再訪したブラウザを識別し、ボットや偽装されたデバイスを検出します。対応する前に、すべての結果をサーバーで確認してください。

このブラウザについて分かることをご覧ください。デモを実行すると、そのシグナルが送信され、IDが保存されます。

すべての識別でわかること

コード用の API と、ケースを確認する担当者向けのダッシュボードで。

すべての識別をライブで

新しいイベントは数秒で表示され、visitor、external ID、日時が含まれます。

ボットとスプーフィングを検出

自動化、ヘッドレスブラウザ、ソフトウェアレンダリング、置き換えられたネイティブ関数、不一致のタイムゾーン。

共有デバイスを検出

デバイスごとに確認されたすべての external ID を一覧表示し、複数アカウントを見つけやすくします。

バックエンドで検証

ブラウザにはrequest IDだけが渡されます。サーバーがsecret keyでイベントを取得し、判断します。

1回の呼び出しで external ID を削除

external ID を削除すると、そのイベントとデバイスの紐付けもすべて削除されます。

従量課金

プランも契約も不要。請求サイクルごとに、利用した識別分のみお支払い。全シグナル、サーバーAPI、ダッシュボードが含まれます。

プランと料金をすべて見る →

表示価格には適用される税金・手数料(VATなど)は含まれません。

インストールから検証まで3ステップ

ブラウザはrequest IDを受け取り、サーバーはすべての情報を受け取ります。

  1. 1

    エージェントを追加

    APIから配信される1つのscriptタグ、またはnpmの型付きESモジュール。

    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ロックインなし

    /events、/visitors、/external-ids に対する GET、PATCH、DELETE を1つのヘッダーで。

  • 漏えいしにくいキー

    pk_ と sk_ のプレフィックス付き、チェックサム付き。シークレットキーはハッシュで保存され、一度だけ表示されます。

  • すべてのイベントを検索

    訪問者、external ID、IP、flag、ボット判定、リスクスコア、日付で絞り込み。

  • 1回の呼び出しで external ID を削除

    DELETE /external-ids/{id} は、そのIDのすべてのイベントとデバイスのリンクを削除します。

質問

自分のフレームワークで使えますか? +

はい。エージェントは依存関係のないシンプルなESモジュールなので、React、Svelte、Vue、またはフレームワークなしで動作します。バンドラーを使わない場合は /agent.js を読み込み、グローバルの FingerprintAgent を使用してください。

共有されたvisitor IDはマルチアカウントの証拠になりますか? +

いいえ。同じ機種・同じOSのスマートフォンなど、同一のデバイスは同じフィンガープリントを持つため、保存されたIDを持たないブラウザが別のブラウザのvisitor IDと一致する場合があります。external ID、フラグ、接続情報と合わせて確認すべき手がかりとして扱ってください。

agentは何を収集しますか? +

100以上のデバイスシグナル:canvas、WebGL、オーディオ、フォント、画面、ハードウェア、ロケール、プラグイン、自動化の痕跡。WebRTCのネットワークアドレスは一切読み取りません。

予算や利用上限に達した場合はどうなりますか? +

識別は静かに一時停止します。エージェントはrequest IDの代わりにcappedを返すため、ユーザーにエラーは表示されず、ログインは引き続き機能します。日、週、月ごとの予算と、キーごとの支出上限を設定できます。それ以外はレート制限されません。

自分には合わない場合は? +

返金いたします。初回のお支払い後3か月以内にご満足いただけなければ、その期間に支払われた全額を、理由を問わず返金します。

データはどこに保存されますか? +

EU内、AWS eu-west-1にて。イベントは削除するまで保存されます。期間を選択した場合は1、3、5年間保存されます。1回のAPI呼び出しで、ユーザー1人分の保存データがすべて削除されます。

最初の識別を、数分で

従量課金、全シグナル込み。