BYOK + Trial ハイブリッド料金 2026:なぜ自前キーのユーザーは永久無料なのか
BYOK + Trial ハイブリッド料金 2026:なぜ自前キーのユーザーは永久無料なのか
結論から: 2026 年の AI アプリの料金には 2 つの主流パターンがあります。Cursor / Perplexity の完全サブスク、Zed / Continue の完全 BYOK。前者は API コストを月額に含めてトラフィックで管理し、後者はコストを全部ユーザーに押し付けます。Gemini Desktop では第 3 の道を採用しました — Beta 期間は全無料、GA 後は買い切り $49 + 7 日 Trial、そして BYOK ユーザーは永久無料。3 ヶ月のデータで BYOK 転化率 31%、買い切り転化率 12%、どちらもサブスク型の平均を大きく上回っています。
一行で: ユーザーが自分で API キーを出すときに可変コストはゼロ。そこを塞ぐのは商売としても倫理としても筋が通りません。Trial は「API を自分で管理したくない人」のためのバッファで、機能削減ではありません。
主流の 2 つのルート
2026 年時点の代表的 AI ツールを並べると:
| 製品 | ルート | 月額 | BYOK |
|---|---|---|---|
| Cursor | 完全サブスク(API 同梱) | $20 / $40 | あり(モデル制限付き) |
| Perplexity Pro | 完全サブスク(検索 + モデル同梱) | $20 | なし |
| Claude Code | 完全サブスク(Anthropic 紐付け) | $100+ | なし |
| Zed | 完全 BYOK(エディタ無料) | $0 | 必須 |
| Continue.dev | 完全 BYOK(OSS) | $0 | 必須 |
| Warp | サブスク + BYOK 併用 | $15 + BYOK | あり |
完全サブスクの問題は、ユーザーが払っているのは「API コスト + 製品マージン」ですが、API 料金は毎年半額になるのに月額は下がらない点。完全 BYOK の問題は、一般ユーザーに Google AI Studio で API キーを取得させるのはハードルが高すぎる点です。
私たちは「技術ヘビー層」と「お金を払って手間を省きたい層」の 両方 を受け止めるデスクトップ AI を作りたかった。だから第 3 の道を選びました。
なぜ「Beta 全無料 + GA 買い切り + BYOK 永久無料」なのか
- Beta 期間は全機能無料 — Paywall なし、データ収集と磨き込みに専念
- GA 後は $49 買い切り — 一度払えば永久有効、サブスクではない
- 7 日 Trial — GA 後の新規ユーザーは全機能を先に体験可能
- BYOK 永久無料 — 自分の Gemini API キーを設定すると Paywall が自動消失
この 4 つはマーケのバンドルではなく、それぞれ別の問いに答えています:
- Beta 全無料:最終形が見えない段階での課金はユーザー信頼の浪費
- 買い切り $49:デスクトップユーザーはサブスクを嫌う(Sketch / Things / Cleanshot と同じ心理)
- 7 日 Trial:API を触りたくない層にも完全体験の機会
- BYOK 無料:次の節で詳細
技術:Zustand persist + GA_LAUNCH_UNIX 定数 1 つ
料金ロジックで最も壊れやすいのが「時点判定」です。Beta vs GA、Trial 開始有無、残日数 — どれも「サーバー時刻かクライアント時刻か」で揺れます。
GA の瞬間を 1 つの定数に固定し、全判定をクライアントローカル時刻 + 定数で行う方式にしました:
// shared/pricing.ts
export const GA_LAUNCH_UNIX = 1_735_689_600_000 // 2026-01-01 UTC
export const TRIAL_DURATION_MS = 7 * 24 * 60 * 60 * 1000
export function isBetaPeriod(): boolean {
return Date.now() < GA_LAUNCH_UNIX
}
export function getTrialState(startedAt: number | null): TrialState {
if (isBetaPeriod()) return { kind: 'beta' }
if (!startedAt) return { kind: 'not-started' }
const elapsed = Date.now() - startedAt
return elapsed < TRIAL_DURATION_MS
? { kind: 'active', remaining: TRIAL_DURATION_MS - elapsed }
: { kind: 'expired' }
}
Zustand の persist に加えて localStorage 冗長書き込み(persist マイグレ時のデータ消失対策):
export const usePricingStore = create<PricingState>()(
persist(
(set, get) => ({
trialStartedAt: null,
licenseKey: null,
byokApiKey: null,
ensureTrialStarted: () => {
const { trialStartedAt } = get()
if (trialStartedAt || isBetaPeriod()) return
const now = Date.now()
set({ trialStartedAt: now })
localStorage.setItem('gd_trial_at', String(now)) // 冗長
},
}),
{ name: 'gemini-desktop-pricing' }
)
)
ポイント 2 つ:ensureTrialStarted は冪等(開始済みなら何もしない)、localStorage 冗長書き込みは Zustand persist バージョン移行の保険。
7 日 Trial クロックの開始ロジック
Trial はいつ開始するか。2 案を試しました:
- 案 A:初回起動で Trial 開始 — Beta インストール者が即カウントダウン → 問題:Beta 終了前に Trial が切れる
- 案 B:GA 後にのみ開始 —
isBetaPeriod()の間ensureTrialStartedは no-op
案 B が正解。GA 切り替え直後に既存 Beta ユーザー全員の Trial が同時スタート — 体験としては「既存ユーザーへの 7 日移行期間」になります。
ensureTrialStarted は 3 ヶ所から呼ばれます:アプリ起動時、Paywall オープン時、算力を消費する任意機能の呼び出し時。冪等性により何回呼んでも安全です。
BYOK が Paywall をスルーすることの倫理判断
完全サブスク派はこう言います:「BYOK ユーザーは UI の価値を無料で吸収している。ソフトウェアライセンス料を取るべきだ。」Cursor はまさにこの路線で、自前キーだと 機能が制限 されます。
私たちは意図的に採用しませんでした。理由は 3 つ:
- 商売の論理:ユーザーが自分のキーを使う = API 可変コストがユーザー負担 = 私たち側に コストはゼロ。回収すべきコストがなければ徴収の根拠は「ソフトライセンス」だけで、それは買い切り $49 で既に回収済み。二重取りになります。
- 倫理判断:自前キーを出すユーザーは API コストに敏感な技術層。「君は自分の算力コストを払って、さらに UI 使用料も払え」という壁は、率直に言って強欲に見えます。
- 獲得効率:BYOK ユーザーは最強の口コミ拡散者。同僚に「Gemini キーあれば無料で使える」と一言添えるだけで、広告では届かない転化を生みます。
データ的にも BYOK ユーザーの 30 日リテンションは買い切りユーザーの 1.4 倍。離脱ではなく、アクティブのコアです。
License key UX:LemonSqueezy レシート → 貼り付け → 有効化
買い切りは LemonSqueezy で処理します。フロー:
- Paywall → “Buy $49” → LemonSqueezy checkout に遷移
- 決済完了 → LemonSqueezy がレシートメールを送信、License key(UUID)同梱
- ユーザーは Gemini Desktop の設定 → “I have a license key” → 貼り付け → 有効化
MVP 段階では サーバー検証を一切していません。クライアントで UUID の正規表現にマッチするかだけチェックして unlock。雑に見えますが、買い切り $49 のデスクトップアプリではクラックコストのほうが高い。
この UX は意図的に「サインイン」を排除しています。デスクトップユーザーはアカウント登録を嫌う傾向があり、買い切りは「買った = 所有」の感覚が理想です。
Trial は「機能削減版」ではない
多くのサブスク製品の Trial は「削減版」 — エクスポート禁止、モデル数制限、透かし。私たちの 7 日 Trial は 完全機能、有料版と同一です。
メンタルモデルが違います:
- サブスク型 Trial:「有料版はもっと良い」という期待を作るのが目的 → だから削減
- 買い切り型 Trial:「$49 の価値があるか徹底的に検証させる」のが目的 → だから完全機能
買い切りファネルでは削減版 Trial は逆効果 — 完全機能を体験させないと決断に至らない。
未実装のもの:サーバー Entitlements / Webhook 署名検証
素早く出荷するため、理論的には必要でも意図的に後回ししたもの:
- Entitlements サーバー:License key 状態はクライアント判定のみ、サーバー DB なし
- LemonSqueezy webhook 署名検証:webhook を受けていないので偽造問題が存在しない
- デバイス数制限:同一キーで複数台アクティベート可能、フィンガープリントなし
- リボーク機構:返金時はユーザーの自主アンインストールに委ねる、リモート無効化不可
規模が大きくなれば全部補う必要がありますが、デスクトップ買い切り + MVP ではシンプル化が転化漏れを最小化します。
デスクトップ AI の詳細は Gemini Mac App に欠けている 6 機能 にもまとめています。
よくある質問
Q1: なぜサブスクにしない?
A: デスクトップユーザーの心理的錨は「買い切り」です。Things、Cleanshot、Sketch、Sublime — 一流デスクトップ生産性ツールはほぼ買い切りかハイブリッドです。サブスクは Web の標準ですが、デスクトップでは反人間的です。
Q2: BYOK で収入が減らない?
A: 短期的には一部の「有料予備軍」が BYOK に流れます。しかしその層は API コスト感度が高く、有料ファネルに残る確率も低い。彼らを BYOK に受け入れるほうが「流失候補」を「アクティブコア + 口コミ拡散」に変換できます。
Q3: Trial 終了後、買い切りか BYOK かどう案内する?
A: T-2 日と T-0 でデュアル Paywall を表示します:左「$49 買い切り」、右「自分の Gemini API キーを貼って永久無料」。ユーザーは自分の技術レベルで自己選択します。
Q4: この料金は全 AI アプリに適用できる?
A: いいえ。BYOK が成立する AI アプリ(ユーザーがモデル算力を負担可能)にのみ適用できます。RAG、ベクトル DB、クローラーなどサーバー側コストが不可避なら、BYOK だけでは回収できないのでサブスクかチャージが必要です。
まとめ
料金は製品哲学の外化です。BYOK 永久無料 + 買い切りを選んだのは「ユーザーが自分でコストを払う」ことへの敬意と、デスクトップユーザーがサブスクを嫌う現実の受容です。全 AI 製品に当てはまる答えではありませんが、「クライアント重、サーバー軽」のツールを作るなら第 3 の道を試す価値があります。