AI のサービスに課金を入れたのは、稼ぐためではなく「黙ってバズる」のが怖かったから

著者: なぎゆー公開日: 2026-11-14読了目安: 約 6 分
カテゴリ:開発スタック
StripeAIコスト設計運用

誰でも使える状態で公開していた AI の動画解析サービスに、サブスクリプション課金を入れた。動機は売上ではなく、個人開発の AI サービスが初日にバズって請求が膨らむ話を見たこと。回数で絞るとサービスの根幹とぶつかるので課金にし、無料の段はお試しへの投資と割り切った。面倒そうで見送っていた Stripe の導入は、1〜2 週間で終わった。

怖かったのは、誰でも使える AI のサービスだった

個人で、配信の切り抜きを作るサービスを運用している。長い動画を読み込ませると、AI が見どころを解析して、切り抜きの候補を出す。売りは AI の解析だ。

このサービスは、権限とは関係なく、誰でも使える状態で公開していた。まだ大々的に宣伝はしていない。だから今まで請求は落ち着いていた。

引っかかっていたのは、SNS で見た話だ。とあるゲームで、AI と話す系の個人開発のサービスが初日から大きくバズり、1 日の請求が莫大になった。最近、こういう話をちらほら聞く。

自分のサービスも、同じ形をしている。誰でも使えて、1 回ごとに AI の費用がかかる。どこかで紹介されて「黙ってバズった」ら、気づいたときには請求が跳ね上がっている。危ない状態だった。

同じく AI を使っていて原価の高いサービスは、ほかにもある。ただ、そちらは最初から権限で利用者を絞っていたので、知らない人に使われる心配はなかった。怖かったのは、入口が開いているほうだ。

回数で絞ると、サービスの根幹とぶつかる

費用を抑えるだけなら、「1 日 N 回まで」のように回数で絞れば済む。最初に考えたのもそれだった。

ただ、このサービスの利用者に想定しているのは、配信者や切り抜き師だ。読み込ませる動画は、必然的に 2〜3 時間と長くなる。そもそも動画が短ければ、自分で見て編集すればいい。このサービスは「切り抜きは作りたいけど、時間がない」人のための道具として出したい。

そこで回数を厳しく絞ると、本当に使ってほしい人ほど使えなくなる。サービスの根幹とぶつかる。

だから課金にした。稼ぐためというより、マイナスにならないためだ。サブスクリプションに登録してくれた人には、段ごとの上限まで存分に使ってもらう。上限は、使い切られても原価が月の料金に収まるように決めておく。そうすれば、バズっても怖くない。

無料の段は、お試しへの投資

段は、未ログイン、ログイン (無料)、有料のスタンダードとプロに分けた。

守りが目的なら、未ログインは塞いでもよかった。そうしなかったのは、効果が見込めないサービスに誰も課金しないからだ。未ログインでも、AI を使わない切り抜きは試せる。ログインすれば、AI 解析を月に 1 回使える。

この 1 回は、お試しへの投資に近い。このサービスには、結構自信を持っている。1 回使えば、AI 解析が役に立つことは分かってもらえるはずだ。そのうえで課金して、本格的に使ってもらえればいい。

有料の段の月の上限は、2 時間の動画を基準に、使い切られても料金の手取りに収まるよう原価から決めた。回数で利用者を締め出すためではなく、費用が料金を超えないための天井だ。

面倒そうで見送っていたのは、思い込みだった

課金を入れること自体は、以前から頭の中にイメージがあった。それでも見送っていたのは、導入が大変だろうなという漠然とした面倒さがあったからだ。

最初は、サブスクリプションを手で管理して、契約した人に手でロールを付けるのもやむを得ないと思っていた。決済だけ外部に任せて、契約の状態は自分で見張る形だ。

実際に Stripe を入れてみたら、思っていたよりずっと楽だった。契約の作成、更新、解約は Stripe が持っていて、その変化を Webhook で受け取ればいい。ほしいものは、ほぼ Stripe 側に揃っていた。

残るのは、契約をサービスの権限にどうつなぐかだ。認証の基盤にはもともと、管理者が手で付けるロールがある。そこへ契約のロールを直接足すと、解約のときに手で付けたロールまで外しかねない。Claude にそう指摘されて、契約で付く「課金の権利」を別のものとして足した。課金の権利は出どころ (Stripe の契約か、手での付与か) と有効期限を持ち、期限が切れれば外れる。利用者が持つロールは、手で付けたロールと、期限内の課金の権利を合わせたものになる。こうしておけば、解約や期限切れで課金のロールが外れても、手で付けたロールは消えない。Stripe の価格の lookup_key は、有料のロールの ID と同じ文字列にした。対応表を持たずに、どのプランがどの段になるかを Stripe 側で変えられる。

手動のロールと、期限内の課金の権利を合わせたものが、利用者が持つロールになる。解約や期限切れで外れるのは課金の権利だけ

着手してから、課金の仕組みができあがるまでは 1〜2 週間だった。大きな障壁は無かった。重い腰を上げるまでのほうが、ずっと長かった。

本名は出していい。辿れる道を作りたくないだけ

技術より考えたのは、特定商取引法にもとづく表記だ。お金を受け取る以上、販売事業者の名前や所在地、電話番号の表記は避けられない。

自分は、YouTube などで架空のキャラクターの別名義で活動していて、開発者もその活動の一環としてやっている。隠しているわけではない。ただ、個人なので、本名や住所をあまりパブリックにはしたくなかった。

Claude と相談していると、話が「領収書のメールに本名を載せないようにする」ほうへ寄っていった。そこで線を引き直した。Stripe に登録するときや、開示を求められたときは、本名でいい。開示を求める側の情報が分かるなら、トラブルがあっても戦えると思っている。嫌なのは、ログインも要らないページから、活動名、本名、住所まで辿り着けるような道があることだ。それはさすがにガバガバすぎる。

この線で考え直すと、やることは決まった。表記は活動名で出し、所在地と電話番号は「請求があれば遅滞なく開示する」とした。領収書のメールに本名が載るのは、そのくらいは仕方ないと受け入れた。Stripe のアカウントも、サンドボックスまでは仮名で作れた。

怖さの種類が変わった

この課金は、まだ一般公開の前にいる。だから、課金した人がいるかどうかは何とも言えない。

ただ、怖さの種類は変わった。これまでは「黙ってバズって請求が跳ね上がる」怖さだった。これからは、お金が絡むところのバグが怖い。

その怖さは、公開の前から 1 つ形になっていた。開発用の環境 (dev) は、Stripe のサンドボックスにつないでいる。サンドボックスでは、テスト用のカード番号で決済が通る。そして dev は、Google アカウントさえあれば誰でもログインできた。つまり、知っている人なら、お金を払わずにテスト用のカードで有料の段を手に入れ、dev をそのまま普段使いできてしまう。

気づいたのは、課金の仕組みがひととおりできたあとだ。Claude と新しい購入の通知の作り方を詰めていて、途中で「待って、コアの要件を伝えてなかった」と止めた。一番気にしていたのは、通知ではなくこちらだった。

塞ぎ方は単純にした。本番以外では、テスト用の権限を持つ人しか申し込めない。自分のテスト用の別アカウントには、そのロールを付けておけば決済までの流れを通せる。このロールは管理者の権限には含めない。テスト用のアカウントに、ユーザー管理まで渡したくないからだ。dev の無料枠を他人に使われることまでは、問わないことにした。

塞ぐ前は、誰でもテスト用のカードで有料の段になれた。塞いだ後は、本番以外ではテスト用の権限を持つ人しか申し込めない

決済が通ったのに有料の段にならない、お金を払っていないのに有料の段になっている。こういう不具合は、これまでの不具合とは重みが違う。今まで以上に、ピリピリしないといけなくなった。

それでも、逃げてはいられない。課金を入れたのは、サービスを一般に出すためだ。自分のスキルアップも兼ねて、しっかり向き合っていきたい。


関連記事