Publish to Google Play
Everything you need before an Android app can ship: creating a Google Play Console developer account (with verification and the new-account testing rule), a Google Cloud service account, and linking them — explained click by click.
Shipping an Android app has the same unavoidable prerequisite as iOS: a Google Play developer account that belongs to you, plus one machine credential that lets tooling act on your behalf. The Google side costs less ($25, once) but has two quirks Apple doesn't: the automation credential lives in a separate product (Google Cloud), and new personal accounts face a mandatory testing period before production. This guide walks through all of it.
By the end you will have the one artifact automated publishing needs: a service-account JSON key linked to your Play Console with release permissions.
Before you start: personal or organization?
- Personal account — fastest to create, shows your name as developer. ⚠️ Accounts created since November 2023 must run a closed test with at least 20 testers, continuously, for 14 days before they can apply for production access. Plan for this: it makes your first public release a multi-week story no matter how good the tooling is. (Internal and closed testing distribution works immediately.)
- Organization account — shows the company name, supports team members, and is exempt from the 20-tester requirement. Requires a D-U-N-S number for company verification (free; 1–2 weeks if you don't have one — the same number works for Apple enrollment, so get it once for both).
Step 1 — a Google account for the business
- Use (or create at accounts.google.com) a Google account the team controls — e.g.
play@yourcompany.com— rather than a personal Gmail. - Enable 2-Step Verification at myaccount.google.com → Security. You'll be handling release credentials with this account.
Step 2 — register the Play Console developer account
- Go to play.google.com/console/signup and sign in.
- Choose Yourself (personal) or An organization.
- Fill in the developer profile: developer name (what the store shows), legal name and address, contact email and phone. For organizations: the legal entity details and D-U-N-S number.
- Pay the one-time $25 registration fee.
- Complete identity verification — Google asks for an official ID document (personal) or organization documents; verification typically takes a few days. You'll get an email when the account is active.
- Organizations may also need to verify the website domain and a company email address on it.
Step 3 — create the service account (in Google Cloud)
The Play Console's automation API is a Google Cloud API, so the machine credential is created in Google Cloud and then invited into your Play Console. The Cloud project is free — it exists only to hold this credential.
- Go to console.cloud.google.com and sign in with the same Google account that owns the Play Console.
- Create a project: the project picker (top bar) → New Project → name it e.g.
play-publishing→ Create. Select it. - Enable the API: APIs & Services → Library, search "Google Play Android Developer API", open it, click Enable.
- Create the service account: IAM & Admin → Service Accounts → + Create Service Account.
- Name: e.g.
play-publisher. The generated email will look likeplay-publisher@play-publishing.iam.gserviceaccount.com— copy this email, you need it in Step 4. - Skip the optional "grant access" steps (permissions are granted in Play Console, not here) → Done.
- Name: e.g.
- Create the key: open the service account → Keys tab → Add Key → Create new key → JSON → Create. A
.jsonfile downloads — this is the credential. Like Apple's.p8: vault it, never commit it, never email it. (Unlike Apple's, you can mint another if lost — revoke the old one when you do.)
Step 4 — link the service account to the Play Console
- Back in play.google.com/console: Users and permissions → Invite new users.
- Paste the service account email from Step 3.4.
- Grant permissions. Simplest correct setup: Account permissions with Admin (all permissions) for a trusted internal pipeline, or the narrower set — View app information, Manage production releases, Manage testing track releases — if you prefer least privilege.
- Invite user / Send invitation. Service accounts accept instantly; the row appears in the users list.
Step 5 — two clicks the API can never do
Google's API deliberately cannot bootstrap an app from zero. Once per app, in the Play Console:
- Create the app: Play Console home → Create app → app name, default language, App or Game, Free or Paid, declarations → Create app. (The name can be changed later; the package name — Android's bundle ID, e.g.
com.yourcompany.yourapp— is fixed by the first uploaded build.) - Upload the first build manually: the very first
.aabmust go up through the Console UI — Testing → Internal testing → Create new release, drag the.aabin, accept Play App Signing (Google holds the release key; recommended and the default), Save → Start rollout to Internal testing. Every build after this one can be uploaded by tooling.
Step 6 — what remains human, later
- Store listing: title, descriptions, screenshots, feature graphic.
- Content rating questionnaire and the Data safety form (what data the app collects).
- A privacy policy URL — a page on your existing site is fine.
- For new personal accounts: recruiting the 20 closed-test testers for 14 days, then applying for production access in the Console.
- Google's review on production releases (usually hours to a couple of days).
Internal testing — up to 100 testers via email list or link — works immediately for every account type with no review.
The checklist
| # | Item | Where | Cost / time |
|---|---|---|---|
| 1 | Google account + 2-Step Verification | accounts.google.com | free, minutes |
| 2 | Play Console account + verification | play.google.com/console/signup | $25 once; days (org: + D-U-N-S 1–2 weeks) |
| 3 | Cloud project + enabled Play API | console.cloud.google.com | free, minutes |
| 4 | Service account + JSON key | IAM & Admin → Service Accounts | free, minutes |
| 5 | Invite service account in Play Console | Users and permissions | minutes |
| 6 | Create app + first manual .aab upload |
Play Console | once per app |
After line 6, everything — building, signing, uploading, promoting from internal to closed to production — can be driven by tooling holding that one JSON key. Pair this with the Apple guide and both stores are ready for automated releases.
Frequently asked questions
How much does Google Play publishing cost?
A one-time $25 registration fee for the Play Console developer account. There are no annual or per-app fees.
How long does Play Console verification take?
Identity verification usually completes within a few days. Organizations also need a D-U-N-S number, which can add one to two weeks if the company doesn't have one yet.
What is the 20-tester requirement?
Personal (individual) Play developer accounts created since late 2023 must run a closed test with at least 20 testers continuously for 14 days before Google allows a production release. Organization accounts are exempt. Internal testing and closed testing work immediately for everyone.
What credentials does automated publishing actually need?
One artifact: a Google Cloud service-account JSON key that has been invited to your Play Console with release permissions. Everything else — building, signing, uploading, promoting between tracks — can be driven through it.
Why does Google Play need a Google Cloud account too?
The Play Console's automation API is a Google Cloud API, and machine credentials (service accounts) live in Google Cloud. You create a free Cloud project just to hold that service account — there is nothing to deploy or pay for there.