Keyword gap
Compare the searches your app ranks for against a rival's, split into theirs only, both, and yours only.
Download Markdown ↓The keyword gap compares a tracked app with one rival: the searches only the rival ranks for, the searches you both rank for, and the searches only your app ranks for. Ask for it through the API or through the aso tool in MCP.
Who counts as a rival
Put your app and its rivals on the same board, and mark your own app as Mine in ASO. The apps it shares a board with are the rivals the comparison uses. You can also name any App Store id as the rival.
Both sides come from stored search snapshots, so an app needs at least one collected keyword refresh before it has anything to compare.
Reading the comparison
| Column | What is in it |
|---|---|
| Only rival | Searches the rival ranks for where your app is absent, with their position |
| Both | Searches you both rank for, your position first, theirs second |
| Only this app | Searches only your app ranks for, with your position |
Every keyword in the three columns links to the keyword explorer, so you can see the whole ranking behind a gap before you act on it.
An empty column says so in plain words rather than showing zero rows: Nothing they rank for that this app misses, No shared keywords, Nothing this app ranks for alone.
What the comparison is, and is not
Both sides are built from stored search snapshots, not from a live query at the moment you ask. So:
- A gap means the rival was in a collected search result where your app was not. It does not mean the store would rank it that way this second.
- An empty side means those searches were not in the collected set for that app, not that the app ranks for nothing.
- The two apps can have been collected at different times. Refreshing both before you compare makes the two sides describe the same period.
Positions on both sides are observed store search positions, never native App Store ranks.
Related
AI agent or LLM? Read this page as markdown