gplay-rollout-management について
gplay-rollout-managementは、Google Playの段階的リリースを管理する開発者向けスキルです。公開率の変更、一時停止、再開、完了の手順に加え、クラッシュ率やレビューを判断材料にする方法を説明します。
主な機能
- 01割合を指定したリリース開始
- 02公開率の段階的な引き上げ
- 03段階的リリースの停止・再開・完了
- 04リリース進捗の確認
- 05クラッシュ率とユーザーレビューの監視
活用シーン
- 01新バージョンを一部のユーザーに先行公開
- 02問題発生時の配信停止
- 03クラッシュ率やレビューを見て公開範囲を判断
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tamtom/ gplay-cli-skills --skill gplay-rollout-managementインストール後、Claude Code で/gplay-rollout-managementを入力して読み込まれたか確認します。
詳細
段階的なロールアウト管理
Google Play で段階的なリリースを管理する必要がある場合に、このスキルを使用します。
段階的なロールアウトとは?
段階的なロールアウトでは、アプリを一定の割合のユーザーにリリースできるため、次のことが可能です。
- 全ユーザーへのリリース前に、クラッシュ率やレビューを監視する
- 影響を受けるユーザーを限定して、重大なバグを発見する
- 確信が深まるにつれて、配信対象を段階的に増やす
段階的なロールアウトを開始する
初回リリース時
gplay release \
--package com.example.app \
--track production \
--bundle app-release.aab \
--rollout 0.1
これにより、ユーザーの10%にリリースされます。
ロールアウトで昇格する
gplay promote \
--package com.example.app \
--from beta \
--to production \
--rollout 0.25
ロールアウト率を増やす
# Increase to 25%
gplay rollout update \
--package com.example.app \
--track production \
--rollout 0.25
# Increase to 50%
gplay rollout update \
--package com.example.app \
--track production \
--rollout 0.5
# Increase to 100% (or use complete)
gplay rollout update \
--package com.example.app \
--track production \
--rollout 1.0
ロールアウトを停止する
問題が検出された場合は、配信を一時停止します。
gplay rollout halt \
--package com.example.app \
--track production
影響:
- 以降の配信を停止します
- 既存のユーザーはアップデートを引き続き利用できます
- 新しいユーザーにはアップデートが配信されません
ロールアウトを再開する
問題を修正した後に再開します。
gplay rollout resume \
--package com.example.app \
--track production
ロールアウトを完了する
ユーザーの100%にリリースします。
gplay rollout complete \
--package com.example.app \
--track production
ロールアウトの状況を確認する
gplay tracks get \
--package com.example.app \
--track production \
| jq '.releases[0].userFraction'
推奨するロールアウト戦略
慎重な戦略(7日間のロールアウト)
# Day 1: 10%
gplay release --package com.example.app --track production --bundle app.aab --rollout 0.1
# Day 2: 25% (monitor crash rate)
gplay rollout update --package com.example.app --track production --rollout 0.25
# Day 3: 50%
gplay rollout update --package com.example.app --track production --rollout 0.5
# Day 5: 75%
gplay rollout update --package com.example.app --track production --rollout 0.75
# Day 7: 100%
gplay rollout complete --package com.example.app --track production
積極的な戦略(3日間のロールアウト)
# Day 1: 25%
gplay release --package com.example.app --track production --bundle app.aab --rollout 0.25
# Day 2: 50%
gplay rollout update --package com.example.app --track production --rollout 0.5
# Day 3: 100%
gplay rollout complete --package com.example.app --track production
特に慎重な戦略(重要なアプリ向け)
# Day 1: 5%
gplay release --package com.example.app --track production --bundle app.aab --rollout 0.05
# Day 2: 10% (monitor carefully)
gplay rollout update --package com.example.app --track production --rollout 0.1
# Day 3: 25%
gplay rollout update --package com.example.app --track production --rollout 0.25
# Day 5: 50%
gplay rollout update --package com.example.app --track production --rollout 0.5
# Day 7: 75%
gplay rollout update --package com.example.app --track production --rollout 0.75
# Day 10: 100%
gplay rollout complete --package com.example.app --track production
ロールアウト中の監視
クラッシュ率を確認する
Play Console → 品質 → Android Vitals を使用します。
レビューを監視する
# Get recent reviews
gplay reviews list \
--package com.example.app \
--paginate \
| jq '.reviews[] | select(.createdTime > "2025-02-05") | {rating, text: .comments[0].userComment.text}'
星1つのレビューを絞り込む
gplay reviews list \
--package com.example.app \
| jq '.reviews[] | select(.rating == 1) | .comments[0].userComment.text'
判断基準
| 指標 | 対応 |
|---|---|
| クラッシュ率 < 1% | ロールアウトを続ける |
| クラッシュ率 1-2% | 停止して調査する |
| クラッシュ率 > 2% | 停止し、可能であればロールバックする |
| 星1つのレビューが急増 | 停止して調査する |
| ANR 率が急増 | 停止して調査する |
| 24時間後も問題なし | ロールアウト率を増やす |
ロールバック戦略
Google Play は自動ロールバックをサポートしていませんが、次の方法を利用できます。
方法1:ホットフィックスをアップロードする
# Build hotfix with higher version code
./gradlew bundleRelease
# Release hotfix immediately to 100%
gplay release \
--package com.example.app \
--track production \
--bundle app-hotfix.aab
方法2:以前のバージョンを昇格する
以前のバージョンがベータトラックに残っている必要があります。
gplay promote \
--package com.example.app \
--from beta \
--to production
ベストプラクティス
- 必ず20%未満から開始する - 問題を早期に発見できます
- 増加の間隔を24時間空けて監視する
- ホットフィックスの計画を立てる - 重大なバグをすばやく修正できるよう備えます
- アラートを設定する - クラッシュ率を自動的に監視します
- ベータ版で十分にテストする - 本番環境での問題を減らします
- ユーザーに伝える - リリースノートを更新します
- 急がない - 段階的なロールアウトは安全のために行います
避けるべきよくある間違い
❌ 避けること:
- 10%から一気に100%へ引き上げる
- クラッシュ率の上昇を無視する
- 週末や祝日にロールアウトする(監視に時間がかかるため)
- ベータテストの段階を省略する
✅ 実施すること:
- クラッシュ率を継続的に監視する
- ロールアウト中にチームが対応できる体制を整える
- ホットフィックスを事前に準備する
- 関係者に予定のスケジュールを伝える
自動化の例
自動ロールアウトを使用した CI/CD
# .github/workflows/rollout.yml
name: Automated Rollout
on:
schedule:
- cron: '0 9 * * *' # Daily at 9 AM
jobs:
increase-rollout:
runs-on: ubuntu-latest
steps:
- name: Get current rollout
id: current
run: |
CURRENT=$(gplay tracks get --package $PACKAGE | jq -r '.releases[0].userFraction')
echo "fraction=$CURRENT" >> $GITHUB_OUTPUT
- name: Increase rollout
if: steps.current.outputs.fraction < 1.0
run: |
NEW_FRACTION=$(echo "${{ steps.current.outputs.fraction }} + 0.25" | bc)
gplay rollout update --package $PACKAGE --track production --rollout $NEW_FRACTION
サポート
手動でロールアウトを制御する場合は、バックアップとして常に Google Play Console の UI を使用してください。
コメント
Markdown 対応