Skip to content
Back to Academia

ASO: how to set up your app page in the App Store and Google Play

07.08SEO and organic traffic
On this page

In October the marketer at a grocery delivery service in Almaty and Astana inherits the app's pages in the App Store and Google Play. The developer filled them in on launch day: the name is one word, the brand; the subtitle reads "Fast, easy, great value"; the keyword field includes, among other things, a competitor's name; and the first screenshot is the phone number login screen. On top of that, the product manager wants to give 1,000 ₸ off the next order for every five-star review. Let's go through what to fix, in order: queries, fields, screenshots and ratings. The service's numbers are made up; the limits and rules come from the stores' help pages.

A different app, the same principle: on the left the store page promises today's to-do list; on the right, after installing, the same list opens with an Add task button.
A different app, the same principle: on the left the store page promises today's to-do list; on the right, after installing, the same list opens with an Add task button.

How the stores decide whom to show

According to Apple, App Store results depend on two things. The first is how the query matches the text: the name, subtitle, keyword field and primary category. The second is user behaviour: downloads, ratings, reviews and more (App Store search). Google Play names ratings, reviews, download counts and other factors (how users find your app).

Everything else you'll read about the weight of the description or "your position for a query" comes from ASO tools: AppTweak, Sensor Tower, ASOMobile and others. They track positions themselves and model search volume and competitors' downloads with their own methods. These are estimates, and two tools can give different figures for the same query.

That sets the boundary of the job. You control the text in the fields, the images, and how the app asks for a rating. Downloads also depend on ads and on how well known the brand is, and a page alone won't inflate them.

Where to get queries

The delivery service has four sources of queries.

Play Console. The store listing report has a Search term dimension (store listing report). Google counts searches for the app's name under Google Play search, and searches for a category such as доставка продуктов ("grocery delivery") under Google Play explore. Queries that brought few people go into an Other row. The category queries from September's report split like this (продукты на дом means "groceries to your door", супермаркет "supermarket"):

QueryStore listing visitors
доставка продуктов180
продукты на дом90
супермаркет60
доставка продуктов астана40
Other30

Apple Ads (Apple Search Ads until 2025). The service buys ads in App Store search, and the Search Terms tab shows the queries for which the ad got impressions, taps and installs (Apple Ads dashboards). The keyword recommendations there also show search popularity on a scale of 1 to 5 (Apple Ads recommendations).

Customers' words. Support chat, WhatsApp, store reviews. People write "vegetables", "milk", "courier", "dry goods", and those words are worth checking against the first two sources. Lists of such words are collected and sorted by task the same way as a website's keyword list.

ASO tools. Handy for seeing what words competitors use to describe themselves. Their names stay out of your fields, though: Apple forbids other apps' names and trademarks in keywords (product page).

Cross out everything the app doesn't do. The service delivers groceries, not ready meals, so "food delivery" stays out of its fields even if the query is popular: someone who wanted plov from a restaurant will install the app and delete it.

App Store fields

The text that counts for search sits in three fields:

  • Name, up to 30 characters (app information).
  • Subtitle, up to 30 characters, shown under the name throughout the App Store.
  • Keywords are invisible to the shopper. Separate them with commas and no spaces; spaces inside a phrase are fine. Words from the name and subtitle aren't repeated: search already finds the app by its name and company name. Category names, the word "app" and plurals of words already there in the singular are also wasted space (App Store search, version properties).

Two more fields have no effect on search. Promotional text of up to 170 characters sits above the description and can be changed at any time without a new version, so that's where the current promotion goes. The description of up to 4,000 characters is written for people, with the most important sentence first: it's the only one visible without tapping "more" (product page).

FieldBeforeAfterCharacters
NameБрендБренд: доставка продуктов25
SubtitleБыстро, удобно, выгодноСупермаркет в Алматы и Астане29
Promotional textemptycurrent promotionup to 170

Бренд stands for the service's name, so the new name reads "Brand: grocery delivery". The new subtitle ("Supermarket in Almaty and Astana") now answers the first question of someone from another city, and that's no whim: in September 1,600 people who installed the app got as far as entering an address and learned there was no delivery to them (in-app events). Most of them, 1,200, came from TikTok, which then had broad geo targeting. That gets fixed in the ad account, but the page should also name the cities plainly.

The keyword field after the rewrite:

овощи,фрукты,мясо,молоко,хлеб,курьер,магазин,заказ,бакалея,корзина,гипермаркет,астана

(Vegetables, fruit, meat, milk, bread, courier, shop, order, dry goods, basket, hypermarket, astana.) None of these words appear in the name or subtitle except астана: the subtitle uses the form Астане, and Apple doesn't say whether App Store search understands Russian case endings. The string is 85 characters long. The limit has a catch. App Store Connect help calls it "100 bytes", Apple's search page calls it "100 characters". In UTF-8 a Cyrillic letter takes two bytes, so under the first rule this string weighs 159 bytes. Paste it into the field and save. If App Store Connect rejects it, keep the most important words, roughly 45 letters.

The name and keywords change only with a new app version, so the edits go to the developer for the next release.

Languages. Kazakh isn't among the App Store localizations. For the Kazakhstan storefront Apple lists one language, English (U.K.), and which text a person sees also depends on their phone's language and on the localizations you've filled in (App Store localizations). Fill in Russian and English (U.K.), then look at the page on two phones, one set to Russian and one to English.

Promotions. Apple doesn't allow prices in the name, subtitle, screenshots or previews (guideline 2.3.7). For a week-long promotion there's promotional text and In-App Events: an event card with a name of up to 30 characters and descriptions of 50 and 120, lasting up to 31 days, which can be promoted 14 days before it starts, with up to 10 events published at once. In search the card is shown to people who already have the app, while everyone else sees screenshots (In-App Events).

Google Play fields

There's no separate keyword field. There's a name of up to 30 characters, a short description of up to 80 and a full one of up to 4,000 (create and set up your app). Google itself says the listing text helps people find the app and advises writing the description with search in mind; it doesn't disclose the weight of each field (how users find your app). Repeated keywords in the name and descriptions can get the app suspended, and the rest of the metadata rules are spelled out in detail (metadata policy):

  • the name, icon and developer name can't mention rankings or awards ("#1", "Popular", "App of the year") or prices and promotions ("10% off", "free for a limited time");
  • no emoji, repeated special characters or all caps unless it's part of the brand;
  • no anonymous user testimonials in the description.

In its store listing best practices Google advises that the name say what the app does and the short description say why it's useful, without repeating itself in the full one.

FieldTextCharacters
NameБренд: доставка продуктов25
Short descriptionОвощи, мясо и молоко с доставкой на дом по Алматы и Астане58
Full descriptionwhat's in the catalogue, how to order, cities, paying by card in the app or to the courierup to 4,000

The short description reads "Vegetables, meat and milk delivered to your door in Almaty and Astana". Google Play accepts a Kazakh translation (store listing translations). Add one only if the app itself speaks Kazakh: a page in one language and screens in another is the same broken promise.

Screenshots and video

The App Store takes up to 10 screenshots. If there's no video, the first one to three show in search results, depending on orientation. You can add up to three app previews of up to 30 seconds each; they play by themselves with the sound off (product page). Screenshots must show the app in use, not a splash or login screen (guideline 2.3.3), and the service's first screenshot broke the rules from day one.

Google Play takes up to 8 screenshots per device type, at least two. A caption takes no more than 20% of the image, and the screenshots show real app screens. The video comes from YouTube, and the first 30 seconds play automatically (preview assets).

The service's new order:

  1. The catalogue, captioned "Delivery in Almaty and Astana".
  2. Reordering the last basket to a saved address: the reason to come back to the app instead of the website.
  3. Where the courier is right now.
  4. Paying by card in the app or to the courier on delivery.

There are no prices or promotions on the screenshots: in the App Store that breaks guideline 2.3.7, and besides, the discount ends in a week while the screenshot stays. Old screenshots are best not swapped for new ones overnight: you'd never learn whether the new ones helped. Both the App Store and Google Play let you show a new set to part of your visitors and compare it with the current one in a page A/B test, and that's where the service's screenshots go.

Ratings and reviews

On the iPhone the app asks for a rating with a system prompt: SKStoreReviewController in older versions, and from iOS 18 Apple recommends RequestReviewAction (SKStoreReviewController). The prompt appears no more than three times in 365 days (ratings and reviews). Apple forbids custom review prompts (guideline 5.6.1) and making a rating a condition for using features (3.2.2(x)). Manipulating reviews is forbidden (guideline 5.6.3), and for repeated manipulation Apple removes the developer from the program (5.6, App Review guidelines).

Google Play has the In-App Review API for this. The card has a per-person display quota, and Google can change it without notice. So Google asks you not to trigger it from a "Rate us" button: the quota may already be used up, and the button would open nothing. Nor may you ask "Do you like the app?" before the card (In-App Review API).

Now about 1,000 ₸ for five stars. Google Play's policy gives exactly this as an example of a violation: a discount in exchange for a high rating. The same policy forbids paying for fake reviews and submitting ratings posing as users (ratings, reviews and installs). Even without the rules, the arithmetic is bad: according to the app payback calculation the service keeps 1,000 ₸ per order, so the discount eats everything it would have earned on the next one.

Whether the prompt appears is the system's call; the moment is yours. For the service it's the next app launch after the courier closes a person's second order: they came back, so the first order worked for them.

In App Store Connect you can reply to any review, even an old one, and the author gets a notification and can update it. Replies must not contain personal data or marketing (ratings and reviews). Complaints like "the courier was an hour late" or "the milk didn't arrive" go to the head of delivery, and the reply says what was fixed. The App Store average rating is counted per country, and it can be reset when you release a version. Apple advises doing that sparingly, and written reviews stay after a reset.

Exercise: your own app's page

Take a client's app, or any local app with pages in both stores.

The delivery service's draft table would have failed its own check twice. The subtitle first read "Fast delivery", although "delivery" is already in the name, so 8 of the 30 characters went on a word search already knows. And "groceries", also from the name, found its way into the keywords. Repeats like these are easy to miss, so every word in the table gets checked against the name and subtitle one at a time.

Video: keywords and metadata

ASO in 5 minutes: keyword research and metadata for the App Store and Google Play - ASOMobile (in Russian)

A short overview from ASOMobile. Check field limits and rules against the stores' help pages linked above.

Need help applying this to your analytics? Discuss your project with Goodlabs →