01Source: only the store's public face
Measurement doesn't connect to your store account. What's read is the face the store shows every user: search results, the app page, autocomplete suggestions and the review feed. The only thing you provide is your app's store link.
Account connections (App Store Connect, RevenueCat) are a separate, optional layer: connect one and your real installs and revenue appear on the same screen. Without it the measurement works exactly the same — those numbers are never modelled, they're simply absent.
02Depth and cadence
| App Store (iOS) | Google Play | |
|---|---|---|
| Rank depth | First 200 results | First ~30 results |
| Source | Public search surface | The result list on Play's search page |
| Demand signal | Autocomplete suggestions | Not measured (no source) |
| Cadence | Every day + manual runs | Every day + manual runs |
"Not ranked" means different things per platform: on iOS "not in the top 200", on Android "not in the top ~30". You could sit at 45 on Android and the measurement wouldn't see it — which is why the depth is printed on every screen.
03The cap is keywords × storefronts
One run starts at 02:10 UTC and reads about 800 units. A unit is one keyword in one storefront — so a plan's keyword limit is not what the run has to carry. Twenty-five keywords in two storefronts is 50 units. Two hundred and fifty keywords in ten storefronts is 2,500.
Past that capacity nothing is dropped and nothing is silently skipped: the storefronts rotate. At 2,500 units each storefront comes round about every 4 days, and the clock marker on each storefront tab says when that one was last read. A storefront that missed the last run keeps the numbers from the run that did reach it, labelled with that date — it is not refreshed and it is not blanked.
04Three states that never share a cell
- Rank N — measured, Nth in the list.
- Not in the list — measured, not present at that depth. A distinct marker, not a zero.
- Not measured — the request failed. The chart shows a gap; the line breaks.
05The ratings wall is a maximum, not an average
On every term we also read how many ratings the apps above you carry. The number printed as the wall is the highest rating count in the top 10 — not the median, not the mean.
An average hides the one app that actually holds the term. Nine apps with 200 ratings and one with 400,000 average out to something that reads easy, and the term is not easy. The median is kept as well, as a second column that is always smaller than the wall, so the two can never be mistaken for each other.
Difficulty is built on that wall: 70 of its 100 points come from the wall and 30 from how far your title already matches the term. The arithmetic is published in full at keyword difficulty, with the formula printed, and what the wall looks like across 153 measured keywords is at how many reviews top-ranking apps have.
06Country and language
Every storefront is its own search engine and gets its own keyword list. Measuring a Turkish term in the US storefront produces "not ranked" every day, and that isn't a signal.
All 175 storefronts on the list were verified by measurement: does the storefront identifier actually return suggestions, does Apple accept the language code, is the country code valid. A storefront failing any of the three was left off — listing a country whose demand can't be read would make an empty result look like "no demand".
07What we don't measure
- Search volume — neither Apple nor Google publishes it. The demand signal comes from autocomplete and is presence and breadth, not a number.
- A competitor's installs and revenue — that would be model output, not measurement. Not produced.
- Personalized results — the store reorders per user. What's measured is the un-personalized baseline, so it may not match what you see on your own phone.
That's why decisions should follow movement rather than the absolute number: the difference in a series measured the same way every day is the reliable part.
Frequently asked
Does the measurement access my store account?
No. Rank, demand, competitors and reviews are read from the store's public face. An App Store Connect or RevenueCat connection is optional and only used to bring your own install and revenue figures onto the screen.
Why might the rank differ from what I see in the store?
Store results are personalized by language, country and install history. The measurement reads the un-personalized baseline. That's why the difference between days matters more than the absolute number.
What happens on a day a measurement fails?
The chart shows a gap for that day. No zero is written and the previous day isn't repeated — both would present missing information as if it existed.
See this for your own app
Paste your store link, add your keywords. Rank, the apps above you and demand are measured every day.
Free plan: 1 app, 25 keywords in each of 2 storefronts, 30 days of history, no card, no end date. Pro is $20/mo.
Start free →