gplay-rollout-management
Staged rollout orchestration and monitoring for Google Play releases. Use when implementing gradual release strategies.
Works with
---
name: gplay-rollout-management
description: Staged rollout orchestration and monitoring for Google Play releases. Use when implementing gradual release strategies.
license: MIT
---
# Staged Rollout Management
Use this skill when you need to manage gradual releases on Google Play.
## What is Staged Rollout?
Staged rollout releases your app to a percentage of users, allowing you to:
- Monitor crash rates and reviews before full release
- Catch critical bugs with limited user impact
- Gradually increase distribution as confidence grows
## Start a Staged Rollout
### During initial release
```bash
gplay release \
--package com.example.app \
--track production \
--bundle app-release.aab \
--rollout 0.1
```
This releases to 10% of users.
### Promote with rollout
```bash
gplay promote \
--package com.example.app \
--from beta \
--to production \
--rollout 0.25
```
## Increase Rollout Percentage
```bash
# 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
```
## Halt Rollout
Pause distribution if issues are detected:
```bash
gplay rollout halt \
--package com.example.app \
--track production
```
**Effect:**
- Stops further distribution
- Existing users keep the update
- New users don't receive the update
## Resume Rollout
Resume after fixing issues:
```bash
gplay rollout resume \
--package com.example.app \
--track production
```
## Complete Rollout
Release to 100% of users:
```bash
gplay rollout complete \
--package com.example.app \
--track production
```
## Check Rollout Status
```bash
gplay tracks get \
--package com.example.app \
--track production \
| jq '.releases[0].userFraction'
```
## Recommended Rollout Strategy
### Conservative (7-day rollout)
```bash
# 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
```
### Aggressive (3-day rollout)
```bash
# 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
```
### Cautious (for critical apps)
```bash
# 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
```
## Monitoring During Rollout
### Check crash rate
Use Play Console → Quality → Android vitals
### Monitor reviews
```bash
# Get recent reviews
gplay reviews list \
--package com.example.app \
--paginate \
| jq '.reviews[] | select(.createdTime > "2025-02-05") | {rating, text: .comments[0].userComment.text}'
```
### Filter 1-star reviews
```bash
gplay reviews list \
--package com.example.app \
| jq '.reviews[] | select(.rating == 1) | .comments[0].userComment.text'
```
## Decision Matrix
| Metric | Action |
|--------|--------|
| Crash rate < 1% | Continue rollout |
| Crash rate 1-2% | Halt, investigate |
| Crash rate > 2% | Halt, rollback if possible |
| 1-star reviews spike | Halt, investigate |
| ANR rate spike | Halt, investigate |
| No issues after 24h | Increase rollout |
## Rollback Strategy
Google Play doesn't support automatic rollback, but you can:
### Option 1: Upload hotfix
```bash
# 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
```
### Option 2: Promote previous version
This requires the previous version still be in beta track:
```bash
gplay promote \
--package com.example.app \
--from beta \
--to production
```
## Best Practices
1. **Always start with <20%** - Catch issues early
2. **Monitor for 24 hours** between increases
3. **Have a hotfix plan** - Be ready to fix critical bugs quickly
4. **Set up alerts** - Monitor crash rates automatically
5. **Test thoroughly in beta** - Reduce production issues
6. **Communicate with users** - Update release notes
7. **Don't rush** - Gradual rollout is for safety
## Common Mistakes to Avoid
❌ **Don't:**
- Jump from 10% to 100% immediately
- Ignore crash rate increases
- Roll out during weekends/holidays (slower monitoring)
- Skip beta testing phase
✅ **Do:**
- Monitor crash rates constantly
- Have team available during rollout
- Prepare hotfix in advance
- Communicate expected timeline to stakeholders
## Automation Example
### CI/CD with automated rollout
```yaml
# .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
```
## Support
For manual rollout control, always use the Google Play Console UI as a backup.More Observability skills
google-agents-cli-observability
google/agents-cli
>
azure-observability
microsoft/azure-skills
Azure Observability Services including Azure Monitor, Application Insights, Log Analytics, Alerts, and Workbooks. Provides metrics, APM, distributed tracing, KQL queries, and interactive reports. USE FOR: Azure Monitor, Application Insights, Log Analytics, Alerts, Workbooks, metrics, APM, distributed tracing, KQL queries, interactive reports, observability, monitoring dashboards. DO NOT USE FOR: instrumenting apps with App Insights SDK (use appinsights-instrumentation), querying Kusto/ADX clusters (use azure-kusto), cost analysis (use azure-cost-optimization).
workers-best-practices
cloudflare/skills
Reviews and authors Cloudflare Workers code against production best practices. Load when writing new Workers, reviewing Worker code, configuring wrangler.jsonc, or checking for common Workers anti-patterns (streaming, floating promises, global state, secrets, bindings, observability). Biases towards retrieval from Cloudflare docs over pre-trained knowledge.

