We're releasing AppTrail, an open-source tool for tracking how people find your app in the App Store, Google Play, and AI search. You can follow keyword rankings, compare competitors, and see whether AI answers mention your app or link to it.

Someone looking for a habit tracker might search the App Store for "daily routine" or ask Google which apps help build better habits. Your app could appear near the top for one search and be missing from another. Checking those searches across stores and countries takes time, and a single check tells you little about how things are changing.

AppTrail uses SerpApi to run those searches and save the results over time. You choose the apps, keywords, questions, and countries to follow. When a ranking or mention changes, you can open the saved check and see the results behind it.

You can run AppTrail on your computer or host it on your own server. It's available on PyPI and Docker Hub, with the source code on GitHub.

Set up AppTrail

You'll need a SerpApi account and your API key. AppTrail uses your account for searches, so discovery, listing verification, and tracking requests can consume SerpApi credits.

Local setup

AppTrail requires Python 3.11 or newer. With uv installed, run:

uvx apptrail

If you don't have uv installed, you can use pip instead:

pip install apptrail
apptrail

Either option starts AppTrail and opens its web interface on an available local port. On the first launch, copy the setup code from your terminal and use it to create your owner account. Then sign in to continue setup.

Your account and tracking history are saved in a user data directory, so they remain available when you restart AppTrail or update the package.

💡
The Python install works well for local testing and quick checks. For continuous scheduled monitoring, set up Docker on a machine that stays running. If you prefer to keep using the Python package, leave the AppTrail process running and the machine awake so it can keep collecting results. You can close the browser.

Docker setup

If you'd prefer to run AppTrail in Docker, use the official image.

docker run -d --name apptrail \
  -p 80:80 \
  -v apptrail-data:/data \
  --restart unless-stopped \
  serpapi/apptrail:latest

This runs AppTrail in the background as a container named apptrail and maps port 80 so you can open it at http://localhost. The apptrail-data volume preserves your account and tracking history when you replace the container.

Once it is running, find your one-time setup code in the container logs:

docker logs apptrail

Open http://localhost, use the code to create your owner account, and sign in. If you're running the container on a remote server, open its address instead.

If you need a detailed walkthrough, our self-hosting guide covers CapRover and Coolify deployment, HTTPS configuration, and updates.

Connect SerpApi and add your app

The remaining setup is the same for both options:

  1. Enter your SerpApi API key in the setup wizard and verify the connection.
  2. Search for your iOS or Android app, or paste its store URL. Select at least one listing for AppTrail to verify.
  3. Add store keywords such as "habit tracker" and AI questions such as "Which apps help build daily habits?"
  4. Choose your countries, language, and refresh frequency. Review the credit estimate, then start tracking.

The first checks run immediately. You can close the browser while AppTrail works, as long as the local process or Docker container stays running.

💡
SerpApi includes 250 free search credits per month. You can track your app and competitors weekly for two keywords in both app stores across three countries, plus two questions across Google AI Mode, AI Overviews, and Bing Copilot. Five weekly runs at the default search depth use up to 160 credits, well under the free limit.

What you can track

Let's use Apptrail to track the performance of HabitFern, our example app, with two competitors: RoutineCove and StreakPebble.

Store rankings

Add the keywords people might use to find your app, then follow its position in the App Store and Google Play. For a habit tracker, you might start with "habit tracker," "daily routine," and "streak tracker."

The Overview chart shows how your average store position changes over time. You can compare the two stores, then open individual checks to inspect a particular keyword's results.

Switch from Trend to Distribution to see how many results fall in positions 1–3, 4–10, 11–50, or 51+, and how often the app wasn't found.

Competitor comparisons

Choose Add competitors beneath a search to compare other apps with your own. The Apps & competitors panel shows their rankings for the same keyword, store, and country. For AI questions, it shows their mentions and citations.

In this example, HabitFern appears ahead of both competitors for "habit tracker" in the US App Store. You can open the saved check to inspect those results.

Countries and regions

Your app's position can vary between markets. Track the same keyword in several countries to see where it appears and how the results differ.

Open Apps & competitors beneath a query, then choose Open query matrix. The matrix puts each country's results alongside your competitors, with a timestamp and a link to the saved evidence in every cell.

AI mentions and citations

Add questions your potential users might ask, such as "Which apps help build daily habits?" AppTrail checks Google AI Mode, Google AI Overviews, and Bing Copilot for mentions of your app and links to its website or store listing.

Compare mentions across the three AI sources and see how often an answer was returned.

Open a check to read the saved answer and inspect the matching text and cited sources. A mention tells you the app appeared in the answer; a citation lets you check whether the answer also linked to your app store listing or website.

The saved answer, matching evidence, and source link for an AI check.

Listing history

Store listings change too. You might update your app's description, or a competitor might change its title, pricing, or screenshots. AppTrail can keep a timeline of those changes for your own apps and competitors.

Open Listing history, choose Track a listing, and select the app, store, country, and frequency. Collection is off by default, and AppTrail shows a credit estimate before you enable it.

AppTrail tracks the fields returned by the store, including titles, descriptions, versions, pricing, icons, and screenshots.

Ranking alerts

AppTrail sends in-app notifications when a tracked app loses ground after ranking in the top 10. This includes a drop of at least five positions, leaving the top 10, or disappearing from a sufficiently deep set of checked results.

Two successful checks must confirm the loss before AppTrail raises an alert. Open the notification bell, then choose View evidence to inspect the results.

Scheduled or manual checks

You can run a check when you need fresh results, or collect them daily, weekly, every two weeks, or monthly. Open Manage for a query to change its schedule or pause automatic checks.

Set a query's frequency across its countries and search sources.

Scheduled checks need the AppTrail process or container to stay running. If it stops, your saved history remains, and overdue checks resume when it starts again.

Your history to keep

You can export search history as CSV for a spreadsheet or your own analysis. Open Settings > Data & backups, then choose Export history CSV.

Download a CSV export or back up your AppTrail workspace.

Download backup saves your workspace, including its history and archived listing images.

Try AppTrail and tell us what you'd like next

Start with your app, a few keywords, and the countries you care about. If there's a feature you'd like us to add, open an issue on GitHub and tell us what you want to track.

If you find AppTrail useful, give the repository a star. We'd love to hear how you're using it.