GEMINI LABEN
SUNSET — gemini-robotics-er-1.6-preview は8月31日に停止します。残り13日となり、移行の実作業に取りかかる時期ですMIGRATION — 移行先は7月30日にパブリックプレビューとなった gemini-robotics-er-2-preview と gemini-robotics-er-2-streaming-preview です。テキスト・画像・動画・音声を入力できますPRICING — 8月13日に一般提供となった Gemini 3.7 Flash の導入価格は2026年12月31日までです。年をまたぐワークロードは価格改定を織り込んだ試算が要りますDEPRECATION — サンプリングパラメータの temperature・top_p・top_k が非推奨になりました。明示指定しているコードは、指定を外した場合の出力差分を今のうちに測っておくと安全ですVIDEO — 動画の生成と編集に対応する Gemini Omni Flash が Google AI Studio と Gemini API から利用できますLOGS — Interactions API が開発者ログに対応し、対象となる API 呼び出しのログを AI Studio のダッシュボードで確認できるようになりましたSUNSET — gemini-robotics-er-1.6-preview は8月31日に停止します。残り13日となり、移行の実作業に取りかかる時期ですMIGRATION — 移行先は7月30日にパブリックプレビューとなった gemini-robotics-er-2-preview と gemini-robotics-er-2-streaming-preview です。テキスト・画像・動画・音声を入力できますPRICING — 8月13日に一般提供となった Gemini 3.7 Flash の導入価格は2026年12月31日までです。年をまたぐワークロードは価格改定を織り込んだ試算が要りますDEPRECATION — サンプリングパラメータの temperature・top_p・top_k が非推奨になりました。明示指定しているコードは、指定を外した場合の出力差分を今のうちに測っておくと安全ですVIDEO — 動画の生成と編集に対応する Gemini Omni Flash が Google AI Studio と Gemini API から利用できますLOGS — Interactions API が開発者ログに対応し、対象となる API 呼び出しのログを AI Studio のダッシュボードで確認できるようになりました
記事一覧/最新情報
最新情報/2026-08-18上級

Google アシスタントの置き換えは戻せないので、基準線は今しか取れません

9月4日から Google アシスタントが Gemini へ置き換わり、切り替わった端末は元に戻せません。音声から開かれた起動をアプリ側で見分けて記録し、置き換え前の基準線を残すまでの作業と、日付では前後を切れないという誤算をまとめます。

Gemini78Google アシスタントAndroid11運用設計14個人開発101

プレミアム記事

段階公開のダイヤルを 5% から 25% へ上げる朝、私が見ている数字は毎回同じです。Crash-free users が 99.7% を割っていないか、ANR が 0.20% を超えていないか。この2つが平らなら次へ進みます。

Google Play Console でその2つを眺めていたときに、少しだけ落ち着かなくなりました。9月4日から、Android と Wear OS で Google アシスタントが Gemini へ置き換わります。切り替えは順次で、完了までに数週間かかる見込みで、そして一度切り替わった端末は元のアシスタントに戻せません

仮に音声からアプリを開く経路がその前後で変わったとして、その変化は Crash-free users にも ANR にも現れません。クラッシュしないからです。例外も飛びません。ただ、来なくなるだけです。

来なくなったものは、数えていなければ気づけません。個人開発で6本のアプリを運用していますが、音声から開かれた起動が全体の何%を占めるのかを、私はこれまで一度も測っていませんでした。

戻せない置き換えでは、後から対照群を作れません

プラットフォーム側の変更に対しては、ふだん「壊れてから直す」で足ります。壊れたことが観測でき、前の状態へ戻す手段があるからです。今回はその両方が成り立ちません。

置き換えは端末単位で不可逆です。切り替わった端末を元へ戻す操作は用意されていません。ルーティンやサードパーティ連携は Gemini 側の枠組みへ引き継がれるものと、移行の過程で失われるものがあると報じられていますが、どちらに転ぶかを端末ごとに事前確認する手段は、少なくとも私の手元にはありません。

一方で、Google アプリまたは端末設定から自分のタイミングで先に Gemini へ寄せることはできます。つまり「置き換え前」を観測できる期間の終わりは決まっていて、その先へ延長する手段がありません。

対象9月4日以降の扱い
Android スマートフォン・タブレット順次 Gemini へ置き換え
Wear OS スマートウォッチ順次 Gemini へ置き換え
アシスタント対応ヘッドフォン順次 Gemini へ置き換え
スマートフォン投影型の Android Auto順次 Gemini へ置き換え
Google ビルトイン搭載車継続

停止日をまたぐ設計そのものについては、配布済みバイナリに残った設定の話を停止日をまたいだ切り戻しの設計に書きました。今回はサーバー側もクライアント側も自分では書き換えられない層、つまり端末の音声入力そのものが変わる場合の話です。

音声から開かれた起動を、アプリ側でどう見分けるか

まず前提を一つ。私は「音声で開かれた起動を確実に判定する方法」を持っていません。持っているのは、起動時に手元へ届く手がかりだけです。

起動時に手に入る手がかり

Activity が起動された時点で参照できるのは、おおむね次の3つです。

  1. Intent の action と data(ACTION_VIEW によるディープリンクか、検索由来か、ランチャーからの通常起動か)
  2. Activity.getReferrer() が返す呼び出し元のパッケージ名またはスキーム
  3. Intent の extras に載ってくる文字列(検索クエリやディープリンクのパラメータ)

このどれが埋まるかは、呼び出す側の実装に依存します。だからこそ、いま決め打ちで1つだけを見に行く設計にすると、置き換え後に呼び出し側の作りが変わったときに何も残りません。

判定せず、そのまま記録する

私が選んだのは、判定ロジックを薄くして、素の値を丸ごと1イベントに載せる形です。分類は後から、手元のデータに対して行えます。

// MainActivity.kt — 起動の出どころをそのまま記録する
// 方針: この時点で「音声かどうか」を判定しない。判定は後段の集計側で行う。
class MainActivity : ComponentActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        recordLaunchOrigin(intent)
        // 以降は通常の初期化
    }
 
    private fun recordLaunchOrigin(launchIntent: Intent) {
        // referrer は API 22 以降。android-app://<package> 形式で来ることが多い
        val referrerHost = referrer?.host ?: "none"
        val action = launchIntent.action ?: "none"
 
        // 検索由来で載ることがある発話文字列。載らない経路のほうが多い
        val rawQuery = launchIntent.getStringExtra(SearchManager.QUERY)
 
        // ディープリンクのパラメータもまとめて拾う(キー名だけを残す)
        val extraKeys = launchIntent.extras?.keySet()
            ?.filterNot { it.startsWith("android.") }   // 端末側の内部キーは除外
            ?.sorted()
            ?.joinToString(",")
            ?: ""
 
        Firebase.analytics.logEvent("launch_origin") {
            param("action", action.takeLast(40))
            param("referrer_host", referrerHost.takeLast(40))
            param("has_query", if (rawQuery.isNullOrBlank()) 0L else 1L)
            param("extra_keys", extraKeys.takeLast(90))   // 100 文字上限に余裕を持たせる
            param("app_version", BuildConfig.VERSION_NAME)
        }
 
        // 発話文字列そのものは Analytics に入れず、同意済みの端末のみ自前の収集先へ送る
        if (rawQuery != null && consentManager.analyticsGranted) {
            utteranceCollector.enqueue(rawQuery.trim())
        }
    }
}

ここでの落とし穴は2つありました。1つ目は、Firebase Analytics のイベントパラメータに文字列長の上限があることで、extras のキー名を素直に連結すると静かに切り詰められます。2つ目は、発話文字列をそのまま Analytics へ送ると、意図せず個人情報が混ざる余地が残る点です。私は発話本文を Analytics から外し、同意済み端末に限って別経路へ送る形へ分けました。

何を前提に置かないか

「音声からの起動なら referrer_host に特定のパッケージ名が入る」という前提は置いていません。置き換え後に呼び出し元のパッケージが変わる可能性がありますし、そもそも経路によっては埋まりません。判定の代わりに、actionreferrer_host の組み合わせの出現分布を残します。分布は、前提が外れても後から読み直せます。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
音声から開かれた起動を自分のアプリ側で見分けて記録できるようになり、置き換え後の増減を推測ではなく差分で語れるようになる
Crash-free 率や ANR には現れない種類の劣化を、9月4日より前にリリース監視の項目へ足しておけるようになる
集めた発話の文字列を Gemini で分類し、言い回しが変わったのか利用そのものが減ったのかを切り分けられるようになる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

最新情報2026-07-17
目標日を迎えても来なかったモデルに、設定を先に合わせない — 上限を実測から引くコンテキスト予算の設計
報道された 7/17 を迎えても Gemini 3.5 Pro の公式発表はありません。噂の数値を定数に焼き込む代わりに、モデルが公表する上限を実測から引き、超過時に落とさず縮退させるコンテキスト予算層を、動くコードで設計します。
最新情報2026-06-13
Gemini in Chrome が Android に来る前に、ブログ側で整えておきたいこと
Gemini in Chrome の Android 展開が6月下旬に始まります。auto browse を載せたモバイルのエージェントブラウジングを見据え、個人ブログ側で先に整えておきたい設計のポイントを実作業ベースでまとめました。
最新情報2026-06-11
Google I/O 2026 直前 — Gemini に何が起きそうか、個人的に注目しているポイント
Google I/O 2026 の開幕直前に、過去の発表パターンと開発動向から Gemini に何が起きそうかを予想しました。Gemini 3 系のラインナップ、Gemini Nano の本格展開、Project Astra の一般化、Veo 3 の次の一手など、注目ポイントを個人的な視点で整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →