ScavioScavio
ToolsPricingDocs
Sign InGet Started
  1. Home
  2. Tutorials
  3. How to Track App Store Rankings via Google Play Search
Tutorial

How to Track App Store Rankings via Google Play Search

Monitor your app's visibility in Google Play search results using the Scavio Google SERP API. Track position for app-related keywords and detect ranking shifts.

Get Free API KeyAPI Docs

Mobile app visibility extends beyond the App Store and Google Play internal search. Google surfaces Google Play app listings directly in web search results, making Google SERP rankings an important signal for app discoverability. Tracking where your app appears for target keywords in Google search — including app-specific rich results — helps you measure the impact of ASO efforts and monitor competitor apps. This tutorial builds an app ranking tracker using the Scavio Google SERP API.

Prerequisites

  • Python 3.8 or higher
  • requests library installed
  • A Scavio API key
  • Your app's Google Play URL or package name

Walkthrough

Step 1: Define app tracking targets

Set up the app package names and keywords to track. Google Play URLs contain the package name in the id parameter.

Python
APPS = {
    "My Fitness App": "com.example.fitnessapp",
    "Competitor App": "com.competitor.fitnessapp",
}
KEYWORDS = ["workout tracker app", "fitness planner android", "calorie counter app"]

Step 2: Search and find app positions

Search each keyword and scan organic results for Google Play URLs containing each app's package name.

Python
def get_app_rank(keyword: str, package: str) -> int | None:
    data = search_google(keyword)
    for r in data.get("organic_results", []):
        link = r.get("link", "")
        if "play.google.com" in link and package in link:
            return r["position"]
    return None

Step 3: Track multiple apps across keywords

Build a ranking matrix showing each app's position for each keyword.

Python
def track_apps() -> dict:
    matrix = {}
    for kw in KEYWORDS:
        matrix[kw] = {}
        for app_name, package in APPS.items():
            rank = get_app_rank(kw, package)
            matrix[kw][app_name] = rank
    return matrix

Step 4: Print the ranking matrix

Display the results as a table with keywords as rows and apps as columns.

Python
matrix = track_apps()
for kw, ranks in matrix.items():
    print(f"\n{kw}:")
    for app, rank in ranks.items():
        print(f"  {app}: {'#' + str(rank) if rank else 'not found'}")

Python Example

Python
import os
import requests

API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v2/google"
APPS = {"MyApp": "com.example.myapp", "CompApp": "com.competitor.app"}
KEYWORDS = ["workout tracker app", "fitness planner android"]

def search_google(q: str) -> dict:
    r = requests.post(ENDPOINT, headers={"Authorization": f"Bearer {API_KEY}"},
                      json={"query": q, "gl": "us"})
    r.raise_for_status()
    return r.json()

def get_rank(kw: str, pkg: str) -> int | None:
    data = search_google(kw)
    for r in data.get("organic_results", []):
        if "play.google.com" in r.get("link", "") and pkg in r.get("link", ""):
            return r["position"]
    return None

if __name__ == "__main__":
    for kw in KEYWORDS:
        print(f"\n{kw}:")
        for name, pkg in APPS.items():
            rank = get_rank(kw, pkg)
            print(f"  {name}: {'#' + str(rank) if rank else 'not found'}")

JavaScript Example

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v2/google";
const APPS = { MyApp: "com.example.myapp", CompApp: "com.competitor.app" };
const KEYWORDS = ["workout tracker app", "fitness planner android"];

async function searchGoogle(q) {
  const res = await fetch(ENDPOINT, {
    method: "POST",
    headers: { "Authorization": `Bearer ${API_KEY}`, "Content-Type": "application/json" },
    body: JSON.stringify({ query: q, gl: "us" })
  });
  return res.json();
}

async function getRank(kw, pkg) {
  const data = await searchGoogle(kw);
  const match = (data.organic_results || []).find(r => r.link.includes("play.google.com") && r.link.includes(pkg));
  return match ? match.position : null;
}

async function main() {
  for (const kw of KEYWORDS) {
    console.log(`\n${kw}:`);
    for (const [name, pkg] of Object.entries(APPS)) {
      const rank = await getRank(kw, pkg);
      console.log(`  ${name}: ${rank ? "#" + rank : "not found"}`);
    }
  }
}
main().catch(console.error);

Expected Output

JSON
workout tracker app:
  MyApp: #4
  CompApp: #2

fitness planner android:
  MyApp: not found
  CompApp: #6

Related Tutorials

    Frequently Asked Questions

    Most developers complete this tutorial in 15 to 30 minutes. You will need a Scavio API key (free tier works) and a working Python or JavaScript environment.

    Python 3.8 or higher. requests library installed. A Scavio API key. Your app's Google Play URL or package name. A Scavio API key gives you 50 free credits on signup.

    Yes. The free tier includes 50 credits on signup, which is more than enough to complete this tutorial and prototype a working solution.

    Scavio has a native LangChain package (langchain-scavio), an MCP server, and a plain REST API that works with any HTTP client. This tutorial uses the raw REST API, but you can adapt to your framework of choice.

    Related Resources

    Best Of

    Best API-Based Rank Trackers for SEO in 2026

    Read more
    Best Of

    Best SEO Rank Tracking APIs in 2026

    Read more
    Solution

    Build Reliable Local Rank Tracking with Scavio API

    Read more
    Comparison

    Google CSE (Paid Tier) vs Third-Party SERP API (Scavio, SerpApi, Serper)

    Read more
    Solution

    Google Ads Data from SERP APIs

    Read more
    Use Case

    Track AI Citations vs Google Rankings

    Read more

    Start Building

    Monitor your app's visibility in Google Play search results using the Scavio Google SERP API. Track position for app-related keywords and detect ranking shifts.

    Get Free API KeyRead the Docs
    ScavioScavio

    One scraper API for every social, search and ecommerce platform. Built for AI agents.

    Product

    • Features
    • Pricing
    • Dashboard
    • Affiliates

    Developers

    • Documentation
    • API Reference
    • Quickstart
    • MCP Integration
    • Python SDK

    Alternatives

    • Tavily Alternative
    • SerpAPI Alternative
    • Firecrawl Alternative
    • Exa Alternative
    • Serper Alternative
    • Tavily vs Scavio
    • SerpAPI vs Scavio
    • All alternatives
    • Compare Scavio vs alternatives

    Search APIs

    • Google Search API
    • Amazon Product API
    • YouTube API
    • Reddit API
    • Walmart Product API
    • TikTok API
    • Instagram API

    Tools

    • All Tools

    © 2026 Scavio. All rights reserved.

    Featured on TAAFT
    Terms of ServicePrivacy Policy