DX開発事業部の矢原です。
reCAPTCHAの料金体系について調べる機会があり、まとめてみました!

reCAPTCHAとは

まず、reCAPTCHAについて簡単な説明です。

reCAPTCHAとは、Webサイトやモバイルアプリを保護するためのサービスです。

高度な標的型攻撃や大規模攻撃からウェブサイトやモバイルアプリを保護するスムーズなソリューションにより、不正防止機能をさらに強化できます。
引用:https://cloud.google.com/security/products/recaptcha?hl=ja

reCAPTCHAは大きく分けてv2とv3が存在します。v1もありましたが、現在では廃止されています。

reCAPTCHA v2

ウェブサイトなどのアカウント登録時やログイン時に、「私はロボットではありません」にチェックを入れたり、画像が出てきて、「この中で自転車が含まれているものを選択してください」など見かけた方も多いのではないでしょうか。

上記のようにユーザーにチェックボックスにチェックをしてもらったり、画像を選択してもらうような方式はreCAPTCHA v2と呼ばれるバージョンのものです。

v2には、以下の方式があります。

  • チェックボックス
  • Invisible(非表示)
  • Android

基本的には、チェックボックスとInvisible(非表示)と呼ばれるものが、一般的に多く使われているものになります。
「私はロボットではありません」のチェックボックスを表示し、ユーザーにチェックを入れてもらうことで、botかどうかの判定を行います。botと判定された場合は、画像認証(画像を選択する形式)が求められます。

一方でInvisible(非表示)は、「私はロボットではありません」というのがチェックボックスは表示せずに、ボタン押下などのアクション時にbot判定を行い、bot判定をされたら画像認証が求められるというものです。

reCAPTCHA v3

v3は、v2と異なりユーザーにチェックを入れさせるようなアクションをさせずに、機械学習によってユーザーがbotかどうかの判定を行い、スコアを返すというのものです。人間の操作を0.0、botの操作を1.0としその間でスコアが返されます。
(デフォルトの閾値は0.5が設定されており、閾値は適宜変更可能です)

それらのスコアによって、二段階認証を求めるのかなどプログラムのコードを実装する必要があります。
参考:https://developers.google.com/recaptcha/docs/v3?hl=ja

ユーザーはチェックボックスにチェックを入れる操作が必要なくなるため、ユーザー体験が良くなります。
実際にreCAPTCHAのキーの作成画面でチェックボックス方式にしようとすると下記のような注意文言が表示されます。

料金体系

本記事のタイトルでもある、料金体系について解説します。
※2024年10月時点の料金体系になります。

料金体系はこちらにも記載がありますが、3つのプランが用意されています。

  • reCAPTCHA Essentials
  • reCAPTCHA Standard
  • reCAPTCHA Enterprise
項目 reCAPTCHA Essentials reCAPTCHA Standart  reCAPTCHA Enterprise
月額 最大10,000件の評価が無料 最大10,000件の評価が無料

$8(最大100,000件の評価)

最大10,000件の評価が無料
$8(最大100,000件の評価)
その後、評価1,000件あたり$1
期間 なし 毎月 月単位、年単位、カスタム
1か月あたりの評価数 10,000未満 10,000〜100,000 無制限
多要素認証 いいえ BYO SMSとメール BYO SMSとメール
パスワード漏洩からの保護 いいえ はい はい
アカウント制御 いいえ はい はい
SMS通信不正利用防止 いいえ はい はい
支払いに関する不正行為の防止 いいえ はい はい
Mobile SDK いいえ はい はい

引用:https://cloud.google.com/security/products/recaptcha?hl=ja#pricing

3種類プランがあるように見えますが、実際にはプランは選択せずに評価数によってプランが変動するようになっています。
プランの適用については、以下の図の通りです。

Google Cloudのプロジェクト課金が有効になっていれば自動的にreCAPTCHA Standardが適用され、反対に課金が無効であれば、reCAPTCHA Essentialsが適用されます。
ただし、reCAPTCHA Essentialsの場合最大評価数の10,000件に達した場合、新しいリクエストに対してエラーを返します。

Google Cloud プロジェクトの課金を有効にしていない場合、月間無料枠に達すると、reCAPTCHA は新しいリクエストに対してエラーを返します。

引用:https://cloud.google.com/recaptcha/docs/billing-information?hl=ja#how-it-works

課金が有効になっている時点で、reCAPTCHA Standardが適用され、最大評価数の100,000件に達すると自動的にreCAPTCHA Entepriseが適用されその後1,000件あたり$1が課金されるようになっています。

最大10,000件以上超える見込みの場合は、Google Cloudのプロジェクトの課金を有効にしておくのが無難だと思います。

最後に

最初プランを自身で選択するものだと思っていましたがそうではなく、Google Cloudのプロジェクトの課金が有効になっているかを意識すれば良く、有効になっている場合は評価数に応じて自動的にプランが切り替わるのでreCAPTCHAの評価数に達してエラーを出すということがないということがわかり安心しました!
※課金が無効の場合は、上限に達するとエラーが発生します。

参考資料

https://www.googlecloudcommunity.com/gc/reCAPTCHA-Enterprise/How-to-choose-standard-plan-for-recaptcha/m-p/816618/highlight/true#M227