# TikTok Ads Checker (`m3web/tiktok-ads-checker`) Actor

Free tool that checks if a company runs TikTok ads in Europe (EEA/UK/CH/TR). Give it legal company names, get ad counts, top ads & reach data back. Great for lead gen, prospecting, and competitor research. Pairs perfectly with Google Ads Checker.

- **URL**: https://apify.com/m3web/tiktok-ads-checker.md
- **Developed by:** [M3Web](https://apify.com/m3web) (community)
- **Categories:** Lead generation, Social media, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## TikTok Ads Checker

Checks whether a company runs ads on TikTok, using TikTok's own
[Commercial Content Library](https://library.tiktok.com/ads) — the public
ad database TikTok is required to publish under EU transparency rules.

### What to put in the input

**The company's registered legal entity name** — not a domain, not a
brand name. This is the name on the company's impressum / imprint / legal
notice page (required by law in Germany, Austria, and Switzerland, often
present elsewhere too).

✅ `Dirk Rossmann GmbH`
✅ `AutoScout24 GmbH`
❌ `rossmann.de`
❌ `Rossmann`

#### Easiest way to get a list of legal names: Google Ads Checker

[Google Ads Checker](https://apify.com/m3web/google-ads-checker) already
collects each advertiser's full legal name for every domain that runs
Google Ads — and since Google is the largest ad platform, most companies
worth checking will show up there. Run Google Ads Checker on a list of
domains first, then feed the `advertiserName` values it returns straight
into this Actor.

### Why legal name, not domain

TikTok's ad library does not reliably connect a domain to its advertiser
— unlike Google or Meta's transparency tools. In testing, searching by
domain missed most companies known to run TikTok ads. Searching by the
exact registered legal name found the right advertiser account
consistently. That is the reason for this input format.

### Result confidence

- **`confirmed_exact_match`** / **`confirmed_via_fallback`** — a real
  TikTok advertiser account matching the name was found. `hasAds` (true
  or false) reflects that account's actual ad history for the checked
  period. Both are fully reliable results.
- **`no_match_found`** — no TikTok advertiser account matching this name
  could be found at all. The company may not advertise on TikTok, or may
  be registered under a different name (see below).
- **`error`** — the check failed technically. Re-running usually resolves
  it.

### Coverage: Europe, UK, Switzerland, Turkey

TikTok's Commercial Content Library only covers ads targeting the
European Economic Area, UK, Switzerland, and Turkey. A company running
TikTok ads only in the US, for example, will correctly show no results
here — that reflects TikTok's own data, not a limitation of this Actor.

### Large multinationals: one name may not cover every market

Big companies often run TikTok ads through country-specific subsidiaries
or media agencies rather than one central account. A German entity might
show no ads while the same brand's ads run under a different registered
name in another country. If a large company shows no match, trying a
country-specific legal name is worth a shot before concluding they don't
advertise on TikTok anywhere in Europe.

### Date range

By default, this Actor checks the full last 365 days — TikTok's ad
library does not keep data older than that. A shorter, specific window
can be set instead (for example, just May 2026) using the optional
Start date / End date fields, useful for month-by-month trend tracking.
The calendar picker will not stop someone from choosing a date more than
a year back — TikTok simply has no data before that point, so it gets
moved forward automatically.

### Output

Each row includes:

- `hasAds` — true, false, or null (a failed check)
- `confidence` — see above
- `matchedAdvertiserName` / `matchedAdvBizId` — the TikTok account this
  result is based on
- `totalAds` — how many ads that account has for the checked period
- `lastShownDate` — most recent date any of its ads were shown
- `topPerformingAds` — up to 12 of that account's ads for the period,
  sorted by reach, each with its own title and estimated audience size
- `periodStart` / `periodEnd` — the date range that was actually checked
- `note` — extra context, only filled in for `no_match_found` or `error`

Company **domain** is not included in the results — TikTok's own ad data
frequently has no working landing-page link at all, so this Actor does
not try to guess one.

### Why this Actor is free

Unlike the other Ads Checker Actors below, this one is **free to run** —
only Apify's own platform and residential proxy usage costs apply. TikTok's ad library is meaningfully harder to search reliably
than Google's or Meta's, so pricing it the same did not feel right.
Trying the other Ads Checker Actors is the best way to support this work:
[Google Ads Checker](https://apify.com/m3web/google-ads-checker) ·
[Meta Ads Checker](https://apify.com/m3web/meta-ads-checker) ·
[Microsoft Ads Checker](https://apify.com/m3web/microsoft-ads-checker).

### Tip: track changes over time

Once a list of legal names is ready, set up a monthly
[Apify schedule](https://docs.apify.com/platform/schedules) for this
Actor — with a fixed Start date / End date for each month — to see when
companies start, stop, or change their TikTok ad activity, rather than
just a single point-in-time check.

***

#### 🔍 Explore More Ads Checkers

<table>
  <tr>
    <td>
      <img src="https://images.apifyusercontent.com/Seab5MO9Kn3roLW_mogW3DdcntLqhZ0kOXCb9uI6rjw/rs:fill:76:76/cb:1/aHR0cHM6Ly9hcGlmeS1pbWFnZS11cGxvYWRzLXByb2QuczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20vclhjVHhYMGd2b0hDWFhseXctYWN0b3ItemlCTGgwTGxRcDBjdFJNRGUtVmczYTJLUERldS1Db3BpbG90XzIwMjYwNzI4XzAyMzQ0OC5wbmc.webp" width="32" height="32" style="border-radius:6px; margin-right:8px;" />
      <span style="font-size:16px; font-weight:bold;">
        <a href="https://apify.com/m3web/google-ads-checker">Google Ads Checker</a>
      </span>
    </td>
    <td>Check ad activity across Google platforms</td>
  </tr>
  <tr>
    <td>
      <img src="https://images.apifyusercontent.com/HbmodBCFgJKgfpOK536rI9Fgw5v_IdAlg4IGylaixFk/rs:fill:76:76/cb:1/aHR0cHM6Ly9hcGlmeS1pbWFnZS11cGxvYWRzLXByb2QuczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20vclhjVHhYMGd2b0hDWFhseXctYWN0b3ItcTN4VWZ4UGUwWDBTZmVqWFotNlpTM2JCUTJBSy1tZXRhMy5wbmc.webp" width="32" height="32" style="border-radius:6px; margin-right:8px;" />
      <span style="font-size:16px; font-weight:bold;">
        <a href="https://apify.com/m3web/meta-ads-checker">Meta Ads Checker</a>
      </span>
    </td>
    <td>Check ad activity across Meta platforms</td>
  </tr>
  <tr>
    <td>
      <img src="https://images.apifyusercontent.com/naNPc5hzh6lVmm-xYmjyfSTJc3XYdypCHlFTbFhIfiw/rs:fill:76:76/cb:1/aHR0cHM6Ly9hcGlmeS1pbWFnZS11cGxvYWRzLXByb2QuczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20vclhjVHhYMGd2b0hDWFhseXctYWN0b3ItNWpLWGlkME0wV1NUcDJUYlotelFJaEJkZmRGYy1NaWNyb3NvZnRfY2hlY2tlci5wbmc.webp" width="32" height="32" style="border-radius:6px; margin-right:8px;" />
      <span style="font-size:16px; font-weight:bold;">
        <a href="https://apify.com/m3web/microsoft-ads-checker">Microsoft Ads Checker</a>
      </span>
    </td>
    <td>Discover advertisers on Bing and Microsoft Ads</td>
  </tr>
</table>

# Actor input Schema

## `companyNames` (type: `array`):

The REGISTERED LEGAL ENTITY NAME of each company, one per line - not a domain, not a brand name. Find this on the company's impressum/imprint page (required by law in Germany, Austria, Switzerland) or equivalent legal disclosure page. Example: "Dirk Rossmann GmbH", not "rossmann.de" or "Rossmann". A domain or brand-only name will usually return no results - see the README for why.

## `targetCountry` (type: `string`):

Check ads targeted at a specific country, or all countries TikTok's ad library covers (EEA, UK, Switzerland, Turkey). "All countries" is faster (one request covers every country) and is the right choice unless you specifically need one market's data.

## `startDate` (type: `string`):

Check ads from this date onward, format YYYY-MM-DD. TikTok only keeps 1 year of data - the calendar below does not block older dates, but anything past that will be moved forward automatically. Leave blank to check the full last 365 days.

## `endDate` (type: `string`):

Check ads up to this date, format YYYY-MM-DD. Only used if Start date is set - leave blank to use today as the end date.

## Actor input object example

```json
{
  "companyNames": [
    "Dirk Rossmann GmbH"
  ],
  "targetCountry": "all"
}
```

# Actor output Schema

## `checkedCompanies` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "companyNames": [
        "Dirk Rossmann GmbH"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("m3web/tiktok-ads-checker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "companyNames": ["Dirk Rossmann GmbH"] }

# Run the Actor and wait for it to finish
run = client.actor("m3web/tiktok-ads-checker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "companyNames": [
    "Dirk Rossmann GmbH"
  ]
}' |
apify call m3web/tiktok-ads-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,m3web/tiktok-ads-checker"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/re1rPDUup1XHAkxOr/builds/WJcejz4DkA7zgTEep/openapi.json
