サインアップの判断に情報を追加する
メールチェックとサインアップ元IPのネットワーク指標を組み合わせて、サインアップを自動で進めるか審査に回すかを判断します — バックエンドでPOST /v1/signup/checkを使って計算するか、早期フィードバックのためにブラウザ側のチェックを組み合わせます。
送信時にサーバーサイドで1回呼び出す
サインアップフォームが送信されたら、バックエンドからアドレス、訪問者のIP、必要に応じてUser-Agentを指定してPOST /v1/signup/checkを呼び出します。メールチェック全体(使い捨てドメイン、メールサーバーの欠如、入力ミス、ロールアドレス)を実行し、セキュリティデータを含むプランではIPのVPN/Tor/データセンター/脅威の指標を参照し、メールドメインがどれだけ最近登録されたかを確認して、0〜100のスコアと理由付きのaccept/review/reject判定を返します。シークレットキーを使ってサーバー上で実行されるため、訪問者が偽装したり回避したりすることはできません。
フォーム内での早期フィードバック
送信前の体験を向上させるには、フォーム自身のJavaScriptから公開可能キーでPOST /v1/email/validateを呼び出します:invalid_syntaxやdisposable_domainには具体的なメッセージを表示し、入力ミスにはdidYouMeanをワンクリックの修正として提示します。これはUXの補助であり、強制手段ではありません — 誰でもJavaScriptを無効にできます。
ネットワーク指標
サインアップチェックのip.security(ブラウザではGET /v1/geoのsecurityオブジェクト)は、接続元IPのisVpn、isTor、isDatacenter、isThreatを報告します。これらはリストに基づく指標であり、判定ではありません — falseは利用可能なデータに一致がないことを意味し、クリーンな接続が確認されたという意味ではありません。セキュリティデータのないプランでは、サインアップのスコアはメールのシグナルのみを使い、理由ip_security_unavailableでその旨を示します。
ブロックするだけでなく、審査に回す
rejectは強いシグナルとして、reviewは自動拒否ではなく追加ステップ — 確認メール、CAPTCHA、無料クレジット付与前の手動確認 — の理由として扱ってください。具体的な対応は自社のポリシーで決めてください。スコアの重みは文書化されているので、サインアップがその結果になった理由を確認できます。
重複アカウント
各アカウントとともにcanonicalEmail(+タグを除き、Gmailではドットも除いたアドレス)を保存し、サインアップ時に照合することで、同一人物が複数のトライアルアカウントを作成しているのを見つけられます。Watch-IPは顧客ごとのサインアップ履歴を保持しないため、この照合はお客様自身のデータベースで行います。
これによって保証されないこと
メール、ドメイン経過日数、ネットワークのシグナルをどう組み合わせても、アカウントが不正であることを証明したり、トライアルの悪用を確実に止めたりすることはできません — サポートや販促のリソースを割く前に、どのサインアップを詳しく確認すべきかを絞り込むものです。どのチェックもメールボックスに接続しないため、acceptは動作が確認されたアドレスではありません。