# Gemini の費用を削る前に、計器を疑った：単価・内訳・キャッシュの 3 つが壊れていて、キャッシュの条件は測り直すと変わっていた

> Gemini の費用の計測は 3 か所とも壊れていた（単価は 1/2.6 の過小表示、31 の用途が 1 つに潰れ、キャッシュ未計上）。キャッシュが効く条件は 9 月は約 8,000、10 月は約 4,000 トークンと食い違った。指示文を水増しすると判定が 9% ずれた。

- URL: https://koshinstudio.com/notes/gemini-meter/
- 公開: 2026-10-17
- 書いた人: Koshin（https://koshinstudio.com/about/）
- サイト: Koshin Studio

  English version (https://koshinstudio.com/en/notes/gemini-meter/)

トレカダッシュ 開発の記録 ／ 2026年9月〜10月

  iOS アプリ「トレカダッシュ (https://koshinstudio.com/works/torecadash/)」は、記事の判定や商品の照合に、Google の Gemini（AI）を使っています。使った分だけお金がかかるので、費用を減らす作業を何度かしました。この記事は、その中の 2 つの回の記録です。

- 9 月 4 日：費用を削る前に計測を点検したら、3 か所とも壊れていた。

- 10 月 16 日：「キャッシュが効く条件」を測り直したら、9 月の結論と食い違っていた。

  数字は、2026 年 9 月 4 日と 10 月 16 日の作業の記録から書いています。使ったのは gemini-3.1-flash-lite です。

## 計器が、3 か所とも壊れていた

  「費用を削って」と言われて、最初にしたのは、削ることではなく、費用の計測が合っているかの確認でした。合っていない計器で削ると、効かない場所を削って「なぜ下がらない」となります。実際に、3 つの欠陥が見つかりました。

    計器の欠陥 | 起きていたこと

      単価が違う | コード上の単価は、100 万トークンあたり入力 $0.10・出力 $0.40。実際の価格は 入力 $0.25・出力 $1.50。費用を約 1/2.6 に、少なく表示していた。

      内訳のラベルが潰れていた | 用途別の集計が、実際には存在しない名前のキー（params.system）を見ていた（正しくは system_instruction）。31 種類の用途が、全部 1 つの塊になり、どの指示文が高いのか、一度も読めていなかった。

      キャッシュを数えていない | 入力の 31% はキャッシュの命中で、単価が 1/10 なのに、全部を定価で数えていた。約 4 割、多く見積もっていた。

  もう 1 つ、見かけ上の「費用 2 位」が、本番の問題ではありませんでした。「ジョブ外」という名前の項目が 1 日 195 円で 2 位でしたが、これは私自身が、手で実行した分でした。本番の実力を見るときは、手動で動かした分を、必ず除きます。

  直した計器で測ると、この時点で、1 日約 606 円（月 18,168 円）。キャッシュの分を引いた実質は、月約 13,200 円でした。費用のほとんどは入力トークンで、中身は、毎回送り直す指示文と候補の一覧です。

## 9 月の測定：キャッシュは約 8,000 トークンを超えてから

  Gemini には、同じ長い指示文を繰り返し送ると、2 回目から安くなる仕組み（暗黙のキャッシュ）があります。命中した分の単価は 1/10 です。そこで、同じ指示文を 3 回続けて送って、どこから効くかを測りました。

    指示文の長さ（入力トークン） | キャッシュの命中

      5,209 | 0

      8,490 | 4,079

      17,070 | 12,263

  当時の結論は、「約 8,000 トークンを超えてから効く」でした。実質のトークンは、入力 − 0.9 × 命中で計算できます。

  ここで、無理に指示文を長くして基準に乗せるのは、逆に高くつく、と分かりました。4,200 トークンの指示文を 8,500 に膨らませると、実質は 4,814 トークンで、元より多いのです。キャッシュが得になるのは、元から大きい指示文だけです。

## 10 月の測り直し：条件は、約 4,000 トークンだった

  もう一度、本番のキーで、同じ測定をしました。今度は、interactions API という呼び出し口で測りました。結果は、9 月と違いました。

    指示文の長さ（入力トークン） | キャッシュの命中

      1,770 | 0

      4,093 | 2,031（2 回目から）

      7,017 | 4,076

  約 4,000 トークンから効き、先頭の約 2,038 トークン単位で命中していました。9 月は「8,000 から」、10 月は「4,000 から」。なぜ食い違うのかは、確かめていません。測り方の違いや、サービス側の変更が考えられますが、どれが原因かは分かっていません。分かるのは、「キャッシュの条件は、固定の事実ではなく、測り直すもの」ということです。

  本番の指示文は、1,000〜2,500 トークンでした。先頭の固定部分が基準に届かず、命中は 1 日中 0 でした。入力トークンが費用のほぼ全部（出力は約 1%）なので、キャッシュが効けば、大きな節約に見えました。

## 指示文を水増ししてみた。判定が 9% ずれた

  「判定に影響しない注記」を足して、指示文を約 2,300 トークンに伸ばし、基準に乗せる案を試しました。実データ 90 件で、元の指示文と答えを比べました。

- 判定が 8 件（9%）食い違いました。「その他」「抽選」「ゲリラ販売」のあいだで、答えが変わりました。

- しかも、約 2,600 トークンでは、キャッシュに命中しませんでした。

  精度が落ちるのに、命中も取れない。この案は取り下げて、本番には出していません。「影響しない」はずの文章でも、AI の答えは変わります。確かめずに足してはいけません。

## いま残っている、いちばん大きい項目

  実データで内訳を見ると、最大の単独項目は、商品の照合でした。1 回あたり平均 7,151 入力トークン、1 日 297 回で、約 83 円です。候補の絞り込み、まとめて聞く、AI に聞かずに済ませる、は、すでに入れてあります。これ以上は、候補を減らす、つまり精度を下げる方向になるので、見送っています。

  削るなら、指示文を短くする方向です。その場合は、1 本ずつ、実データで判定が一致するかを確かめます。末尾の水増しで、キャッシュを狙いません。

## 分かったこと

> 費用を削る前に、削る道具を疑う。

- 単価は、記憶で書かない。公式の価格ページで確かめます。1/2.6 の過小表示は、単価の書き写しの誤りでした。

- 内訳のラベルが、本当に分かれているか、実データを 1 回出して目で見る。31 種類が 1 つに潰れていても、合計は合っているので、気づきません。

- 自分の作業が、本番の数字に混ざっていないか見る。

- 条件は、測り直す。9 月の「8,000」は、10 月には「4,000」でした。

- 「影響しない」変更も、実データで確かめる。90 件で試して、9% ずれました。

  この話に出てくるもの

- トレカダッシュ (https://koshinstudio.com/works/torecadash/) — トレカの抽選・予約・先着の情報を集める iPhone アプリ

- Claude API から Gemini API へ移行した (https://koshinstudio.com/notes/gemini-migration/) — Gemini を使うことになった経緯

- Claude API と Gemini API を、公式の数字で比べる (https://koshinstudio.com/notes/claude-vs-gemini-api/) — 値段や上限を公式の情報で比べた記事

- Firestore の費用を円で出したら、読み取りの 91% が 1 か所だった (https://koshinstudio.com/notes/firestore-91/) — 同じ「まず計器」の記録
