はじめに
このガイドでは、数分でウェブアプリケーションに Noxtica を追加する手順を説明します。
前提条件
- Noxtica アカウント(お問い合わせからアクセスをリクエスト)
- サイトキー(アカウントセットアップ後に提供されます)
クイック連携
アカウントのセットアップが完了してサイトキーを取得したら、HTML にコレクターを追加するだけで完了です。
自動収集(推奨)
最も簡単な始め方は、1回実行モードを使って Noxtica に自動実行させることです:
<script
src="https://collect.noxtica.com/collector/noxtica.js"
data-site-key="pk_prod_your_site_key_here"
data-auto-init
data-auto-check-once
async
></script>
これにより:
- 訪問者の初回訪問時に評価を実行する
- キャッシュウィンドウ内(デフォルト:7日間)のリピート訪問ではその結果を再利用する
- フル評価を繰り返すことなく、リターン訪問を静かに記録する
- 開いているタブ間を調整して、訪問者が一度だけ評価されるようにする
結果は以下の方法で取得できます:
// Listen for results
document.addEventListener('noxtica:collected', function (e) {
console.log('Fingerprint collected:', e.detail);
console.log('Risk score:', e.detail.score);
console.log('Risk level:', e.detail.risk_level);
});
// Or access directly after collection
console.log(window.noxticaResult);
手動収集
より細かい制御のために、JavaScript API を使用します:
<script src="https://collect.noxtica.com/collector/noxtica.js"></script>
<script>
// Create a client with your Site Key
const client = NoxticaCollector.createClient({
siteKey: 'pk_prod_your_site_key_here',
});
// Collect and submit in one call
client.collectAndSubmit().then((result) => {
console.log('Risk score:', result.score);
console.log('Risk level:', result.risk_level);
console.log('Flags:', result.flags);
});
</script>
checkOnce() によるスマート収集
最も軽量なフットプリントには checkOnce() を使います——サーバーで設定した収集間隔を守るため、必要以上に訪問者を再評価しません:
const client = NoxticaCollector.createClient({
siteKey: 'pk_prod_your_site_key_here',
});
// Only collects if outside the check interval window (default: 7 days)
// Otherwise records a visit and returns cached result
const result = await client.checkOnce();
if (result.fromCache) {
console.log('Using cached result, next collection in:', result.nextSubmitIn, 'days');
} else {
console.log('Fresh collection submitted');
}
console.log('Risk level:', result.risk_level);
パフォーマンスとサイトへの影響
コレクターはページ読み込みとユーザーが体感するレイテンシへの影響を最小化するよう設計されています:
| 指標 | 値 |
|---|---|
| 初期スクリプトサイズ | 縮小版 約167 KB、brotli 圧縮 約55 KB |
| 収集時間(中央値、fp) | モダンなデスクトップで <50 ms / 中級スマートフォンで <120 ms |
| リスクスコア付きレスポンス | 中央値 <150 ms(コレクターエッジ → API エッジ) |
| キャッシュ済み訪問(初回読み込み後) | <10 ms(フィンガープリント処理なし;ビーコンのみ) |
| メインスレッドのブロッキング | なし — 収集は非同期チャンクで実行される |
軽量に保つ方法:
asyncスクリプト属性 — コレクターはバックグラウンドで読み込まれ、ページの表示やインタラクティブになるのを遅らせません。- 1回実行モード(
data-auto-check-once) — 最初の評価後、キャッシュウィンドウ内のリピート訪問は小さな訪問ピングのみを送信します(約150バイト)。 - タブ間調整 — 複数の開いているタブを単一の評価にまとめます。
- 初回読み込み後にキャッシュ済み — 改ざん耐性の KHAN VM はブラウザにキャッシュされるため、後の訪問では即座に読み込まれます。
- バックグラウンド処理 — サポートされている場合、処理はメインスレッドから外れ、ページの応答性が維持されます。
SDK 追加後に速度低下に気づいた場合は、await client.collectAndSubmit({ telemetry: true }) でプロファイルをキャプチャしてください——返される result.telemetry にタイミングの内訳が含まれています。
サンドボックスと本番
サイトキーは2種類あります:開発・ステージング用と本番用。それぞれ独自のポリシーで動作し、データは完全に分離されます。
| 項目 | サンドボックス(pk_sand_*) | 本番(pk_prod_*) |
|---|---|---|
| サイトキープレフィックス | pk_sand_ | pk_prod_ |
| オリジン許可リスト | ローカルホスト + ステージングオリジン | 厳格 — 登録済みオリジンのみ |
| レート制限 | 緩め(約1000/分/IP) | プラン制限が適用される |
| リスクスコアリングポリシー | 寛大 — ボットのブロック最小化 | 本番ポリシーが適用される |
| データ保持 | 7日間 | テナント設定による(デフォルト90日間) |
| 監査ログ保持 | 7日間 | テナント設定による(デフォルト90日間) |
| ステップアップMFA | オプション | 破壊的操作では必須 |
環境ごとにサイトキーを必ず切り替えてください。 本番トラフィックに pk_sand_* キーを使用しないでください——サンドボックスのデータは本番ダッシュボードに表示されず、リスクスコアリングが甘くなります。逆に、開発で pk_prod_* キーを使用すると本番のレート制限バジェットを消費します。
よくあるパターン:
<script>
// Pick the key by hostname; fall back to sandbox in dev.
const KEY = location.hostname === 'www.example.com' ? 'pk_prod_REPLACE_ME' : 'pk_sand_REPLACE_ME';
const s = document.createElement('script');
s.src = 'https://collect.noxtica.com/collector/noxtica.js';
s.async = true;
s.dataset.siteKey = KEY;
s.dataset.autoInit = '';
s.dataset.autoCheckOnce = '';
document.head.appendChild(s);
</script>
タグマネージャーとの互換性
コレクターはGoogle Tag Manager、Adobe Launch、Tealium、Segmentの内部で動作しますが、注意点があります:
推奨(優先): スクリプトを </body> の直前または async 付きの <head> 内に直接 HTML に追加してください。できるだけ早く開始することで、訪問者が操作する時点でコレクターが準備完了になります。
タグマネージャー — 動作するが注意点あり:
- ✅ ほとんどのモダンなタグマネージャー(GTM カスタムHTML、Adobe Launch カスタムコード、Segment カスタムソース)はコレクターを正常に読み込みます。
- ⚠️ 訪問者が同意するまでスクリプトをブロックする同意ゲートは、最初の評価を遅延させます——通常は同意バナーが閉じられるまで何も実行されません。これは正しい挙動ですが、「判断までの時間」の指標が歪む可能性があります。
- ⚠️ 一部の古いタグマネージャーはカスタム
data-*属性を削除します。data-site-keyがスクリプトタグに届かない場合、auto-initは起動しません。その場合はコードで直接設定してください:NoxticaCollector.createClient({ siteKey: 'pk_prod_...' }).checkOnce(); - ❌ 一部のサンドボックスが厳格なタグコンテナ(まれ)では、改ざん耐性ランタイムが起動できません。SDK は軽量な収集形式で動作し続け、コンソールの警告をログに記録します。
タグマネージャー経由で連携する必要がある場合は、DOM Ready ではなく All Pages — Window Loaded(または同等のもの)で Noxtica タグが発火するよう設定してください——これにより、実行前に同意状態が確定します。
コンテンツセキュリティポリシー
サイトがコンテンツセキュリティポリシーを使用している場合、Noxtica の読み込み、改ざん耐性ランタイム(KHAN VM)の実行、および API との通信を許可する必要があります。以下の例では3つすべてを網羅しています:
Content-Security-Policy:
default-src 'self';
script-src 'self' 'wasm-unsafe-eval' https://collect.noxtica.com;
connect-src 'self' https://collect.noxtica.com;
ポリシーに 'wasm-unsafe-eval' トークンが含まれていない場合、ブラウザは改ざん耐性ランタイムをブロックし、コンソールに関連する警告が表示されます。Noxtica は動作し続けます——軽量な収集形式にフォールバックします——ただし改ざん保護が弱くなります。上記のトークンを追加するとフルの体験が復元されます。
サイトキー
サイトキー(pk_...)は、ドメインからのリクエストを認証するパブリック識別子です。バックオフィスに追加した各ドメインには固有のサイトキーが割り当てられます。
重要な注意点:
- サイトキーはパブリックであり、HTML に安全に埋め込めます
- 各サイトキーは特定のオリジン(例:
https://example.com)に紐付けられています - オリジンがサイトキーの登録済みドメインと一致しない場合、API はリクエストを拒否します
設定オプション
const client = NoxticaCollector.createClient({
// Your Site Key (required)
siteKey: 'pk_prod_your_site_key_here',
// API endpoint (defaults to production)
apiUrl: 'https://collect.noxtica.com',
// Collection mode: 'max' (default), 'standard', or 'minimal'
// Omit to use max mode (recommended)
// mode: 'standard', // Uncomment to opt out of max-only signals
});
収集モード
| モード | シグナル | 最適な用途 |
|---|---|---|
minimal | 小さなコアシグナルセット | 最速の収集、最小のフットプリント |
standard | 幅広いシグナルセット | 軽量なシグナルセットを好むサイト |
max | フルシグナルセット | 最大精度(デフォルト) |
レスポンス形式
収集・送信後に受け取るデータ:
{
"success": true,
"fingerprintId": "abc123...",
"score": 15,
"risk_level": "minimal",
"confidence": 0.5,
"flags": [],
"details": {
"summary": "Detected 0 risk indicator(s)."
}
}
リスクレベル
| スコア | レベル | 意味 |
|---|---|---|
| 0〜19 | minimal | リスクが非常に低く、正規の可能性が高い |
| 20〜39 | low | 低リスク、軽微な異常 |
| 40〜59 | medium | 中程度のリスク、一部フラグあり |
| 60〜79 | high | 高リスク、自動化の可能性が高い |
| 80〜100 | critical | 非常に高いリスク、ボットの可能性が高い |
認証
SDK は各訪問を、サイトキーに紐付けられた短命で自動ローテーションされる認証情報で認証します。それらのリクエスト、更新、すべての送信への添付をSDKが自動的に処理します。
これらを管理する必要はありません——SDK がすべて自動的に処理します。
オンボーディングプロセス
- アクセスをリクエスト: お問い合わせからデモのリクエストまたはスタートアップ
- アカウントセットアップ: プラットフォームにテナントアカウントを作成します
- ドメインを追加: バックオフィス にログインして、「ドメイン」に移動し、オリジンを追加する
- サイトキーをコピー: 各ドメインに固有のサイトキーが割り当てられます
- 連携: サイトキー付きのスクリプトをページに追加する
- モニタリング: バックオフィスダッシュボードでフィンガープリントと分析を確認する
複数ドメインの管理
Noxtica はアカウントごとに複数のドメインをサポートしています:
- 本番:
https://www.yoursite.com - ステージング:
https://staging.yoursite.com - モバイル:
https://m.yoursite.com
各ドメインには固有のサイトキーがあります。以下のことが可能です:
- キーを再生成せずにドメインを有効化/無効化する
- 侵害された場合にサイトキーをローテーションする
- ドメイン別にフィルタリングして分析を表示する
SDK バージョン
現在の SDK バージョン: 3.3.0(スキーマ: 2026-05-24)
3.3.0 の新機能
- 軽量な行動シグナル(常時オン) — セッションの長さや訪問者が最初にインタラクションするまでの速さなど、シンプルなタイミングのヒント。バイオメトリックデータではなく、エンドユーザーの同意も不要です。
- 行動バイオメトリクス(オプトイン) — バックオフィス → 設定 → 行動バイオメトリクスで有効にすると、Noxtica はマウス移動のリズム、クリックのタイミング、スクロールも観察します。これは厳格なプライバシー規制のもとでバイオメトリックデータとして扱われるため、明示的なエンドユーザーの同意が必要です。以下の 行動バイオメトリクス を参照してください。
- Apple Pay 整合性チェック — iPhoneだと主張するデバイスが実際にそのように動作するかを確認し、よくある偽装トリックを検知します。
- ネットワークフィンガープリントマッチング — 一般的な自動化ツールの典型的な接続パターンを認識し、ブラウザが説得力があるように見えても、スクリプトやボットからのトラフィックを際立たせます。
- IP レピュテーション — 評判の悪いネットワークから来る訪問者にフラグを立て、お好みの脅威インテリジェンスフィードを接続するオプションもあります。
行動バイオメトリクス(オプション、オプトイン)
Noxtica は、マウスの動かし方、クリック、スクロールの「リズム」も分析できます。これはデフォルトでオフになっているオプトイン機能です。
なぜオプトインなのか? この種の行動データは、厳格なプライバシー規制のもとで機密性の高い個人データとして扱われるため、エンドユーザーからの明示的な同意が必要です。いつどのように使用するかをあなたがコントロールできるよう、オプトインにしています。
有効にするには:
- バックオフィス → 設定 → 行動バイオメトリクスにログイン
- プライバシーまたは法務チームとコンプライアンス通知を確認する
- このキャプチャを開示するようプライバシーポリシーと同意バナーを更新する
- 機能をオンに切り替える
有効にすると、Noxtica はこれらの行動シグナルを今後の評価に自動的に取り込み、ダッシュボードにドメインごとの行動スコアが表示されます。