Google Play Console exports owner reports to a private Google Cloud Storage bucket. These reports are the source for many dashboard metrics, including installs, ratings, crashes, store listing conversion, search terms, sales, and earnings.
The reports bucket is account-level. It is not a normal customer-created GCS bucket and it is not stored inside the customer’s Google Cloud project.
Reports Bucket
Common report paths look like this:
gs://pubsite_prod_8701287375724464057/stats/installs/
gs://pubsite_prod_8701287375724464057/stats/crashes/
gs://pubsite_prod_8701287375724464057/stats/ratings/
gs://pubsite_prod_8701287375724464057/stats/store_performance/
When saving credentials, pass only the bucket root:
pubsite_prod_8701287375724464057
If a customer pastes a full gs://.../stats/... path, Appeeky normalizes it to the bucket root automatically.
Required Permission
For report exports, the service account needs account-level/global access in Play Console:
View app information and download bulk reports
For financial reports, it also needs:
Google documents this requirement in Download and export monthly reports.
Supported Prefixes
The analytics importer currently supports these report families:
| Prefix | Used for |
|---|
stats/installs/ | Device acquisitions, installs, first opens, MAU, install base |
stats/crashes/ | Crash and ANR counts/rates from CSV exports |
stats/ratings/ | Ratings count and average rating |
stats/store_performance/ | Store listing visitors, acquisitions, conversion, sources, search terms |
Other report families can still be listed and downloaded through the report endpoints when the service account has access.
List Objects
curl "https://api.appeeky.com/v1/connect/google-play/reports/objects?prefix=stats/store_performance/" \
-H "X-API-Key: YOUR_APPEEKY_KEY"
Optional query parameters:
| Name | Description |
|---|
prefix | GCS object prefix, such as stats/installs/ |
bucket | Override the saved reportsBucket for this request |
limit | Max objects to return |
curl "https://api.appeeky.com/v1/connect/google-play/reports/object?objectName=stats/store_performance/store_performance_com.example.app_202601_country.csv" \
-H "X-API-Key: YOUR_APPEEKY_KEY"
Use this when you need metadata for one report object before downloading or importing it.
Download a Report
curl -o report.csv "https://api.appeeky.com/v1/connect/google-play/reports/download?objectName=stats/installs/installs_com.example.app_202601_overview.csv" \
-H "X-API-Key: YOUR_APPEEKY_KEY"
Google report files may be CSV, ZIP, or gzip-compressed CSV depending on the report family. The analytics importer handles the supported stats CSV formats automatically.
Import One Report
curl -X POST "https://api.appeeky.com/v1/connect/google-play/analytics/import-report" \
-H "X-API-Key: YOUR_APPEEKY_KEY" \
-H "Content-Type: application/json" \
-d '{
"objectName": "stats/store_performance/store_performance_com.example.app_202601_traffic_source.csv"
}'
Use this for manual testing or targeted backfills. For normal analytics sync, use the bulk import endpoint in Analytics.
storage.objects.list denied
This error means the service account can authenticate, but Google Cloud Storage will not allow it to list the Play Console reports bucket.
Most common causes:
- The service account was not invited in Play Console.
- The service account has app-scoped permissions but not global bulk report permission.
- The wrong service account email was invited.
- The reports bucket belongs to a different Play Console developer account.
- Permission propagation has not completed yet.
Fix:
- Open Play Console > Users and permissions.
- Select the service account user.
- Grant global
View app information and download bulk reports.
- Save changes.
- Retry
GET /reports/objects?prefix=stats/installs/.
If financial reports are needed, also grant global View financial data.