Google Play Console: listing and Android reviews
Connecting Play Console gives Appwin the Android side of ASO: store listing, reviews, ratings and history.
It is the counterpart of App Store Connect. The two are set independently: you can connect only one, and ASO then shows the single connected platform.
Access goes through a Google Cloud service account that you then invite into Play Console. Two consoles, then, and that is the source of just about every configuration error: the key is created on one side, the rights are granted on the other.
1. Link your Google Cloud project
Play Console → Settings → API access.
If no Google Cloud project is linked, link it now. Without that link, the service account created in the next step can never be invited.
2. Create the service account
In the Google Cloud console:
- IAM & Admin → Service accounts → Create service account
- Name it ("appwin"), confirm
- On the created account: Keys → Add key → Create new key
- Format JSON → the file downloads
The JSON contains a private key. It cannot be downloaded again: if you lose it, you create a new one and delete the old one.
The file looks like:
{
"type": "service_account",
"project_id": "my-project-1a2b3",
"private_key_id": "…",
"private_key": "-----BEGIN PRIVATE KEY-----\n…\n-----END PRIVATE KEY-----\n",
"client_email": "appwin@my-project-1a2b3.iam.gserviceaccount.com",
"…": "…"
}
The two fields Appwin requires are client_email and private_key. A truncated
or hand-copied JSON is rejected on save, with the missing field named.
3. Grant access to your app
Back in Play Console → Users and permissions → Invite user, with the service
account's client_email address.
Restrict access to your app, with at least:
| Permission | Why |
|---|---|
| View app information | Store listing, ratings, statistics |
| Reply to reviews | Reading reviews, and replying from Appwin |
Stay with those two. A service account with publishing rights can push a release: that is not what we are asking of it.
Play Console permissions sometimes take several minutes to propagate. A 403 right after the invitation does not mean the configuration is wrong - try again a quarter of an hour later.
4. Collect the package name
com.yourstudio.yourapp: it is the applicationId from your build.gradle.
You find it in Play Console under the app name, or in your Play listing URL:
play.google.com/store/apps/details?id=com.yourstudio.yourapp.
5. Enter them in Appwin
Settings → Projects → your app → Integrations → Google Play Console.
| Field | Value |
|---|---|
| Package Name | com.yourstudio.yourapp |
| Service Account JSON | The entire contents of the file |
The Import a file button reads the downloaded JSON and fills the field: more reliable than a copy and paste, which tends to leave one line break too many.
What it unlocks
| Data | Where it appears |
|---|---|
| Android store listing (title, description, assets) | ASO → Store listing |
| Google Play reviews | ASO → Reviews and ratings |
| Rating history | ASO → Reviews and ratings |
| Android listing audit | ASO → Performance |
Android downloads and revenue do not go through here: on the revenue side, RevenueCat is the source of truth, across all platforms.
Troubleshooting
| Symptom | Likely cause |
|---|---|
| "Google Play incomplete" | Missing package name or JSON - both are required |
| "Service Account JSON unreadable" | File truncated on copy and paste: use the import |
| "Service Account JSON invalid" | client_email or private_key missing from the file |
| 403 right after the invitation | Rights not propagated yet on the Play Console side |
| Persistent 403 | The service account has no access to this app |
| Empty reviews | The app has no reviews yet on the markets queried |
| Decryption error | Database restored from another environment: enter the key again |
Next
- App Store Connect - the iOS side
- ASO - what the product does with this data