> **For coding agents and LLMs:** This is one page from the Social Fetch docs (markdown export). For curated orientation and workflow guidance, start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for agent onboarding and crawl rules, use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for the full endpoint list with links to pages like this one, use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt); for one platform's parameters and curls, use [`/llms-{platform}.txt`](https://www.socialfetch.dev/llms-tiktok.txt); use [`/llms.json`](https://www.socialfetch.dev/llms.json) when you need structured JSON for tool registration.

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/docs/tools/ad-tracker/costs-and-limits>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/docs/tools/ad-tracker/costs-and-limits.mdx>

## API base URL and authentication

- **API origin (from OpenAPI `servers`):** `https://api.socialfetch.dev`
- **Authentication:** send `x-api-key: sfk_...` on `/v1/**` and `/v2/**` routes unless the operation is explicitly anonymous (check OpenAPI `security`, the [API reference hub](https://www.socialfetch.dev/docs/api.mdx), [`/llms.txt`](https://www.socialfetch.dev/llms.txt), or [`/llms.json`](https://www.socialfetch.dev/llms.json) for each route).
- **OpenAPI JSON:** <https://www.socialfetch.dev/openapi.json>

## Recommended docs entrypoints (this site)

- [Documentation overview](https://www.socialfetch.dev/docs.mdx) — top-level orientation (markdown).
- [Quickstart](https://www.socialfetch.dev/docs/quickstart.mdx) — authenticate with `x-api-key`, validate auth with `whoami`, and understand the JSON envelope.
- [SDK](https://www.socialfetch.dev/docs/sdk.mdx) — official TypeScript SDK guide, including `SocialFetchClient`, `Result`, and `unwrap()`.
- [Capability matrix](https://www.socialfetch.dev/docs/capability-matrix.mdx) — every operation with identifiers, pagination, outcomes, media download, credits, and its SDK method. Generated from OpenAPI, so use it for route selection instead of scanning individual pages.
- [Recipes](https://www.socialfetch.dev/docs/recipes.mdx) — copyable workflows (brand monitoring, transcripts, Ad Library, creator scoring, Reddit research) with credit callouts and SDK examples.
- [Integrations](https://www.socialfetch.dev/docs/integrations.mdx) — MCP for AI clients, n8n verified node, Apify Store Actors, Make custom app, SDK, and REST API connection paths.
- [MCP product page](https://www.socialfetch.dev/mcp) — hosted MCP overview, OAuth, Skills install.
- [MCP integration](https://www.socialfetch.dev/docs/integrations/mcp.mdx) — hosted `/mcp` server, OAuth, Cursor/VS Code/Claude install snippets, 264 endpoint tools, plus docs_search/docs_read for implementation help.
- [n8n integration](https://www.socialfetch.dev/docs/integrations/n8n.mdx) — install `n8n-nodes-socialfetch`, credentials, and workflow examples.
- [Apify integration](https://www.socialfetch.dev/docs/integrations/apify.mdx) — Store Actors under @social-fetch, PPE billing, dataset export, and quick start.
- [Make integration](https://www.socialfetch.dev/docs/integrations/make.mdx) — custom app modules for Make scenarios, API key credentials, and module catalog.
- [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt) — every documented operation with a direct link to that route's agent-readable markdown page (prefer this over parsing OpenAPI).
- [`/llms-{platform}.txt`](https://www.socialfetch.dev/llms-tiktok.txt) — per-platform endpoint files generated from OpenAPI (parameters, credits, curls).
- [`/agents.txt`](https://www.socialfetch.dev/agents.txt) — agent crawl/onboarding file with capabilities, auth rules, and allowlist.
- [`/llms.json`](https://www.socialfetch.dev/llms.json) — structured machine-readable operation inventory with parameter names, pagination, outcomes, credits, and SDK mapping.
- [API reference hub](https://www.socialfetch.dev/docs/api.mdx) — human-friendly index of operations with links into generated pages.
- [Errors](https://www.socialfetch.dev/docs/errors.mdx) — shared error envelope and HTTP status guidance.
- [Credits](https://www.socialfetch.dev/docs/credits.mdx) — metering, `402`, and planning batch jobs.
- Outcome semantics such as `found`, `not_found`, and `private` are documented in [Errors](https://www.socialfetch.dev/docs/errors.mdx) and on operation pages when present in the OpenAPI contract.

## Markdown docs convention

- Every docs page has a markdown twin: append **`.mdx`** to the docs pathname (for example `/docs/quickstart` → `/docs/quickstart.mdx`).
- Agents that send `Accept: text/markdown` on `/docs/**` HTML URLs may receive markdown directly (same URL, `Vary: Accept`).
- Published blog posts use the same convention: `/blog/{slug}` → `/blog/{slug}.mdx`, or `Accept: text/markdown` on the HTML URL (`Vary: Accept`).

---
# Ad Tracker costs and limits (https://www.socialfetch.dev/docs/tools/ad-tracker/costs-and-limits)

{/* Prices follow estimate.ts, platforms.ts, transcripts.ts and IDENTITY_SEARCH_CREDITS in packages/ad-tracker/src. Update them here if they change. */}

The Ad Tracker runs on your Social Fetch credits, at the normal price of each lookup it makes. Nothing is charged for opening the tracker, browsing ads, filtering, AI tags, monthly briefs, boards, exports, emails or webhooks.

## What uses credits

| What                      | Credits                                      | When                                                                                                                 |
| ------------------------- | -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| Finding a brand           | About 10                                     | Each time you click **Find ads**, **Find** or **Search again**                                                       |
| Searching one library     | 1 to 5                                       | When you search in a library's list while setting up, or from **Add a library** or **Change** on a competitor's page |
| A page of a library's ads | 1 on Meta, LinkedIn and TikTok; 25 on Google | Every check reads one or more pages                                                                                  |
| Transcribing a video ad   | 1 per video                                  | Meta and Google video ads, up to 10 a check on each                                                                  |

A page holds up to a few dozen ads. A check reads more pages when there's more to read:

* The **first check** reads up to 5 pages on each library, to collect what's running now and recent ads.
* **Later checks** on LinkedIn, Google and TikTok read newest first and usually stop after one page, when nothing on it is new. They read at most 3.
* **Later checks** on Meta read the whole list of running ads, so the tracker can tell which ones stopped: about 3 pages for most brands, and at most 10.

## Read the estimates

When you add a competitor, the **Name and cost** table shows each library's cost, and the **Your competitor** panel adds them up:

| Library      | Checked      | First check (at most) | Typical month | Busiest month |
| ------------ | ------------ | --------------------- | ------------- | ------------- |
| Meta         | Every day    | 15                    | 120           | 600           |
| LinkedIn     | Every day    | 5                     | 30            | 90            |
| Google       | Every 3 days | 135                   | 260           | 850           |
| TikTok       | Every day    | 5                     | 30            | 90            |
| **All four** |              | **160**               | **440**       | **1,630**     |

The figures include video transcripts. A typical month assumes about one new video ad a check; the busiest month is a brand that runs hundreds of ads at once, where every check reads as many pages as it can.

In our tests, Duolingo's first check on all four libraries cost 149 credits and Babbel's on Meta, LinkedIn and Google cost 131 credits plus transcripts.

A competitor's page shows **Credits this month**: what its checks and video transcripts have used since the 1st of the month (UTC). Your [Usage](https://app.socialfetch.dev/usage) page lists every charge.

## Spend less

* **Leave Google out** if you don't need search and YouTube ads. It's more than half the cost.
* **Track only the libraries the brand uses.** If a brand doesn't advertise on TikTok, choose **Don't track TikTok** when you set it up.
* **Switch a library off** later, on the competitor's page under **Ad libraries**. Checks on it stop; its ads stay.
* **Pause** a competitor you don't need for a while. No checks run and no credits are spent until you resume, and its ads stay.
* **Remove** a competitor you've finished with. Its checks stop straight away, but its ads leave your tracker and your boards (including shared ones), and it can't be undone. Pause instead if you might want the ads later.

There's no monthly spending cap for the Ad Tracker and no limit you can set on a check. Each check stops at the most pages shown above, so after its first check, a competitor's month of checks costs at most the busiest-month figure in the table. A first check that runs out of credits partway keeps the ads it read, and runs again in full once you've added credits. Keep an eye on **Credits this month** on each competitor's page, and pause any that cost more than they're worth.

There's no setting for how often each library is checked, and no way to check sooner than the schedule. When you resume a paused competitor, any library that missed its check is checked within a few minutes; the rest carry on from their next scheduled check.

## When credits run out

Before you start tracking, the **Your competitor** panel warns you when your balance is lower than the first check: **You have 10 credits, so the first check will stop short.** You can still start.

When a check finds the workspace has no credits left, it stops there. The ads it had already read are saved, and none are marked stopped because of the unfinished check. The competitor shows **Needs credits** and a banner, whether it was the first check or a later one:

Add credits and the check runs again within a few minutes: the tracker looks for checks waiting on credits every few minutes, and runs them once credits have been added and the balance covers at least a page of that library. If you don't add credits, it tries again at its next scheduled time: the next day, or three days later for Google.

The tracker also sends an email, **The Ad Tracker needs credits**, at most once every three days. You can't turn it off, so the tracker never goes quiet without you knowing.

Running out of credits never counts as a failed check, so it never switches a library off.

To keep the tracker running, keep enough credits for a month of checks, or turn on auto top-up in [Billing](https://app.socialfetch.dev/billing).

- [Troubleshooting](/docs/tools/ad-tracker/troubleshooting) — Every message the tracker shows.

- [Use cases](/docs/tools/ad-tracker/use-cases) — Recipes for research, offers and client reports.