mcpField
G
gplay-rollout-management

gplay-rollout-management

github.com/tamtomクラウド・DevOps52351 回インストール13 週間前に更新
リポジトリ

gplay-rollout-management について

gplay-rollout-managementは、Google Playの段階的リリースを管理する開発者向けスキルです。公開率の変更、一時停止、再開、完了の手順に加え、クラッシュ率やレビューを判断材料にする方法を説明します。

主な機能

  1. 01割合を指定したリリース開始
  2. 02公開率の段階的な引き上げ
  3. 03段階的リリースの停止・再開・完了
  4. 04リリース進捗の確認
  5. 05クラッシュ率とユーザーレビューの監視

活用シーン

  1. 01新バージョンを一部のユーザーに先行公開
  2. 02問題発生時の配信停止
  3. 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

ベストプラクティス

  1. 必ず20%未満から開始する - 問題を早期に発見できます
  2. 増加の間隔を24時間空けて監視する
  3. ホットフィックスの計画を立てる - 重大なバグをすばやく修正できるよう備えます
  4. アラートを設定する - クラッシュ率を自動的に監視します
  5. ベータ版で十分にテストする - 本番環境での問題を減らします
  6. ユーザーに伝える - リリースノートを更新します
  7. 急がない - 段階的なロールアウトは安全のために行います

避けるべきよくある間違い

❌ 避けること:

  • 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 を使用してください。

コメント