ASO Keyword Rank Tracker — App Store & Google Play avatar

ASO Keyword Rank Tracker — App Store & Google Play

Pricing

$1.00 / 1,000 result rows

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

ASO Keyword Rank Tracker — App Store & Google Play

Track keyword rankings, find top apps per keyword, and discover related keywords across Apple App Store and Google Play (60+ storefronts). Pay-per-use, no subscription. Flat CSV output. The affordable AppTweak / Sensor Tower alternative — same data at a fraction of the cost.

Pricing

$1.00 / 1,000 result rows

Rating

0.0

(0)

Developer

SlothTechLabs

SlothTechLabs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

🔍 ASO Keyword Rank Tracker — App Store & Google Play

Clean ASO data, delivered as a spreadsheet. One Actor, three actions, both stores, pay per use.

Tired of paying $83+/month to AppTweak or $179+/month to AppFollow just to check whether your app still ranks for your target keywords? This Actor gives you the same kind of data — cross-platform (iOS + Android), 60 storefronts, pay-per-use — as flat CSV rows that open cleanly in Excel / Google Sheets / Looker.

Under 20 seconds from clicking Start to having sortable ASO data you can pivot, filter, and plot.

You get the real data (top apps, review counts, ratings, prices, release dates), raw aggregates (total results, top-10 review-count median, etc.), and three convenience estimates (popularityEstimate, difficultyEstimate, opportunityEstimate) so you can prioritize keywords with one sort. No dashboards, no lock-in.


📊 Sample output (CSV-friendly)

Running with the default input (2 keywords × both stores, top 10 each) produces rows like this:

keywordstoreappRankappNameratingratingCountpricegenrereleaseDatepopularity­Estimatedifficulty­Estimateopportunity­Estimate
fitness appapple1Fitness App (Trainerize)4.962,559FreeHealth & Fitness2012-04-12878414
fitness appapple2Apple Fitness2.910,796FreeHealth & Fitness2020-09-30878414
fitness appgoogle1Home Workout — No Equipment4.83,895,736FreeHealth & Fitness2017-11-0898919
meditationapple1Insight Timer4.9437,965FreeHealth & Fitness2009-11-05878612

(plus iconUrl rendered as thumbnail, appId, developer, 4 raw aggregate columns, url, storefront, scrapedAt, action — 23 columns in total.)

40 rows per prefill (2 × 2 × 10). Sort by opportunityEstimate desc to surface your best targets; filter by store; pivot by keyword — no JSON parsing required.


🎯 Who this is for

  • 🧑‍💻 Indie developers — track your app's rank for 20 keywords daily, both stores, for ~$1.20/month
  • 🏢 ASO agencies — benchmark 10 clients × 50 keywords × both stores nightly for ~$30/month total (vs AppFollow's $179/seat)
  • 🎯 Product marketers — week-of-launch competitor benchmark (10 apps × 20 keywords × both stores × 7 days) for ~$2.80
  • 🔍 VCs / App scouts — one-shot market scan (5 keywords × both stores × top 10) for ~$0.10 per evaluation
  • 📊 Data analysts — pipe the flat CSV into your BI tool and never pay for another dashboard seat

🚀 First run — 3 steps

  1. Click Start (prefill is already safe: 2 keywords × both stores × top 10).
  2. After ~15 seconds, open the Dataset tab. The Overview view is shown by default — columns are already in a readable order (keyword, store, app rank, app name, then metrics, estimates, and meta).
  3. Export → CSV and open in Google Sheets / Excel. Sort by opportunityEstimate desc — the top rows are your best keyword targets.

That's it. When you're ready for real workflows, jump to App rank tracking below.


🧭 Three actions

"Where does app X rank for keyword Y?" — one row per (app × keyword × store).

{
"action": "app-rank-tracking",
"stores": ["apple", "google"],
"storefront": "us",
"keywords": ["instagram", "reels", "social"],
"apps": ["389801252", "com.instagram.android"],
"myApp": "389801252"
}

Output columns: keyword, store, iconUrl, appName, appId, appRank, rankStatus (ranked / out-of-top-200), isMyApp, rating, ratingCount, price, genre, developer, releaseDate, storefront, scrapedAt, action.

💡 Daily tracking tip: Save this as an Apify Task (save-input feature) and enable Scheduler (daily at 03:00 UTC). Each run appends a fresh dataset; Apify retains dataset history for free, so you have a time series without extra code.


🆚 Competitor comparison — just list them in apps

Want to see how you compare to competitors? Pass them in apps alongside myApp:

{
"action": "app-rank-tracking",
"stores": ["apple", "google"],
"storefront": "us",
"keywords": ["photo editor"],
"myApp": "389801252",
"apps": ["447188370", "547702041", "380726137"]
}

Filter by isMyApp=true in the Dataset to see your app's row; isMyApp=false for rivals. Pivot by keyword → side-by-side leaderboard.


🔍 Top apps for keywords — market research

"Who shows up for keyword X?" — top-N flat rows per (keyword × store).

{
"action": "keyword-top-apps",
"stores": ["apple", "google"],
"storefront": "us",
"keywords": ["fitness app", "meditation"],
"topN": 10
}

Per row you get the app's full context (appName, rating, ratingCount, price, genre, developer, url, iconUrl) plus keyword-level columns — repeated on every row so you can filter/sort without losing context.

Keyword-level columns

Raw aggregates (deterministic, computed from the top-ranking apps):

ColumnWhat it tells you
totalResultsHow saturated the keyword is (8 apps = niche, 200+ = competitive)
top10MedianRatingsReview-count scale of top competitors. 1,000 = approachable; 1M+ = very hard
top10AvgRatingIf average rating is 4.8+, users love the top apps — quality bar is high
top10PaidCountPaid apps in top 10. Signals whether paid listings rank

Per-app context (per row):

ColumnWhat it tells you
appRank1–topN rank within this keyword & store
appName, developer, iconUrl, urlIdentity + direct store link for the ranking app
rating, ratingCountStar + review volume
price, genreMonetization + category
releaseDateWhen the app launched (YYYY-MM-DD). Helps gauge competitive age — a top 10 of 5+ year-old apps is harder to unseat than a top 10 of recent launches

Convenience estimates (directional 0-100 scores for quick prioritization):

ColumnWhat it suggests
popularityEstimate (5-100)How popular the keyword is likely to be
difficultyEstimate (0-100)How hard it's likely to be to rank for it
opportunityEstimate (0-100)Combined "worth targeting" score — the higher, the better

About the estimates: popularityEstimate, difficultyEstimate, and opportunityEstimate are directional 0-100 scores derived from the top-ranking apps for each keyword. Treat them as a prioritization aid, not calibrated truth. For important decisions, cross-check against the raw aggregate columns (totalResults, top10MedianRatings, top10AvgRating, top10PaidCount) and apply your own judgment. Sort by opportunityEstimate desc to surface candidates worth investigating first.


💡 Keyword recommendations — idea expansion

"Give me related keywords to target." — one row per recommended keyword.

{
"action": "keyword-recommendations",
"stores": ["apple", "google"],
"storefront": "us",
"seedKeyword": "fitness",
"limit": 30
}

Output columns: seedKeyword, store, rank (1..limit), recommendedKeyword, source, storefront, scrapedAt, action.

The source column indicates where each suggestion came from — use it if you want to weight suggestions differently in your own workflow.


🧾 Input reference

FieldRequired forExample
actionall"keyword-top-apps" | "keyword-recommendations" | "app-rank-tracking"
storesall["apple", "google"]
storefrontall"us" (60 supported codes)
keywordskeyword-top-apps, app-rank-trackingup to 100
topNkeyword-top-apps1–20 (default 10)
seedKeywordkeyword-recommendationsone word/phrase
limitkeyword-recommendations1–80 (default 50)
appsapp-rank-trackingApple trackIds OR Google bundle ids, up to 20
myAppapp-rank-tracking (optional)one app ID; flags isMyApp=true

Where to find App IDs

  • Apple: numeric digits after /id in the store URL. Example: https://apps.apple.com/us/app/instagram/id389801252389801252
  • Google: value after ?id= in the store URL. Example: https://play.google.com/store/apps/details?id=com.instagram.androidcom.instagram.android

Storefront behavior

The storefront field drives both the country ranking and the locale of the returned app names. For example, storefront: "jp" returns the Japan App Store / Google Play rankings with Japanese app names and localized genres. Use us for English.


⏱ How long does it take?

Run sizeExpected duration
Prefill (2 KW × 2 stores × top 10)~15 seconds
Medium (20 KW × 2 stores × top 10)~1–2 minutes
Large (100 KW × 2 stores × top 10)~5–8 minutes
App rank tracking (20 apps × 20 KW × 2 stores)~30–60 seconds
Keyword recommendations (1 seed × 2 stores × 50)~10 seconds

All runs stay well under Apify's default 1-hour timeout. Transient failures on individual (keyword × store) pairs are retried 3× automatically; persistent failures are recorded in the RUN_SUMMARY key-value entry and the rest of the run continues.


❓ When does a field come back null / empty?

This is not a bug — it means the source store didn't expose that field for that specific app. Common cases:

  • ratingCount / rating → brand-new apps with zero user ratings yet
  • releaseDate → rare; a handful of non-US storefronts redact this
  • iconUrl → rare; the store hasn't served an image URL
  • appRank + rankStatus = "out-of-top-200" → by design, the app is outside the top 200 search results for that keyword (rank tracking covers top 200 per store)
  • genre / developer → rare; data-source gap

📦 Getting your data out

After a run completes:

  1. Apify Console → Dataset tab shows the Overview table view by default. Columns are in a user-priority order: keyword → store → app identity → app metrics → keyword estimates → raw aggregates → meta. Icon images render as thumbnails; URLs are clickable.
  2. A secondary All Fields tab is auto-generated by the Apify platform — same data, columns sorted alphabetically. You can safely ignore it in normal use.
  3. Export → CSV (or XLSX / JSON). All columns are flat — Excel / Sheets will just work.
  4. API with Overview column order (recommended for scripts): https://api.apify.com/v2/datasets/{datasetId}/items?format=csv&view=overview
  5. API (default, alphabetical): ?format=csv — columns are sorted A–Z by Apify.
  6. Google Sheets: use Apify's "Open in Sheets" button (bottom of Dataset tab), or IMPORTDATA("<url with ?view=overview>") in a cell.

🔁 Daily tracking workflow (free time series)

  1. Configure the Actor input once (e.g., app-rank-tracking for your 20 target keywords).
  2. In Apify Console → Save as Task → give it a name.
  3. Open the Task → Integrations → Scheduler → daily cadence.
  4. Each day's run creates a new Dataset; combine by downloading the last N days' datasets and joining on appId + keyword + store with a scrapedAt timestamp column.

No delta-calculation code required on our side; Apify retains dataset history for you.


💰 Cost (pay per result row)

$0.001 per dataset row. No startup fee. No tiered events. You only pay for the rows you actually receive.

Typical runs

Use caseVolumeCost
Prefill run (2 KW × 2 stores × top 10)40 rows~$0.04
Daily rank tracking: 1 app × 20 KW × both stores40 rows/day~$0.04/day / $1.20/month
Agency: 5 apps × 50 KW × both stores daily500 rows/day~$0.50/day / $15/month
Keyword research: seed × both stores × 50 recs~100 rows~$0.10

Compare to AppTweak Essential ($83/mo fixed), AppFollow ($179+/mo), Sensor Tower (~$25k+/yr). Daily 60-KW tracking here costs ~$3.60/month — over 98 % cheaper than AppFollow.


ℹ️ What we do — and what we intentionally don't

We excel at:

  • Returning clean, flat ASO rows from both stores in CSV-ready form
  • Daily rank tracking paired with Apify Scheduler (free time series via dataset history)
  • Competitor benchmarking in one pivot (set myApp, list rivals in apps)
  • 60 storefronts with locale-aware app names

We intentionally don't:

  • Replace calibrated SaaS dashboards like AppTweak or Sensor Tower. Our estimates are directional prioritization aids, not calibrated indices for precision work. For calibrated scoring, keep those subscriptions.
  • Track apps below the top 200 search results (outside that range the row returns appRank: null / rankStatus: "out-of-top-200")
  • Build dashboards — we produce data rows; your spreadsheet, Looker, or Tableau builds the chart

Disclaimer: Not affiliated with Apple Inc. or Google LLC. Data is derived from publicly accessible endpoints; use in accordance with each store's Terms of Service.



▶️ Ready?

Click Start at the top with the prefilled input — your first 40 rows of ASO intelligence arrive in about 15 seconds, for $0.04 total.


📬 Feedback & support

If you have any questions, feature requests, or encounter any issues, please open an issue on the Actor's page. We'd love to hear from you!