The Play Console and your first listing
Mandi Bhav now builds a shrunk, signed app bundle. Nobody can install it yet. Between that file and Kavita's phone sits the Google Play Console: a developer account, an app record, a store listing, a set of questions about what the app contains and who it is for, and the reports that come back once real phones run it. This lesson walks through the console with Mandi Bhav's own answers, so that when you open it for the first time you already know what each page is asking and why.
One thing to say plainly first. This course does not create a Play Console account, and you do not need one to finish it. An account costs money and verifies your identity, and Google changes the console's pages more often than a course can follow. Everything below about the console comes from Google's Play Console Help pages as they read in November 2026, linked at the end. The page and menu names in bold are as those pages give them; if your console looks different, the Help page is the one to trust.
The developer account
Before any app, you need a developer account, from the Play Console sign-up page with a Google account:
| What Google's Help pages say | |
|---|---|
| Who | You must be at least 18 |
| Fee | US$25, once; prepaid cards are not accepted |
| Identity | Verified, with a government ID and a card in your legal name; the fee is not refunded if verification fails |
| Account type | Personal (a hobby, study, an individual) or Organization (a business, which needs a D-U-N-S number, free from Dun & Bradstreet) |
| Must be an organization | Financial services, health apps, VPN apps, government apps |
| Personal accounts only | Verify an Android device with the Play Console mobile app, and pass the testing requirement before publishing to production (lesson 4) |
Mandi Bhav, as a course project, would be a personal account. If RizTech Academy published it as a company, it would be an organization account, and the D-U-N-S number would come first, because it takes days.
Creating the app
Create app asks for:
- The app name, as shown on Play. It can change later.
- The package name. The Help page is blunt: package names are "unique and permanent". For Mandi Bhav that is
com.riztechacademy.mandibhav, theapplicationIdinapp/build.gradle.kts. Once a bundle with it is uploaded, that is the app's identity on Play for ever: you cannot rename it, and you cannot reuse it for another app even after deleting this one. Get it right in module 1, not here. - Default language, app or game, free or paid, a contact email that users will see, and the declarations: the Developer Program Policies, US export laws, and the Play App Signing terms (lesson 2).
Then the app's Dashboard lists what is left to do before a release: tell Google about the app's content, fill in the store listing, and set up testing. Most of the content questions live under Policy > App content. Lesson 5 covers the two that need the most thought, the privacy policy and the Data safety form; the others are below.
The store listing
What a farmer sees before installing. The limits, from the Help pages:
| Item | Requirement |
|---|---|
| App name | 30 characters at most |
| Short description | 80 characters at most |
| Full description | 4,000 characters at most |
| App icon | 512 × 512 px, 32-bit PNG with alpha, 1,024 KB at most |
| Feature graphic | 1,024 × 500 px, JPEG or 24-bit PNG without alpha |
| Phone screenshots | At least 2 across device types, up to 8 per type; JPEG or 24-bit PNG; each side 320 to 3,840 px; the long side no more than twice the short side |
| To be featured | At least 4 screenshots of at least 1,080 px; 9:16 portrait or 16:9 landscape works best |
A short description for Mandi Bhav, at 78 characters:
Today's mandi prices for onion, tomato and more, by market. Works offline too.
The trap: your emulator's screenshots
The screenshot rules look like small print. Check one from the course emulator against them:
adb exec-out screencap -p > prices.png
file prices.png
prices.png: PNG image data, 1080 x 2400, 8-bit/color RGBA, non-interlaced
It fails twice. 2,400 divided by 1,080 is 2.22, more than twice the short side; most phones sold now have a 20:9 screen, so a straight screenshot from one breaks that rule. And RGBA means the PNG has an alpha channel, where the listing wants a 24-bit PNG without one, or a JPEG. Crop to 1,080 × 1,920 (9:16) and save without alpha, or save as JPEG, before you upload.
Content rating
Every app needs a content rating from the International Age Rating Coalition (IARC); the Help page says apps without one "will be removed from the Play Store". Under Policy > App content, you give an email address for IARC to write to, choose a category for the app, and answer a questionnaire about its content. IARC turns the answers into a rating for each country's rating authority, shown on a Summary page before you Submit. Mandi Bhav has nothing to declare: prices, drawings of vegetables, and a location that never leaves the phone.
The questionnaire is not a one-off. If you change the app in a way that changes an answer, say a chat between traders, you must submit a new one. A content rating that no longer matches the app is a policy problem, not a paperwork one.
Target audience and content
Under Policy > App content, Target audience and content asks which age groups the app is for: 5 and under, 6–8, 9–12, 13–15, 16–17, 18 and over. Choose any group under 13 and the app falls under Google's Families policy, with its own rules on ads and data. Mandi Bhav is for farmers and traders: 18 and over.
What catches people out is the next part. Google may still treat an app as appealing to children because of its listing: cartoon characters, a childish style. Mandi Bhav's commodity pictures are drawn onions and tomatoes; on a listing they should look like produce, not a children's game.
The same App content page holds smaller declarations, each a short form: whether the app has ads (no), whether parts of it need a login for a reviewer to reach (no, there is no account), and declarations for kinds of app with rules of their own, such as health and financial apps, none of which apply.
The target API level requirement
Google Play requires every new app and every update to target a recent Android version. From Google's page on the requirement, as it reads in November 2026:
| From 31 August 2026 | Requirement |
|---|---|
| New apps and app updates (phones) | Must target Android 16, API level 36, or higher |
| Existing apps not updated | Must target API 35 or higher to stay available to new users on newer Android versions |
| Extension | Could be requested to 1 November 2026, which has passed |
Mandi Bhav's targetSdk = 36 meets it. The requirement has moved up by one Android version each year, around August, so put a date in your calendar to read that page every summer. Raising targetSdk is not a one-line change: each version changes behaviour for apps that target it, which is why module 11 noted what changes when Mandi Bhav moves to 37.
The pre-launch report
When you upload a bundle to a testing track, Play installs it on test devices in Google's lab, crawls it, and writes a Pre-launch report under Test and release > Testing > Pre-launch report. The Help page says:
- results usually arrive within an hour of the upload;
- the devices run Android 9 or later, and are in the United States;
- it reports stability (crashes), Android compatibility, performance and accessibility issues, with screenshots of what the crawler saw;
- you can add up to three deep links for it to open, and give it a test account if your app has a sign-in screen.
For Mandi Bhav, give it the deep links from module 11, so the crawler reaches screens it would not find by tapping at random:
mandibhav://price?market=Lasalgaon%20APMC&commodity=Onion
mandibhav://alerts
What it is not: a substitute for your own testing. A crawler taps what it finds for a few minutes. It will not save an alert, wait for 7 pm, or take a photo of a sale slip. It is a free second look on devices you do not own, and it is the first place a crash in the minified build would show up if lesson 1's walk-through had missed one.
Android vitals: where module 13's crashes land
Module 9 promised that ANRs reach Android vitals, and module 13 showed you how to read a crash and an ANR from the field. Here is where they appear once Mandi Bhav is on Play: Monitor and improve > Android vitals. Its Overview shows the core vitals against the bad-behaviour thresholds module 13 listed (1.09% of daily users for crashes, 0.47% for ANRs, 8% on any one phone model), and Crashes and ANRs groups reports into clusters, each with its stack traces, the app versions, Android versions and phone models it hit.
Three things from lesson 1 and module 13 decide whether those traces are readable:
- The mapping file. An app bundle carries it inside, at
BUNDLE-METADATA/com.android.tools.build.obfuscation/proguard.map(lesson 1 showed it in Mandi Bhav's bundle), and Play takes it from there, so vitals shows your class names. An APK upload does not; you upload the mapping in Test and release > App bundle explorer, on the Downloads tab. The Help page warns that only crashes reported after the mapping is uploaded are deobfuscated. - Who reports. Only users who agreed to share usage and diagnostics data, only installs from Google Play (a testing track counts; your sideloaded APK does not), and the data is updated daily.
- What it filters by. App version, Android version, form factor, phone model and country. The filter you will use most is app version: "did 1.1 fix the crash 1.0 had?"
The console, page by page
| Console page | What it is for | Mandi Bhav's answer |
|---|---|---|
| Create app | Name, package name, language, free or paid | com.riztechacademy.mandibhav, free, English |
| Store listing | Name, descriptions, icon, graphics, screenshots | Screenshots cropped to 9:16 |
| Content rating | IARC questionnaire | No objectionable content |
| Target audience and content | Age groups; Families policy if under 13 | 18 and over |
| Privacy policy, Data safety | What data the app collects and shares | Lesson 5 |
| Testing tracks, releases | Who gets which build | Lesson 4 |
| Pre-launch report | Automatic crawl of each upload | Two deep links |
| Android vitals | Crashes, ANRs, start-up, battery from the field | Readable because the bundle carries the mapping |
Check your work
Why is the package name the one field to get right before anything else? The Help page calls it unique and permanent: it cannot be changed after upload or reused, even after the app is deleted.
Would a straight screenshot from the course emulator pass the listing rules? No, for two reasons: it is 1,080 × 2,400, and 2,400 is more than twice 1,080; and it is an RGBA PNG, with the alpha channel the listing does not accept. Crop it to 9:16 and save it without alpha.
What target API level must an update to Mandi Bhav target in November 2026, and does it? API 36 or higher; it targets 36.
You change Mandi Bhav to let traders message each other. Which console answers must change? The content rating questionnaire, submitted again because the app's content has changed, and the Data safety form (lesson 5), because messages leave the phone.
Why would vitals show readable class names for a bundle upload but not an APK upload? The bundle contains the mapping file and Play reads it; for an APK you upload the mapping yourself, and crashes reported before that stay obfuscated.
Practice
- Write Mandi Bhav's store listing: a name within 30 characters, a short description within 80, and a full description of about 150 words that says who it is for and what it does offline. Count the characters with a script, not by eye.
- Take four screenshots of Mandi Bhav on the emulator, and crop them to 1,080 × 1,920 with any image tool, saving without transparency. Check each with
file: it should report the new size andRGB, notRGBA. - Answer the content rating and target audience questions for Mandi Bhav on paper, with one sentence of reason for each answer.
- Open Google's target API level page and write down this year's requirement and the date. Then find in the Android 16 behaviour changes one change that applies to apps targeting 36, and decide whether it affects Mandi Bhav.
- Harder: plan a pre-launch report for Mandi Bhav. Which three deep links would you give it, and what would you expect to see in its screenshots for each? Which of the app's features can it not reach at all, and how will you test those instead?
Official documentation
- Create and set up your app — Creating the app record, and the dashboard's setup tasks.
- Add preview assets to showcase your app — Every size and format rule for icons, graphics, screenshots and video.
- Meet Google Play's target API level requirement — This year's requirement, its dates and the behaviour changes to check.
- Use a pre-launch report to identify issues — What the crawl tests, deep links, test accounts and Robo scripts.
- Monitor your app's technical quality with Android vitals — The vitals pages, thresholds, filters and how the data is collected.
Next: internal, closed and open testing tracks, and getting past the 12-tester requirement.
Stuck on this lesson?
Being stuck is part of it — but being stuck alone for three days is not. Selected students who finish a course can join our internship, with real-world projects and code review from a working engineer.
About the internship