> **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>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/docs/tools/ad-tracker.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 (https://www.socialfetch.dev/docs/tools/ad-tracker)

{/* Credit figures follow estimate.ts and IDENTITY_SEARCH_CREDITS in packages/ad-tracker/src. Update them here if prices or schedules change. */}

The **Ad Tracker** keeps a copy of every ad a competitor runs. You type a brand's name, it finds the brand in the public ad libraries of Meta (Facebook and Instagram), LinkedIn, Google (Search, YouTube and display) and TikTok, and from then on it checks those libraries on a schedule. Each ad is saved with its copy, images, video and run dates, so it stays in your tracker after the competitor takes it down.

It runs inside the [Social Fetch app](https://app.socialfetch.dev/tools/ad-tracker) on your credits. There's no code to write and nothing to connect: you don't log in to any ad platform or give the tracker access to an ad account.

## What you'll need

* A **Social Fetch account**. [Sign up free](https://app.socialfetch.dev); new accounts get free credits to try things out.
* **Credits**, the units Social Fetch charges in. The tracker spends them on each lookup it makes. See [Pricing](/pricing) for what credits cost, and [Credits](/docs/credits) for how they work.
* The **name or website** of a brand that advertises, such as *Duolingo* or *duolingo.com*.
* If you share a workspace with your team, a role that can spend credits. Owners, admins and members can; billing-only users can't open the tracker. See [Teams and workspaces](/docs/teams).

## How it works

1. **You find the brand.** The tracker searches each ad library for it and picks the closest account on each one. You check the matches, change any that are wrong and leave out libraries you don't need. You can add a library or change an account later too.
2. **The first check collects their ads.** It saves the ads each library shows: the ones running now and recent ones that have stopped. Then it saves a copy of every image and video, and tags each ad with its angle, offer and presenter.
3. **Later checks find what changed.** Meta, LinkedIn and TikTok are checked every day, Google every three days. Each check adds new ads and marks ads that stopped running.

The tracker can only show what the libraries publish. It shows when an ad started and how long it has run, but not what the advertiser spent or how the ad performed.

## What it costs

The tracker uses your credits at the normal price of each lookup. Finding a brand costs about 10 credits. Tracking a brand on all four libraries costs:

* up to 160 credits for the first check, most of it Google;
* about 440 credits in a typical month after that.

Tracking only some libraries costs less: without Google, the first check is at most 25 credits and a typical month is about 180. A new account's free credits are enough to find a brand and run its first check without Google. See [Pricing](/pricing) for what credits cost in money. The set-up screen shows the cost for the libraries you choose before anything runs. [Costs and limits](/docs/tools/ad-tracker/costs-and-limits) explains it all, including what happens when your credits run out.

## Words you'll see

| Word                      | What it means                                                                                       |
| ------------------------- | --------------------------------------------------------------------------------------------------- |
| **Competitor**            | A brand you track. It can have an account on each ad library.                                       |
| **Library**               | A platform's public list of the ads running on it: Meta, LinkedIn, Google or TikTok.                |
| **Check**                 | One visit to a library, to collect the competitor's ads and compare them with last time.            |
| **Running** / **Stopped** | Whether the ad is still being shown. Stopped ads stay in your tracker.                              |
| **Proven**                | An ad that has run for 30 days or more. Advertisers rarely keep paying for an ad that doesn't work. |
| **Board**                 | A collection of ads you've saved, with your notes, that you can share by link.                      |
| **Brief**                 | A short AI summary of what a competitor ran in the past month, written on the 1st of each month.    |

## Guides

- [Track your first competitor](/docs/tools/ad-tracker/track-your-first-competitor) — From the Tools menu to a competitor's saved ads, step by step.

- [Read your results](/docs/tools/ad-tracker/read-your-results) — The dashboard, a competitor's page and each ad's details.

- [Save and share ads](/docs/tools/ad-tracker/save-and-share-ads) — Boards of the ads worth keeping, with notes and a share link.

- [Costs and limits](/docs/tools/ad-tracker/costs-and-limits) — What uses credits, and what happens when they run out.

- [Alerts and exports](/docs/tools/ad-tracker/alerts-and-exports) — Emails, the weekly digest, webhooks, CSV files and the API.

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

## Common questions

### Do I need an ad account, or to connect anything?

No. The tracker reads the public ad libraries that Meta, LinkedIn, Google and TikTok publish so anyone can see the ads on their platforms. You only need the brand's name.

### Will the competitor know I'm tracking them?

No. The tracker reads public libraries and doesn't interact with the brand or its accounts. Nobody is notified.

### Can I see ads they ran before I started?

Partly. The first check saves what each library shows at that moment: the ads running now, and recent ads that have stopped. How far back that goes depends on the library and the brand. From then on, every new ad is saved as it appears, and nothing is lost when a library drops an old ad.

### Can I see how much they spend, or which ads perform best?

No. The libraries don't publish spend or results, so the tracker can't show them either. What it can show is how long each ad has run: the **Proven** mark goes on ads that have run for 30 days or more, because advertisers rarely keep paying for an ad that doesn't work. Some libraries also share a rough impressions range for an ad, which its page shows under **Impressions**.

### Which countries does it cover?

All of them, as far as each library allows. Meta is checked across every country, and Google and LinkedIn say which countries an ad was shown in, which the ad's page lists under **Countries**. TikTok's library doesn't say where an ad ran. When you set up a competitor, Google's search has a region setting, but that only helps you find the right advertiser; it doesn't limit the ads collected.

### Can I change a competitor after adding it?

Yes. On its page you can rename it, add a library, change an account that's the wrong match, or switch a library off. See [Libraries and landing pages](/docs/tools/ad-tracker/read-your-results#libraries-and-landing-pages).

### What happens when a competitor stops an ad?

It stays in your tracker, marked **Stopped**, with its saved images, video, copy and run dates.

### Can my team see the same competitors?

Competitors and boards belong to your workspace. Owners and admins see all of them; members see the ones they added. To show someone outside the workspace, [share a board](/docs/tools/ad-tracker/save-and-share-ads#share-a-board).

### Is it all right to save and share competitors' ads?

The ads come from libraries that Meta, LinkedIn, Google and TikTok publish so that anyone can see what's advertised on their platforms. The tracker keeps a copy for your own research. The ads remain their advertisers' work, so use them to learn from and discuss, not to republish as your own, and follow our [Terms of Service](/terms).

### Is my data kept if I turn on zero retention?

**Zero retention** is a setting that stops Social Fetch storing what your API requests asked for and returned. The tracker keeps the brands you track and the ads it finds, because that's what you asked it to do, even when **Zero retention** is on. Remove a competitor to delete its ads.

- [Troubleshooting](/docs/tools/ad-tracker/troubleshooting) — Every message the tracker shows, and what to do about it.