新しいアプリの試作用に、Google Cloud 側で有料プロジェクトを一つ作り直した日のことを想像してみてください。キーを発行して、最初のリクエストが通って、ほっとしたところで AI Studio の Logs を開くと、自分が送ったはずの文面がずらりと並んでいます。
私自身、アプリのレビュー文を翻訳に回す処理を組むときには、ユーザーさんの書いた文面をそのまま API に渡します。そこに名前やメールアドレスが混ざっていることもあるため、「どこに何が残るのか」は、動作確認と同じくらい先に知っておきたい事柄です。
2026 年 10 月 26 日、Gemini API の changelog に、まさにその部分に触れる一行が加わりました。最初にお伝えしたいのは、慌てて全部を止める必要はなく、確かめる場所が三か所あるだけだということです。
何が変わったのかを、公式の記述どおりに読みます
changelog の項目は「Generate Content API storage on by default」です。内容は次のとおりでした。
- 対象は
generateContent・streamGenerateContent・batchGenerateContent - 10 月 26 日以降に作られた有料プロジェクトは、既定で
store=trueになる - 既存のプロジェクトは、現在の設定のまま
- 止めたいときは、リクエストごとに
store=falseを指定するか、AI Studio の Logs and Datasets にある Settings でログを切る
見出しだけを拾うと「全員の設定が変わった」と読んでしまいそうになります。私も最初の一読では、既存のプロジェクトも対象に含まれるのだと思いかけました。けれど本文には「既存は現状維持」とはっきり書かれていますので、影響を受けるのは新しく作った有料プロジェクトだけです。
| プロジェクトの状態 | generateContent の既定 |
|---|---|
| 10 月 26 日以降に作った有料プロジェクト | 保存される(store=true) |
| それ以前に作った有料プロジェクト | これまでの設定のまま(AI Studio でログを有効にしていなければ保存されない) |
| 無料枠のプロジェクト | ログの保存機能そのものが有料プロジェクト向け |
なお Interactions API は、もともと既定で保存される仕様でした。今回は generateContent 側がそこに揃えられた、という位置づけです。
確かめる一か所目:自分のプロジェクトが対象かどうか
見分け方は単純で、プロジェクトの作成日が 10 月 26 日以降かどうかです。Google Cloud コンソールのプロジェクト一覧で作成日を確認します。迷ったときは、AI Studio の Logs を開いて、最近のリクエストが一覧に出ているかを見てください。
出ていれば、そのプロジェクトでは保存が有効です。出ていなければ、少なくとも今は保存されていません。ただし Logs の表示には、そのプロジェクトに有効な API キーが一つ以上必要です。キーを全部消すとログが見えなくなるだけで、保存されたものが消えるわけではない点には注意が必要です。
二か所目:プロジェクト全体で止める
保存そのものが要らないプロジェクトなら、AI Studio の Logs and Datasets で Settings を開きます。ここでは generateContent と Interactions API を別々に切り替えられます。
一点だけ、見落としやすいところがあります。Interactions API 側のログを切ると、会話履歴の自動保存と取り出しも止まります。履歴をサーバー側に預けて使っている実装は、リクエストごとの指定で上書きしていない限り、動き方が変わってしまいます。
履歴の預け方そのものを考え直したい方は、Interactions API の履歴をサーバーに預けるか、手元で刈り込むかも併せてご覧ください。
三か所目:リクエストごとに store を指定する
プロジェクトの設定は残したまま、特定の呼び出しだけ保存したくない場合は、リクエスト側で上書きします。公式のドキュメントが示しているのは Python SDK の例で、config に store を渡す形です。
from google import genai
client = genai.Client() # API キーは環境変数から読み込まれます
response = client.models.generate_content(
model="MODEL_ID", # 実際に使っているモデル ID に置き換えてください
contents="この文面を英語に翻訳してください: ...",
config={"store": False}, # このリクエストだけ保存しない
)
print(response.text)ここで引っかかりやすいのは SDK のバージョンです。ドキュメントによると、generateContent で store を使うには google-genai が 2.33.0 以上である必要があります。古いままのときは、まず次の一行で手元の版を確かめます。
pip show google-genai | grep VersionREST で直接叩いている場合の項目名は、私が読んだ範囲のドキュメントには書かれていませんでした。推測で書くと誤りになりかねませんので、REST 利用の方は公式の API リファレンスで該当のフィールドを確かめてからお使いください。
プロジェクト側が「保存する」でも、リクエスト側の指定が優先されます。個人情報が混ざりうる処理の呼び出しにだけ store=False を置き、それ以外は既定のままにしておく、という分け方もできるのです。
止めないと決めた場合:保存期間を短くします
デバッグのために保存を残したいこともあります。その場合は、保存期間を詰めておくと安心です。ログの既定の保存期間は 55 日で、7 日・14 日・28 日・55 日から選べます。期限を過ぎたログは削除対象になります(保存してデータセットにしたものは期限切れになりません)。
| 使い方 | おすすめの置き方 |
|---|---|
| 個人情報を含む入力を日常的に送る | プロジェクト全体で保存を切るか、該当の呼び出しだけ store=False |
| 開発中に失敗した入出力を見返したい | 保存は残し、保存期間を 7 日か 14 日に |
| 評価用の入出力を残したい | 必要な分だけデータセットとして保存 |
なお、保存の対象外になっている入力もあります。動画・GIF・PDF を含む入力、Imagen・Veo・埋め込みモデルなどは記録されません。ただし「記録されない」ことを、個人情報の扱いの根拠にするのは避けたほうがよさそうです。
公式の記述から読み取れなかったこと
保存される中身の範囲、ログが学習に使われるかどうかは、changelog にも Logs and Datasets のページにも明記されていませんでした。ここは私の推測で埋めず、「データのログと共有」に関する公式ページの規約を、ご自身の用途に照らして読んでいただく部分です。
いま思えば、保存の既定を気にするのは本番に近づいてからで十分だと考えていたのかもしれません。私なら、次の順で確かめます。プロジェクトの作成日、Logs に履歴が出ているか、そして個人情報を送る呼び出しに store=False が入っているか。この三つを、新しいプロジェクトを作った日のチェックリストの先頭に置いておくつもりです。
まずは今日のうちに、直近で作った有料プロジェクトの Logs を一度だけ開いてみていただければと思います。