skills/gplay-reports-download/SKILL.md
Financial and statistics report listing and downloading from Google Play Console via GCS. Use when asked to view, list, or download financial earnings, sales, payouts, or app statistics (installs, ratings, crashes).
npx skillsauth add tamtom/gplay-cli-skills gplay-reports-downloadInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when you need to list or download financial reports (earnings, sales, payouts) or statistics reports (installs, ratings, crashes, store performance, subscriptions) from Google Play Console.
Google Play Console reports are not available via the REST API. They are stored as CSV/ZIP files in Google Cloud Storage (GCS) buckets:
pubsite_prod_rev_<id> or pubsite_prod_<id>. Always copy the exact URI from Play Console.earnings/, sales/, payouts/, play_balance_krw/, wht_statements/ prefixesstats/installs/, stats/ratings/, stats/crashes/, stats/store_performance/, financial-stats/subscriptions/ prefixesThe service account must have access to the GCS bucket (this access is granted automatically when the service account is added to Play Console with appropriate permissions).
gplay auth loginVIEW_FINANCIAL_DATA permission (service account must be added to Play Console with "View financial data" access)VIEW_APP_INFORMATION permission (service account must be added to Play Console with "View app information" access)Important: The bucket ID for reports is not the numeric ID in your Play Console URL. The URL ID and the GCS bucket ID are different.
To find the correct bucket ID:
gs://pubsite_prod_rev_12110000881713004121/
12110000881713004121Alternatively, use the Google Cloud Console to find the bucket name associated with your Play Console account.
Common mistake: Using the developer ID from the Play Console URL (https://play.google.com/console/developers/<this_id>/...) will result in a 404 Not Found error because the GCS bucket uses a different internal ID.
# List all financial reports
gplay reports financial list --bucket-id <id>
# You can also pass the full GCS URI
gplay reports financial list --bucket-id "gs://pubsite_prod_rev_12345/"
# Filter by type
gplay reports financial list --bucket-id <id> --type earnings
gplay reports financial list --bucket-id <id> --type sales
gplay reports financial list --bucket-id <id> --type payouts
# Filter by date range
gplay reports financial list --bucket-id <id> --from 2026-01 --to 2026-06
# Combine filters
gplay reports financial list --bucket-id <id> --type earnings --from 2026-01 --to 2026-03
# Download earnings for a specific month
gplay reports financial download --bucket-id <id> --from 2026-01 --type earnings
# Download to a specific directory
gplay reports financial download --bucket-id <id> --from 2026-01 --type earnings --dir ./reports
# Download a range of months
gplay reports financial download --bucket-id <id> --from 2026-01 --to 2026-06 --type sales
| Type | Description | Filename pattern |
|------|-------------|-----------------|
| earnings | Revenue and earnings data | earnings/earnings_YYYYMM_<id>.zip |
| sales | Sales transaction reports | sales/salesreport_YYYYMM.zip |
| payouts | Payment disbursement reports | payouts/payout_YYYYMM.csv |
| play_balance | Play balance reports (KRW) | play_balance_krw/... |
| wht_statements | Withholding tax statements | wht_statements/... |
# List all stats reports
gplay reports stats list --bucket-id <id>
# Filter by package name
gplay reports stats list --bucket-id <id> --package com.example.app
# Filter by type
gplay reports stats list --bucket-id <id> --type installs
# Filter by date range and package
gplay reports stats list --bucket-id <id> --package com.example.app --type installs --from 2026-01 --to 2026-06
# Download installs report
gplay reports stats download --bucket-id <id> --package com.example.app --from 2026-01 --type installs
# Download to a specific directory
gplay reports stats download --bucket-id <id> --package com.example.app --from 2026-01 --type crashes --dir ./reports
# Download a range of months
gplay reports stats download --bucket-id <id> --package com.example.app --from 2026-01 --to 2026-06 --type ratings
| Type | Description | Filename pattern |
|------|-------------|-----------------|
| installs | Install/uninstall data | stats/installs/installs_<pkg>_YYYYMM_overview.csv |
| ratings | Rating distribution | stats/ratings/ratings_<pkg>_YYYYMM_overview.csv |
| crashes | Crash occurrence data | stats/crashes/crashes_<pkg>_YYYYMM_overview.csv |
| store_performance | Store listing performance | stats/store_performance/... |
| subscriptions | Subscription metrics | financial-stats/subscriptions/... |
| Flag | Required | Description |
|------|----------|-------------|
| --bucket-id | Yes | GCS bucket ID or full URI |
| --type | No (list: default all) / Yes (download) | Report type: earnings, sales, payouts, play_balance, wht_statements, all |
| --from | No (list) / Yes (download) | Start month YYYY-MM |
| --to | No | End month YYYY-MM (defaults to --from) |
| --dir | No | Output directory (default .) |
| --output | No | Output format: json, table, markdown |
| --pretty | No | Pretty-print JSON output |
| Flag | Required | Description |
|------|----------|-------------|
| --bucket-id | Yes | GCS bucket ID or full URI |
| --package | No (list) / Yes (download) | Package name filter |
| --type | No (list: default all) / Yes (download) | Stats type: installs, ratings, crashes, store_performance, subscriptions, all |
| --from | No (list) / Yes (download) | Start month YYYY-MM |
| --to | No | End month YYYY-MM (defaults to --from) |
| --dir | No | Output directory (default .) |
| --output | No | Output format: json, table, markdown |
| --pretty | No | Pretty-print JSON output |
{
"bucket": "pubsite_prod_rev_12345",
"reports": [
{"name": "earnings/earnings_202601_12345.zip", "size": 1234, "updated": "2026-02-01T00:00:00Z"}
]
}
{
"bucket": "pubsite_prod_rev_12345",
"type": "earnings",
"from": "2026-01",
"to": "2026-01",
"dir": "./reports",
"files": [
{"name": "earnings/earnings_202601_12345.zip", "path": "reports/earnings_202601_12345.zip", "size": 1234}
]
}
# List last month's earnings
gplay reports financial list --bucket-id <id> --type earnings --from 2026-01 --output table
# Download all financial reports for Q1
gplay reports financial download --bucket-id <id> --from 2026-01 --to 2026-03 --type earnings --dir ./q1-reports
# Check install trends
gplay reports stats list --bucket-id <id> --package com.example.app --type installs --from 2026-01
# Download crash data for analysis
gplay reports stats download --bucket-id <id> --package com.example.app --from 2026-01 --type crashes --dir ./crash-data
# Download all report types for archival
for type in earnings sales payouts; do
gplay reports financial download --bucket-id $BUCKET_ID --from $(date -d "last month" +%Y-%m) --type $type --dir ./monthly-reports
done
| Error | Cause | Fix |
|-------|-------|-----|
| authentication failed | Service account not configured | Run gplay auth login --service-account <path> |
| 403 Forbidden | No GCS bucket access | Ensure service account is invited in Play Console with appropriate permissions |
| 404 Not Found | Wrong bucket ID or no reports | Use the bucket ID from Play Console > Download reports > Copy Cloud Storage URI (not the developer ID from the URL) |
| Empty reports list | No reports for the date range | Check --from/--to range; reports may not exist for all months |
development
App vitals monitoring for crashes, ANRs, performance metrics, and errors via gplay vitals commands. Use when asked to check app stability, crash rates, ANR rates, or performance data from Google Play Console.
development
User and grant management for Google Play Console via gplay users and gplay grants commands. Use when asked to manage developer account users, permissions, or app-level access grants.
development
Beta testing groups and tester management for Google Play closed testing tracks. Use when managing testers and beta groups.
tools
Bulk-localize subscription display names, descriptions, and offer tags across all Google Play locales using gplay. Use when you want to fill in subscription metadata for every language without clicking through Play Console manually.