How ASOApp's Keyword Data Is Produced
Every number ASOApp shows is computed, not measured. This page documents exactly how — the sources, the formulas, the weights and the refresh intervals — so you can judge how much weight to put on each figure. If a tool will not tell you this, be suspicious of its numbers.
The one thing to understand first
Apple publishes no App Store search volume. Not in App Store Connect, not through any public API, not to any vendor. Every "searches per month" figure you have ever seen in an ASO tool — ours and every competitor's alike — is inferred from indirect signals.
This is not a criticism of anyone. It is the shared constraint of the whole category. It means:
- Numbers from two tools will disagree, and neither is "wrong".
- Absolute values are far less trustworthy than relative ordering.
- The right question is never "how many searches does this get" but "is this keyword more winnable than that one".
Sources
| Source | What it provides | How we use it |
|---|---|---|
| Apple iTunes Search API | The apps ranking for a term in a storefront, with names, publishers, ratings, rating counts, release dates and prices | Everything in the difficulty and traffic models |
| Apple App Store search hints | Real App Store autocomplete suggestions per storefront | Keyword discovery, expanded across the alphabet |
| Apple App Store review feed | Recent public reviews for an app | Competitor complaint mining |
| Your own observations | Rankings recorded while you track an app | Rank history and movement |
Where the App Store permits it, these requests go directly from your browser to Apple. Our server proxies only when the browser cannot. There is no third-party data panel, no SDK embedded in anyone's app, and no purchased clickstream.
Difficulty (1–100)
Difficulty estimates how hard it would be for a new app to break into the top results for a keyword. It is a weighted blend of seven signals derived from the top 10 ranking apps:
| Signal | Weight | What it captures |
|---|---|---|
| Competitor strength | 30% | Log-scaled median rating count of the ranking apps — the closest available proxy for install base |
| Title density | 22% | What share of ranking apps put the keyword in their app name |
| Concentration | 15% | Share of all ratings held by the top two apps — a dominated keyword is harder |
| Maturity | 12% | Average age of the ranking apps, capped at 8 years |
| Rating quality | 10% | Average star rating of the ranking apps |
| Publisher diversity pressure | 6% | How few distinct publishers hold the results |
| Result depth | 5% | Total number of ranking apps, capped at 50 |
Two adjustments: a brand-leader correction discounts the top app when it is the publisher's own brand name and has fewer ratings than the median (a brand match is not evidence of competitiveness), and results with fewer than 8 ranking apps are scaled to 80%, because a thin result set overstates difficulty.
The score is clamped to 1–100 and labelled: Very easy (≤15), Easy (≤35), Medium (≤55), Hard (≤72), Very hard (≤90), Extreme (above).
Traffic (5–100)
Traffic is a demand proxy, not a volume estimate. It blends:
- Popularity pull (35%) — log-scaled rating count of the single top-ranking app.
- Contest (25%) — how many apps compete for the term, capped at 50.
- Market depth (20%) — log-scaled median rating count across the results.
- Title density (20%) — how many competitors target the keyword deliberately in their name.
The result is multiplied by a brevity factor, because shorter queries are typed far more often: one word ×1.0, two words ×0.85, three words ×0.62, four or more ×0.42.
Opportunity
opportunity = traffic × (1 − (difficulty / 100)²)
The squared term is deliberate: difficulty is punished non-linearly, so a keyword at difficulty 80 keeps only 36% of its traffic value while one at difficulty 30 keeps 91%. This is the number to sort by — it is demand you plausibly have a shot at, rather than demand that exists.
Estimated daily searches
estimated daily searches = 5 × 10^(traffic / 28) × market scale
The market scale factor sizes each storefront relative to the US (1.0) — for example Germany 0.40, Japan 0.55, United Kingdom 0.34, Canada 0.22, Netherlands 0.12.
This is the softest number on the site. It is an exponential fit that turns a 0–100 proxy into something with a familiar unit. It is useful for order-of-magnitude comparison between keywords in the same storefront. Do not use it in a revenue forecast, and do not compare it to a Google Keyword Planner figure, which measures something entirely different.
Refresh intervals
| Data | Cached for |
|---|---|
| Raw App Store search results | 30 minutes |
| Autocomplete hints | 6 hours |
| Full keyword scores | 72 hours (configurable) |
| Your tracked rankings | Recorded when you check them; kept until you delete them |
Requesting a keyword after its score expires triggers a fresh App Store query and recomputes everything.
What these numbers cannot tell you
Stated plainly, because it matters more than the formulas:
- Not actual searches. No tool has that.
- Not conversion. A keyword can send traffic that never installs, because your icon and screenshots decide that.
- Not causation. If a ranking moves after you change metadata, the change is a plausible cause, not a proven one — Apple's ranking depends on download velocity and ratings too.
- Not stable across categories. Rating counts mean different things in games than in utilities. Compare within a category.
- Weakest on thin keywords. Under about eight ranking apps, the sample is too small to say much, which is why those results are down-weighted and kept out of the public keyword index.
Why we publish this
Two reasons. First, a score you cannot interrogate is a score you cannot use well — knowing that difficulty leans 30% on competitor rating counts tells you when to distrust it. Second, if we are going to say on our comparison page that all ASO numbers are models, we should show ours.
Related
- App Store keyword difficulty explained
- App Store keyword search volume
- The complete ASO keyword research guide
- Security
Track your own app — free to start
See where your app ranks for keywords like this, across countries and over time. A new account starts a 7-day PRO trial — cancel before it ends and you pay nothing.
Add a single app — or paste a developer link to track all of their apps at once.