App Store & Google Play Keyword Rank Tracker (ASO) avatar

App Store & Google Play Keyword Rank Tracker (ASO)

Pricing

from $2.00 / 1,000 keyword rank rows

Go to Apify Store
App Store & Google Play Keyword Rank Tracker (ASO)

App Store & Google Play Keyword Rank Tracker (ASO)

Track App Store and Google Play keyword ranks daily, with rank changes, top charts and keyword suggestions. Export CSV or pull via API.

Pricing

from $2.00 / 1,000 keyword rank rows

Rating

0.0

(0)

Developer

Carmentara OU

Carmentara OU

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Share

App Store & Google Play Keyword Rank Tracker (ASO)

Track where your apps and competitors rank for the keywords people type into Apple’s App Store and Google Play. Run it daily to get rank deltas, snapshot top charts, and expand your list with keyword suggestions.

  • 🔎 Keyword ranks: position for each keyword × country × store, with previous rank and change
  • 🎯 Tracked apps: rows for the apps you name (your app + competitors)
  • 📈 Top charts: top-free/top-paid on both stores; Apple only for top-grossing
  • 💡 Suggestions: autocomplete keywords on both stores
  • 📤 Export to CSV, Excel, JSON, Google Sheets, or pull via the API

Who uses it

  • ASO and growth teams, indie devs, agencies, data teams
  • Anyone who needs daily keyword checks and chart snapshots with minimal upkeep

How to track keyword rankings

  1. Create a free Apify account.
  2. Open this Actor and set Mode to keyword-ranks.
  3. Add your Search keywords.
  4. Under Tracked apps, add your app id/bundle/package and a few competitors:
    • Apple: numeric id (571800810) or App Store URL or bundle id (com.calm.calmapp)
    • Google: package name (com.calm.android) or Play URL
    • Tip: If you track different IDs per store, use explicit prefixes (apple:..., google:...). Unprefixed entries are applied to every selected store (bundle id on Apple; package id on Google).
  5. Turn on Only tracked apps if you only need your apps’ rows (cheapest).
  6. Click Start, then Save as a new task and Schedule it daily.

rankChange is positive when an app moved up. It compares with your last run via a delta key‑value store.

Input examples

Keyword ranks (only tracked apps, cheapest)

{
"mode": "keyword-ranks",
"keywords": ["meditation", "sleep sounds"],
"countries": ["us", "gb"],
"stores": ["apple", "google"],
"trackedApps": ["apple:571800810", "google:com.calm.android"],
"onlyTrackedApps": true,
"maxResultsPerKeyword": 30
}

Top charts

{ "mode": "top-charts", "countries": ["us"], "stores": ["apple","google"], "charts": ["top-free"], "maxChartEntries": 50 }

Keyword suggestions

{ "mode": "keyword-suggestions", "keywords": ["sleep"], "countries": ["us"], "stores": ["apple","google"] }

Output

  • keyword-ranks: one row per keyword × country × store with tracked rank details and optional top list (first N results)
  • top-charts: one row per chart entry with previousRank/rankChange
  • keyword-suggestions: one row per suggestion with position

Sample output (real)

Keyword ranks (second run, so previousRank/rankChange are filled)

{
"store": "google",
"country": "us",
"language": "en",
"keyword": "meditation",
"checkedAt": "2026-10-05T07:41:29.384Z",
"resultsCount": 20,
"tracked": [
{
"appId": "com.calm.android",
"title": "Calm - Sleep, Meditate, Relax",
"rank": 7,
"previousRank": 7,
"rankChange": 0,
"status": "same"
}
],
"top": [
{ "rank": 1, "appId": "com.spotlightsix.zentimerlite2", "title": "Insight Timer - Meditation App", "developer": "Insight Network Inc", "rating": 4.6966915, "ratingCount": null, "price": "Free", "url": "https://play.google.com/store/apps/details?id=com.spotlightsix.zentimerlite2" },
{ "rank": 2, "appId": "meditofoundation.medito", "title": "Medito: Meditation & Sleep", "developer": "Medito for Mindfulness, Meditation and Sleep", "rating": 4.783599, "ratingCount": null, "price": "Free", "url": "https://play.google.com/store/apps/details?id=meditofoundation.medito" },
{ "rank": 3, "appId": "com.getsomeheadspace.android", "title": "Headspace: Sleep & Meditation", "developer": "Headspace for Meditation, Mindfulness and Sleep", "rating": 4.2566533, "ratingCount": null, "price": "Free", "url": "https://play.google.com/store/apps/details?id=com.getsomeheadspace.android" }
],
"sourceUrl": "https://play.google.com/store/search?q=meditation&c=apps&hl=en&gl=US"
}

Top charts (first run for this chart)

{
"store": "apple",
"country": "us",
"chart": "top-free",
"category": null,
"rank": 1,
"appId": "6760173601",
"title": "Muse from Meta",
"developer": "Meta Platforms, Inc.",
"rating": null,
"ratingCount": null,
"price": "Free",
"url": "https://apps.apple.com/us/app/muse-from-meta/id6760173601?uo=2",
"previousRank": null,
"rankChange": null,
"checkedAt": "2026-10-05T07:41:30.428Z"
}

Keyword suggestions

{
"store": "apple",
"country": "us",
"seed": "sleep",
"suggestion": "sleeper",
"position": 1,
"checkedAt": "2026-10-05T07:41:31.043Z"
}

How much does it cost?

You pay per row pushed (pay‑per‑event).

What you getEvent namePrice
Keyword rank row (one keyword × country × store)keyword-rank-check$0.002
Top chart entry rowchart-entry$0.001
Keyword suggestion rowkeyword-suggestion$0.0005

Example: 20 keywords × 5 countries × 2 stores = 200 rows/day → 6,000 rows/month → 6,000 × $0.002 = $12/month (plus any charts/suggestions you run).

Use “Max PPE charge (USD)” to hard‑cap what one run can cost. The run stops pushing rows at the cap.

Scheduling and deltas

  • Save your input as a task and add a daily schedule.
  • previousRank/rankChange compare with the previous run via a named key‑value store (Delta store name). Give different scheduled tasks different store names if you want separate histories.

Integrations

  • API and clients: start runs and fetch results with the Apify API and the Python/JS clients.
  • Zapier, Make, n8n, Google Sheets, Slack: wire results where your team works.
  • AI agents (MCP): available through the Apify MCP server (mcp.apify.com). See Apify docs for connecting agents to platform datasets and key‑value stores.

Limitations

  • Google Play search depth is capped at 30 results per query by the underlying public endpoints.
  • Apple top charts are limited to 100 entries by Apple’s official RSS.
  • Google Play top‑grossing is currently unsupported (the public library returns top‑free). It’s skipped with a warning.
  • Language defaults to en. On Google Play it affects result titles.
  • Positions are what a logged‑out visitor sees; storefront personalization can cause slight differences.

FAQ

  • Is it allowed to scrape these results? The Actor reads public storefront pages and RSS endpoints that anyone can open without logging in. It doesn’t access accounts or private data. You’re responsible for how you use the data (especially personal data) under your local laws.

  • How often should I run it? Daily for keyword ranks and charts is typical. Use a scheduled task and keep the same keyword spelling to build a consistent history.

  • How are rank changes computed? The Actor stores the last seen ranks in a named key‑value store (Delta store name). Each run compares rank with the previous snapshot to produce previousRank and rankChange.

  • Why does a tracked app show not-ranked? It wasn’t found within the scanned depth for that keyword/country/store on this run. Increase maxResultsPerKeyword (Apple: up to 200; Google: capped at 30 per query).

  • Why only 30 Google results? Google Play’s public search endpoints return at most ~30 per query; the Actor caps to 30 and documents it to avoid misleading “not ranked” beyond that depth.

  • When should I use apple: / google: prefixes? Use them when you track different identifiers per store. Unprefixed entries are applied to every selected store (bundle id on Apple; package id on Google).

Local development

See DEVELOPMENT.md for the dev quickstart.

License

MIT — © Carmentara