前編のGemini API の料金体系を『収益事業者目線』で読み解く で、料金構造の見方をお話ししました。この記事はその続編で、実際に副業として収益化する具体的な90日のロードマップです。
私は本業の傍らで複数のAI連携サービスを動かしていますが、その中でもGemini APIで作るサービスは、Claudeなど他のAPIで作るものとはやり方が少し違います。マルチモーダル対応の強さ とコンテキストキャッシング という2つの武器をどう活かすかで、原価と差別化の両方が決まるからです。
ここではGeminiならではの強みを最大限引き出しつつ、副業として無理なく続けられるサービス構造を、フェーズごとに具体的に組み立てていきます。
なぜ2026年が「Geminiで副業を始める」最適期なのか
Gemini 3 系の Flash と Pro が出揃い、2.5 系も現役のまま並んでいます。用途に対して「ちょうどいい重さ」のモデルを選べるようになったことが、個人開発者にとっては何より大きい変化でした。コンテキストキャッシングが API 経由で当たり前に使えるようになり、長文プロンプトを使うサービスの粗利も改善しています。さらに、Veo(動画生成)・Lyria(音楽生成)・Imagen(画像生成)といった周辺モデルも Gemini API 経由でアクセスできるため、他のAI APIでは再現しにくいマルチメディア × テキストのサービス が個人でも作れます。
加えて、Google AI Pro / Ultra のサブスクが消費者に普及したことで、「AIにお金を払う」習慣が一般化しました。私の感覚では、2024〜2025年にAIサービスを売り始めた人と比べて、2026年は明らかに売りやすい時期です。
Phase 1(Day 1-15)— Geminiの強みに合うアイデアを選ぶ
Gemini API で副業を成功させる第一歩は、「Gemini ならではの強み」が刺さるテーマを選ぶことです。Claude や GPT でも同じことができるテーマを選ぶと、なぜGeminiを選んだのかをユーザーに説明できなくなります。
Geminiが明確に有利な3領域
私が経験的に「Geminiが他より明確に有利」と感じる領域は次の3つです。
画像 + テキストの混成タスク : 商品画像から商品説明を生成、レシート画像から経費精算データを抽出など。Gemini はネイティブにマルチモーダルなため、画像処理→テキスト→構造化のパイプラインが1リクエストで完結します
超長文の前処理 : 数百ページのPDF、議事録、契約書の読解。コンテキストキャッシングと組み合わせると、同じ大型ドキュメントへの複数質問がはっきり安くなります
動画・音声の解析 : 会議録音の要約、動画コンテンツの章立て、音声フィードバックの分類。これは現時点でGeminiが他社APIより一歩抜けている領域です
逆に「単純なテキストチャットボット」「コード生成」のような領域では、ClaudeやGPTと差別化が難しく、私個人としてはGeminiでこの種のサービスを作るのは推奨しません。
副業向けアイデア種10選
ここに、私が「自分でやらないなら誰かに作ってほしい」と思うアイデアを10個挙げます。すべてGemini APIの強みが活きるテーマです。
領収書・請求書の画像から経費CSVを生成する個人向けツール
物件写真からSEO最適化された不動産説明文を生成するエージェント向けサービス
子供のお絵描き写真から、その絵を元にした即興物語を生成して読み聞かせ音声まで作るアプリ
商品写真からEC向けの多言語商品説明を一括生成するツール
学術論文PDFを章ごとに要約しFAQを作る研究者向けサービス
議事録音声を要約し、参加者ごとのアクションアイテムを抽出するチーム向けツール
旅行写真集からブログ記事下書きを自動生成するサービス
ヨガや筋トレの動画を解析してフォーム改善コメントを返すフィットネス向けサービス
メルカリ・ヤフオク向けの「商品写真→出品文」自動生成ツール
講義動画から学生向けの理解度チェッククイズを自動生成するEdTech向けサービス
これらに共通するのは、「画像/動画/長文 → テキスト構造化」というGeminiの本領発揮ポイントを必ず1つ含んでいることです。
Day 15時点の成果物
1〜2文で説明できるサービス名・機能
想定ユーザーの具体像と、月いくらなら払うかの仮説
競合3社のURLと、それぞれが「Geminiの強みを使えていない理由」のメモ
価格仮説
Phase 2(Day 16-30)— Gemini APIの最小実装を2週間で出す
Gemini API の SDK は Python / Node.js / Go / TypeScript 等が揃っていて、最初の動くものはどれを選んでも作れます。私は副業者には Python(FastAPI バックエンド)+ Next.js(フロント)を推奨しています。Pythonの方がGeminiのSDKが豊富で、特にマルチモーダル処理のサンプルが明確に多いからです。
最小構成のマルチモーダル処理
たとえば「画像 + 質問文」を受け取って構造化されたJSONを返す、という最小サービスは次のように書けます。
from fastapi import FastAPI, UploadFile
from google import genai
import json
app = FastAPI()
client = genai.Client()
@app.post ( "/api/generate" )
async def generate (image: UploadFile, prompt: str ):
image_bytes = await image.read()
response = client.models.generate_content(
model = "gemini-3.5-flash" ,
contents = [
{
"parts" : [
{ "inline_data" : { "mime_type" : image.content_type, "data" : image_bytes}},
{ "text" : f " { prompt }\n\n JSON形式で回答してください。" },
]
}
],
config = {
"response_mime_type" : "application/json" ,
},
)
return json.loads(response.text)
response_mime_type: "application/json" を指定するだけで、Geminiは構造化されたJSONを返してくれます。これは個人開発者にとってありがたい仕様で、後段の解析コードがそのぶん短くなります。
コンテキストキャッシングを「在庫」として設計する
長文を扱うサービスなら、最初からキャッシュ前提で設計しておくと、後の作り直しを避けられます。後から入れるのは、たいてい構造変更になるからです。
ただし、ここで多くの人が取り違えます。「キャッシュ=入れれば安くなる」ではありません。Gemini のキャッシュには暗黙(implicit)と明示(explicit)の二層があり、課金の軸も 2 つあります。この 2 点を押さえずに実装すると、削減したはずの原価が保管料に化けます。
暗黙キャッシュは Gemini 2.5 以降で既定で有効です。何も実装しなくても、プロンプトの先頭が直前のリクエストと一致していれば割引が自動で乗ります。つまり、まだ 1 行も書いていない段階で、あなたのサービスはすでに割引を受けている可能性があります 。ここを測らずに明示キャッシュを足すと、効果を過大評価します。
測り方は 1 行です。
response = client.models.generate_content(
model = "gemini-3.5-flash" ,
contents = [long_document, question],
)
# Python / JavaScript SDK では usage.total_cached_tokens に
# キャッシュヒットしたトークン数が入ります
print (response.usage.total_cached_tokens)
ここでひとつ、移行時につまずきやすい点があります。古い記事やサンプルでは response.usage_metadata.cached_content_token_count を読む書き方が主流でした。いまは usage.total_cached_tokens が現行の読み口です。手元のコードが古い書き方のままだと、属性が取れずに例外で落ちるか、あるいは黙って None を返して「キャッシュが効いていない」と誤読することになります。私はこの誤読で、効いているキャッシュを一度作り直しかけました。
入力トークンの大半がすでにキャッシュヒットしているなら、明示キャッシュを重ねても伸びしろは小さいままです。
明示キャッシュには最低トークン数がある
コンテキストキャッシュには、モデルごとに最低入力トークン数が定められています。これを下回る入力は、暗黙・明示のどちらでもキャッシュの対象になりません。
出典は Google のコンテキストキャッシングのドキュメント です。3 系はそろって 4,096、2.5 系は 2,048。新しい世代ほど下限が上がっている点だけ、頭の隅に置いていただければと思います。モデルを新しくした途端、いままで効いていたキャッシュが効かなくなる——コードは一文字も変えていないのに原価だけが上がる、という事故は、これで起こります。
もう一点、設計に効く制約があります。Interactions API は暗黙キャッシュしか扱えません。 client.caches.create で明示キャッシュを組み立てる経路は generateContent 側にしかないため、会話の状態をサーバーに預ける設計を選んだ時点で、明示キャッシュという選択肢は手放すことになります。どちらを取るかは、Phase 2 のうちに決めておいたほうがよいと感じています。
日本語で 2,048 トークンは、体感で原稿用紙 8〜10 枚ぶん。PDF や議事録を読ませるサービスなら余裕で超えますが、「商品写真から説明文を作る」「レビューに返信する」のような短文サービスでは届かないことの方が多いはずです。自分のサービスの平均入力長を数えてから、キャッシュを設計に入れるかどうかを決めます。 順序はこれだけです。
TTL は「保管料」— 副業者がいちばん踏む落とし穴
そしてもう一つ。明示キャッシュの請求は、キャッシュしたトークン数と保管時間(TTL)の掛け算です。TTL を指定しなければ既定で 1 時間。つまり、誰も 2 回目の質問をしなかったキャッシュにも、1 時間ぶんの保管料が発生します 。
副業サービスのトラフィックはまばらです。平日の昼に 40 リクエスト来たかと思えば、深夜は 1 リクエストで終わります。このまばらさがキャッシュの経済を壊します。私自身が過小評価していたのもここでした。1 回だけ質問して離脱するユーザーに対して、律儀に 1 時間の TTL を切り続けていたのです。
対策は、2 回目が来る見込みがあるときだけキャッシュを作る という判定を挟むこと。
from google import genai
from google.genai import types
client = genai.Client()
CACHE_MODEL = "gemini-3.5-flash"
MIN_CACHE_TOKENS = 4096 # 3 系の下限。2.5 系に落とすなら 2048
def maybe_create_cache (document, expected_followups: int ):
"""再質問が見込めるときだけ明示キャッシュを作る。"""
if expected_followups < 2 :
return None # 単発質問は暗黙キャッシュに任せる
tokens = client.models.count_tokens(
model = CACHE_MODEL , contents = [document]
).total_tokens
if tokens < MIN_CACHE_TOKENS :
return None # 下限未満はキャッシュされない
# TTL は想定セッション長から逆算して短く切る
ttl_seconds = min ( 300 * expected_followups, 3600 )
cache = client.caches.create(
model = CACHE_MODEL ,
config = types.CreateCachedContentConfig(
contents = [document],
ttl = f " { ttl_seconds } s" ,
display_name = "doc-analysis-cache" ,
),
)
return cache.name
def ask_with_cache (cache_name: str , question: str ):
response = client.models.generate_content(
model = CACHE_MODEL ,
contents = question,
config = types.GenerateContentConfig( cached_content = cache_name),
)
return response.text
私はこの判定を挟んでから、月末に届く請求のうち「保管料」の行が何を意味しているのかを、ようやく説明できるようになりました。肝は ttl を固定の 1 時間にせず、想定セッション長から逆算するところです。TTL に下限も上限もないので 5 分刻みで詰められますし、セッションが終わったら client.caches.delete(name) で明示的に消せば、保管料はその時点で止まります。
原価がどれだけ下がるかは、あなたのサービスの入力長と再質問率で決まります。他人の削減率を持ち帰っても意味がありません。判定式は 1 行です。
1 セッションあたりの平均質問回数が 2 を超え、かつ平均入力が下限トークンを超えているとき、明示キャッシュは黒字になる。
この 2 つの数値は、Phase 2 の段階からログに残しておいていただければと思います。Phase 5 のコスト最適化で、いちばん効く材料になります。
Day 30時点の成果物
入力フォームと結果表示が動く1ページアプリ
Google ログインでの認証
1日3〜5回までの無料試用上限
課金の実装はまだ行いません
Phase 3(Day 31-45)— Stripe統合と決済フロー
Gemini ベースのサービスで個人開発者が選びやすい課金構造は、次の3層です。
1回購入(Tip / One-shot) : ¥150〜¥500
月額Pro : ¥580〜¥1,200
買い切りPremium : ¥2,480〜¥4,800
Geminiサービスではマルチモーダル処理が多く、1リクエストの体験価値が「ぱっと見でわかる」ものが多いため、1回購入の転換率が他のAI系サービスより高い 傾向があります。私のサービスでも、月額より買い切りや1回購入の比率が高めに出ています。
Stripe Checkout 実装の核
import stripe
from fastapi import FastAPI, Request
stripe.api_key = "YOUR_STRIPE_SECRET_KEY"
app = FastAPI()
@app.post ( "/api/checkout" )
async def create_checkout (plan_type: str , locale: str , user_id: str ):
prices = {
"one_shot" : { "jpy" : 250 , "usd" : 175 },
"monthly" : { "jpy" : 580 , "usd" : 500 },
"lifetime" : { "jpy" : 2480 , "usd" : 1500 },
}
session = stripe.checkout.Session.create(
mode = "payment" if plan_type == "one_shot" else "subscription" ,
line_items = [{
"price_data" : {
"currency" : "jpy" if locale == "ja" else "usd" ,
"unit_amount" : prices[plan_type][ "jpy" if locale == "ja" else "usd" ],
"recurring" : { "interval" : "month" } if plan_type == "monthly" else None ,
"product_data" : {
"name" : f "Service Pro Plan ( { locale } )" ,
"description" : "..." ,
"images" : [ "https://yourdomain.com/images/stripe-product.png" ],
},
},
"quantity" : 1 ,
}],
metadata = {
"user_id" : user_id,
"plan_type" : plan_type,
},
success_url = f "https://yourdomain.com/ { locale } /?thanks= { plan_type } " ,
cancel_url = f "https://yourdomain.com/ { locale } /" ,
)
return { "url" : session.url}
metadata.plan_type を必ず設定するのは前編で書いた通りです。これがないと Webhook の分岐が壊れます。
ただし metadata の置き場所には、月額プランを扱うときだけ現れる罠があります。Checkout Session のトップレベル metadata は checkout.session.completed には乗りますが、その後に毎月飛んでくる請求イベントには乗りません 。継続課金の判定に使う値は subscription_data.metadata 側に置く必要があります。
session = stripe.checkout.Session.create(
mode = "payment" if plan_type == "one_shot" else "subscription" ,
# ...(line_items は上記のまま)...
metadata = { "user_id" : user_id, "plan_type" : plan_type},
subscription_data = (
{ "metadata" : { "user_id" : user_id, "plan_type" : plan_type}}
if plan_type == "monthly" else None
),
)
こう書くと metadata が Subscription 側に引き継がれ、以降の請求イベントからも plan_type を読めます。初月だけ権限が付いて 2 ヶ月目に静かに消える——副業サービスで最も気づきにくく、気づいたときには解約されている類の不具合が、ここで消えます。
Day 45時点の成果物
3層プランすべての決済が通ること
決済完了後の ?thanks=... パラメータでお礼バナー表示
マルチモーダル機能のペイウォール(プレビュー画像を見せて、結果は課金後)
Stripeダッシュボードで売上が確認できる状態
Phase 4(Day 46-60)— SEOとAI検索(GEO)対策
Geminiサービスならではの集客戦略として、Google検索 + AI検索(Gemini内検索)の両方を意識する 点が肝心です。Google AI Pro / Ultra ユーザーは Gemini アプリ内で検索することが増えており、自分のサービスがそこで言及されるかが新しい流入源になっています。
私が今もう一度やるならの順番
トップページに『悩み』を書く : 「画像から商品説明を作る」ではなく「ECで商品説明を書くのに毎日2時間かかっている方へ」
使い方記事を5本書く : 自社サービスを使った具体例を見せます
比較記事を3本書く : 自社 vs Google AI Pro、自社 vs 他のAIサービス
GEO(Generative Engine Optimization)対応 : 構造化データ、明示的なFAQ、引用しやすい段落構成
構造化データの最低限
< script type = "application/ld+json" >
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "あなたのサービス名",
"applicationCategory": "ProductivityApplication",
"operatingSystem": "Web",
"offers": [
{"@type": "Offer", "price": "250", "priceCurrency": "JPY", "name": "1回購入"},
{"@type": "Offer", "price": "580", "priceCurrency": "JPY", "name": "月額Pro"}
]
}
</ script >
ここで aggregateRating を足したくなります。星が付いた検索結果は明らかにクリックされますから、当然の誘惑です。それでも、自分のサービスに自分で星を付けることだけは避けています。
Google は、レビュー対象の事業者が自分でレビューを管理している状態を「自己奉仕的なレビュー」と呼び、リッチリザルトの対象外としています。加えて、ページ上に存在しない評価をマークアップすることは構造化データの一般的なガイドライン に反します。星が出ないだけなら実害はありませんが、手動対策を受ければ副業サービスの検索流入はその日で止まります。立ち上げ期の個人サービスにとって、これは取り返しのつかない損失です。
順序が逆なのです。まず本物のレビューをページに載せます。そのうえで、載っている評価と一致する値だけをマークアップします。それまでは offers と name だけの、正直な JSON-LD で十分に役目を果たします。
代わりに、GEO の観点で確実に効くのは FAQPage です。「このサービスは何ができるか」「いくらか」「入力したデータはどう扱われるか」の 3 問を、ページ上に見える形で置いてマークアップします。生成AIが回答に引用するのは星の数ではなく、この 3 問への簡潔な答えの方です。とくに 3 問目は、AI サービスに対して読者が最も知りたがっていて、なぜかどのサービスも書いていない項目です。ここを正直に書くだけで、あなたのページは引用されやすくなります。
Day 60時点の成果物
悩みドリブンなトップページ
使い方記事5本、比較記事3本
構造化データ実装
Google Search Console 登録、初の検索流入
Phase 5(Day 61-75)— コスト最適化と価格テスト
ここまで運用して、初めて自分のサービスの「実コスト分布」が見え始めます。多くの人が驚くのは、ヘビーユーザーの上位5%が原価の50%以上を占める ことです。これに対処しないと、ユーザーが増えれば増えるほど赤字が広がります。
私が必ず実装する3つのコスト制御
モデル切り替えの自動化 : ユーザーの利用パターンを見て、Pro が本当に必要なリクエストかを判定。デフォルトは Flash、明示的にPro指定があるか、Proが必要なほど複雑なタスクのみPro
入力サイズの強制制限 : 1 リクエストあたりの入力トークン数に上限を設けます。「無制限」は提供しません
コンテキストキャッシングの全面活用 : 同じプロンプトテンプレートが 1 セッションで 3 回以上使われるなら、キャッシュの検討対象に入れます
価格テストの実践手順
A/Bテストツールを入れる必要はありません。次のシンプルな手順で十分です。
2週間ごとに、Premium価格を¥500ずつ調整 : 解約率と新規購入率を観察
キャンペーン価格を期間限定で出す : 「感謝価格¥1,480」のようなバナーで転換率を測ります
3ヶ月後、ヘビーユーザー向けの追加トークン購入を売り始める : 月額Pro超過分を別売りにします
Day 75時点の成果物
コスト制御3点の実装
価格テスト2サイクル完了
ヘビーユーザー向けの追加収益動線
月収¥30,000〜¥80,000程度(運がよければ)
Phase 6(Day 76-90)— 運用と「マルチモーダル特有の」落とし穴
Geminiサービス特有の運用上の難しさが、最後の2週間で見えてきます。これを乗り越えるのが、長く続けるための最後の仕事です。
マルチモーダル特有の3つの落とし穴
落とし穴1: 画像/動画ファイルのストレージ問題
ユーザーが大量のファイルをアップロードするタイプのサービスでは、Cloudflare R2 や S3 の費用が想像以上にかかります。私は最初これを過小評価して、ストレージ費がGemini API原価と同額になりました。1ユーザーあたりのストレージ上限を最初から設定 してください。
落とし穴2: マルチモーダル特有のレイテンシ
画像・動画解析はテキスト処理よりも明確に遅いです。ユーザー体験を損なわないためには、バックグラウンド処理 + メール/プッシュ通知での結果通知 を最初から組み込むことを強く推奨します。
落とし穴3: コンテンツ規約への抵触
Gemini API はGoogleの利用規約 に従う必要があります。アダルト・暴力・著作権侵害コンテンツの生成は厳しく制限されています。ユーザーが意図せず規約違反コンテンツを入力してしまうケースもあるため、入力時のフィルタリングを実装してください。
自分の運用コストの3軸管理
私が3年やって学んだのは、運用は「お金 × 時間 × 心」の3軸で見るということです。
お金 : 売上 − Gemini API原価 − Stripe手数料 − ストレージ費 − その他インフラ = 純利益
時間 : 週次の運用時間(バグ対応、CS、マーケ含む)
心 : 朝起きてそのサービスを開く気分が、ワクワク/中立/嫌のどれか
純利益が同じでも、「心」が嫌に振れたときは撤退ラインを思い出すようにしています。私は過去に、純利益がいちばん高かったサービスを、運用が嫌になりすぎてたたんだことがありました。いま思えば、たたむ判断そのものより、たためない自分のほうが問題だったのかもしれません。続けたくないものは、続きません。
撤退ラインの設定
最初に撤退ラインを決めておくのは、副業者にとってサンクコスト管理の鉄則です。私の基準は次のいずれかが3ヶ月続いたら撤退、です。
月の純利益がインフラ費を割り込んだとき
週次の運用時間が 10 時間を超えたとき
朝、そのサービスの通知を開くのが苦しくなったとき
撤退の自由がない副業は、いずれ本業も食い潰します。
私が3年で学んだ、Geminiサービス特有の3つの教訓
最後に、Gemini API ならではの、私が痛い目を見て学んだ教訓を3つだけ。
教訓1: マルチモーダルを「やりすぎない」
「画像も動画も音声も全部できます」と謳いたくなりますが、ユーザーは1つの明確な機能を求めています。1サービスにつき、入力モーダル1種類 に絞るとUIもプロンプト設計も格段に楽になります。私は最初、欲張って3モーダル対応にしてしまい、3つとも中途半端になった経験があります。
教訓2: モデル切り替えの自動化を本番までに必ず入れる
3.5 Flash から 3.7 Flash、3.8 Flash へと世代が上がるたびに、すぐ差し替えられる構造にしておくことは、個人開発者にとって最大の防御策です。モデル名を環境変数で管理 し、管理画面から切り替えられるようにしておきます。新しい世代のほうが安いことが多いため、この一手間だけで半年ごとに原価が 10〜20% 下がります。ただし世代を上げるときは、先ほどのキャッシュ下限(3 系は 4,096)を必ず一緒に見直します。モデル名だけ差し替えて下限を放置すると、切り替えた日から原価が上がります。
教訓3: Free Tier のまま本番に出さない
Free Tier は開発中には申し分ありません。ただ、本番のあらゆる経路を Free Tier 前提で設計してしまうと、あとから引き返すのが難しくなります。利用規約 の版によっては入力・出力が製品改善に使われる場合があり、「このサービスは私のデータを Google に渡しているのか」と聞かれたときに、正直に答えられなくなるからです。課金を有効にして Tier 1 に上げてから本番を開けます。
そして、ここに私がしばらく取り違えていたことがあります。
レート制限はプロジェクト単位で効きます。API キー単位ではありません。
レート制限のドキュメント にある通り、制限は RPM(分あたりリクエスト数)・TPM(分あたり入力トークン数)・RPD(1 日あたりリクエスト数)の 3 軸で評価され、どれか 1 つを超えた時点で 429 が返ります。3 軸のうち副業サービスがいちばん先に当たるのは、たいてい RPD です。分あたりの山ではなく、1 日の総量で詰まるのです。
そして、この 3 軸が紐づく先はプロジェクトです。開発用と本番用でキーだけ分けても、同じプロジェクトにいる限り枠は共有されます。深夜に検証バッチを回した翌朝、本番のユーザーが 429 を踏む——原因はここでした。分けるべきは API キーではなく、プロジェクトです。 いま思えば、キーを分けた時点で分離できたつもりになっていたのが、いちばん危うい状態でした。
RPD の挙動にも癖があります。1 日あたりの枠は 太平洋時間の深夜にリセット されます。日本時間で言えば夕方前後です。「毎日、夕方になると急に通るようになる」という体感に心当たりがあれば、それは偶然ではなく RPD の境界を跨いでいるだけかもしれません。
Tier 1 には「10 分あたりの支出上限」がある
もう一つ、課金を有効にした人だけが踏む制限があります。Gemini API には RPM / TPM とは別に、支出ベースのレート制限 があり、直近 10 分のローリングウィンドウで評価されます。
Tier 1 の $10 は、日常のトラフィックではまず届きません。届くのは、ひとりのユーザーが数百ページの PDF をまとめて投げてきた瞬間です。そのとき返るのは 429 RESOURCE_EXHAUSTED——文字面はいつもの上限超過と同じで、原因だけが違います。RPM も TPM も余っているのに 429 が出るなら、疑うのは支出側です。
重い一括処理を売りにするなら、リアルタイム経路ではなく Batch API に逃がすのが素直です。Batch は通常の呼び出しとは別枠のレート制限を持っていて、同時実行 100 件、入力ファイル 2GB、ファイル保管 20GB という、まったく違う物差しで動きます。「今すぐ返ってこなくてよい仕事」を分けておくと、対話側の枠を守れます。
なお、Free から Tier 1 への昇格はほぼ即時に反映されます。以降の昇格は 10 分ほどです。開発用プロジェクトは Free のまま残し、本番用は別プロジェクトを立てて課金を有効にします。 私はこの分け方に落ち着きました。
90日のロードマップは、あくまで「最短ルートの一例」です。本業がある人は倍の180日でも全く問題ありません。速さよりも、自分が持続できる構造 を最優先していただければと思います。
Geminiの最大の強みは、マルチモーダル対応の幅広さと、コンテキストキャッシングによる原価の柔軟性です。この2つを活かす設計ができた個人サービスは、競合がClaude APIやGPT API単独で作っているサービスに対して、原価でも体験でも明確な優位 を持てます。
明日、Phase 1 の最初の質問—「Geminiが明確に有利な3領域のうち、自分はどれを選ぶか」—にだけ答えてみてください。それが90日後のあなたの収入の出発点になります。