コード変更のイメージ
<script src="https://YOUR_PUBLIC_KEY.arkoselabs.com/v2/YOUR_PUBLIC_KEY/api.js" data-callback="onSuccess" async defer></script>
<script>
function onSuccess(token) {
document.getElementById('arkose-token').value = token
}
</script>
<input type="hidden" id="arkose-token" name="arkose-token" /><button id="login-btn">Sign in</button>
<script src="https://cdn.captcha-cdn.net/captchala-loader.js"></script>
<script>
loadCaptchala(() => Captchala.init({ appKey: 'YOUR_APP_KEY', action: 'login' })
.onSuccess(res => onToken(res.token))
.bindTo('#login-btn'));
</script>const res = await fetch('https://verify-api.arkoselabs.com/api/v4/verify/', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
private_key: process.env.ARKOSE_PRIVATE_KEY,
session_token: req.body['arkose-token'],
}),
})
const data = await res.json()
if (data.session_details?.solved !== true) return res.status(400).json({ error: 'bot' })const res = await fetch('https://apiv1.captcha.la/v1/validate', {
method: 'POST',
headers: {
'X-App-Key': process.env.CAPTCHALA_APP_KEY,
'X-App-Secret': process.env.CAPTCHALA_APP_SECRET,
'Content-Type': 'application/json',
},
body: JSON.stringify({ pass_token: req.body['captchala-token'] }),
})
const { data } = await res.json()
if (!data || !data.valid) return res.status(400).json({ error: 'bot' })移行手順
- 1
登録して App Key と Secret を取得する
無料の CaptchaLa アカウントを作成します。Arkose と違い、PoC も調達手続きもありません。料金は公開されておりセルフサービスです。無料枠で初期テストをカバーできます。
- 2
Arkose SDK とコールバック配線を削除する
Arkose のスクリプトタグ、コールバック関数、そしてコールバックから値を入れていた隠し入力を削除します。CaptchaLa はシンプルな div プレースホルダーを使い、コールバック配線は不要です。
- 3
CaptchaLa ウィジェットを追加する
Arkose ウィジェットがあった場所に当社の div とスクリプトタグを差し込みます。隠しトークンフィールドは captchala-token として自動入力され、手動で管理する必要はありません。
- 4
サーバー検証を更新する
Arkose の session_details.solved チェックを当社の valid フラグ(data.valid)に置き換えます。エンドポイントは apiv1.captcha.la/v1/validate に変わります。ボディは form-urlencoded ではなく JSON になります。
- 5
契約の解消を計画する
Arkose の契約は通常、自動更新付きの年次契約です。契約書の解約期限を確認し、法務/調達に通知してください。多くのチームは解消期間中、30日間は両方を並行運用します。
よくある質問
切り替えるとボット検出の精度が落ちませんか?
ほとんどのワークロードでは、計測できる差はありません。Arkose のチャレンジは既定で当社より意図的に難しいですが、捕捉するボットの母集団は一般的なプロダクトトラフィックでは大きく重なります。名指しの敵対者を抱える Roblox / Microsoft 規模であれば話はより込み入りますので、まずご相談ください。
契約の重複期間はどう扱えばいいですか?
解消期間中は両方を並行運用してください。フォーム A は Arkose を残し、フォーム B を CaptchaLa に切り替えます。コンバージョンとボット率を比較してください。多くのチームはボット率が横ばいのままユーザー摩擦が下がることを確認します。その後、契約更新のタイミングで Arkose を停止します。
Arkose のリスクテレメトリ/分析ダッシュボードはどうなりますか?
CaptchaLa には同等のテレメトリ(チャレンジ率、成功率、リスクスコア分布、地域別内訳)を備えた独自のダッシュボードがあります。Arkose Insights から来た方には馴染みのある作りです。