# TikTok Ads MCP

> TikTok Ads connects your AI agent directly to TikTok's advertising platform. Manage campaigns, check ad performance metrics, and adjust budgets without ever opening the TikTok Ads Manager dashboard. Your agent can list campaigns, pull ROAS data across date ranges, pause underperforming ads, and even query audience interests—all conversationally. It’s direct command line control for your ad spend.

## Overview
- **Category:** money-moves
- **Price:** Free
- **Tags:** ad-campaigns, performance-marketing, roas, social-advertising, ad-management, marketing-analytics

## Description

Yo, forget logging into the TikTok Ads Manager dashboard. This server hooks your AI agent right up to TikTok's ad backend. You can manage campaigns, check performance numbers, and adjust spending without ever seeing that clunky dashboard. It’s direct command-line control for all your ad spend.

Your agent uses this connection to do deep dives into your account structure and run reports on everything you're doing. Here’s what it does:

**Getting the Lay of the Land:**
To see what's running, your agent first gets a full overview by calling `list_campaigns`, which returns a comprehensive list of every campaign active in your account. Need to know how many ad groups you got? It calls `list_adgroups` to pull that complete roster. And if you gotta check the actual creative assets—the ads themselves—it uses `list_ads` to give you a full listing of every individual ad associated with those campaigns.

**Deep Performance Reporting:**
When it comes to numbers, your agent can pull metrics at three levels: campaign, ad group, or individual ad. For the whole picture, calling `get_campaign_reporting` generates financial and engagement data for an entire campaign over a specified date range. Want to know how specific segments are doing? It uses `get_adgroup_reporting` to pull granular performance reports just for one ad group. If you gotta check out one single creative asset, it runs `get_ad_reporting`, which pulls metrics like clicks and impressions specifically for that individual ad.

**Controlling the Spend:**
If things aren't hitting the mark, your agent can take action fast. When poor performance is detected, it immediately disables an entire campaign using `pause_campaign`. Conversely, if you hit pause by mistake or want to restart something strong, it uses `enable_campaign` to turn on a campaign that was previously paused or disabled in the system.

In short, your agent can list every ad group, pull detailed performance reports for any whole campaign or specific ad group, retrieve metrics for individual ads showing clicks and impressions, gives you a full rundown of all active campaigns, and it's got the controls to pause or enable any campaign instantly. You get command-line access that handles all the data retrieval and the management actions.

## Tools

### enable_campaign
Turns on a campaign that has been paused or disabled in the TikTok Ads system.

### get_ad_reporting
Retrieves performance metrics for individual ads, showing data like clicks and impressions.

### get_adgroup_reporting
Pulls detailed performance reports specifically for an entire ad group.

### get_campaign_reporting
Generates comprehensive financial and engagement data for a whole campaign.

### list_adgroups
Retrieves a complete list of every ad group currently active in your account.

### list_ads
Lists all the individual ads (creative assets) associated with your campaigns.

### list_campaigns
Gets a full overview and list of every campaign running on your account.

### pause_campaign
Disables an entire ad campaign immediately when poor performance is detected.

## Prompt Examples

**Prompt:** 
```
What's my TikTok ad spend this week?
```

**Response:** 
```
This week's TikTok Ads summary: Total spend: $3,420. Impressions: 1.2M. Clicks: 18,400. CTR: 1.53%. CPC: $0.19. Conversions: 245. ROAS: 4.2x. Top campaign: 'Summer Collection' ($1,800 spend, 5.1x ROAS).
```

**Prompt:** 
```
Pause all ads with ROAS below 2x.
```

**Response:** 
```
Found 3 ads with ROAS below 2x. Paused: 'Product Demo v2' (ROAS: 1.1x), 'Brand Awareness Fall' (ROAS: 0.8x), 'New Arrivals Teaser' (ROAS: 1.5x). Savings: ~$450/day.
```

**Prompt:** 
```
Compare my campaign performance this month vs last month.
```

**Response:** 
```
Month-over-month comparison: Spend: $12,400 (+8%). Impressions: 4.8M (+15%). CTR: 1.61% (+0.12pp). ROAS: 3.8x (-0.3x). Conversions: 890 (+12%). CPC dropped 5% — efficiency is improving but ROAS dipped slightly.
```

## Capabilities

### Get Campaign Performance Reports
Retrieves historical data like spend, clicks, and ROAS for entire campaigns over a specific time period.

### List All Ads and Ad Groups
Provides full lists of every active ad or ad group in your TikTok account for quick review.

### Pause Specific Campaigns
Stops a campaign immediately if its performance metrics fall below a set threshold.

### Check Ad Group Metrics
Pulls granular performance data for individual ad groups, helping pinpoint which segments need attention.

### Enable Campaigns
Activates a campaign that was previously paused or disabled through the system.

## Use Cases

### Finding Out Why ROAS Dropped
The client notices their overall ROAS dipped last week. Instead of manually pulling reports, they ask their agent to compare campaign performance (get_campaign_reporting) from Week 1 vs. Week 2. The agent highlights that the 'Summer Collection' ad group needs attention and runs get_adgroup_reporting, showing a sudden spike in CPC.

### Shutting Down Failed Ads
The marketing manager spots three ads with poor conversion rates. They ask their agent to pause all campaigns with ROAS below 1.5x. The agent runs `pause_campaign` and confirms the action, saving projected daily spend.

### Pre-Flight Check on New Campaigns
Before a big launch day, the agency needs to know what's running. They ask their agent to list all active campaigns (`list_campaigns`) and then query specific performance data for each one (get_ad_reporting) to ensure everything is properly enabled.

### Analyzing Audience Interests
The brand team wants to narrow down their targeting. They ask the agent to pull audience insights, which helps them identify specific demographic interests that are currently underutilized in existing ad groups (list_adgroups).

## Benefits

- **Real-Time Performance Checks:** You don't need to open the web dashboard just to check numbers. Running `get_adgroup_reporting` allows your agent to pull specific, actionable data points (like CPC or CTR) directly into your chat window for immediate review.
- **Saves Time on Scaling Down:** If a campaign tanks, you don't have to manually find the account and click 'Pause.' Your agent calls `pause_campaign` when it detects ROAS dropping below 2x—saving hours of manual cleanup.
- **Deep Data Comparison:** Compare month-over-month performance metrics easily. The server handles complex data requests, letting you ask for trends like spending changes or conversion increases without writing a SQL query.
- **Full Oversight with Listing Tools:** Use `list_campaigns` and `list_adgroups` to get a clear inventory of everything running. You can confirm which campaigns are active before making major budget adjustments.
- **Budget Adjustments on the Fly:** Need to shift funds? Your agent adjusts budgets and bidding strategies using dedicated tools, eliminating the need to jump through multiple settings pages in the ad platform.

## How It Works

The bottom line is that it lets your AI client run complex ad management tasks by speaking to TikTok Ads' backend APIs directly.

1. Subscribe to the TikTok Ads integration on the Vinkius Marketplace. Then, create an app in the official TikTok Developers portal and get your credentials.
2. Pass those access keys and permissions into your AI client's configuration.
3. Ask your agent a question like: 'What was my ROAS last month?' or 'Pause all ads under 2x.' The agent calls the right tool, gets the data, and gives you the answer.

## Frequently Asked Questions

**How do I get my TikTok Ads API credentials?**
1. Go to **developers.tiktok.com** and log in with your TikTok account.
2. Click **Manage Apps** → **Create App**.
3. Select **Marketing API** as the app type.
4. Fill in the app details and submit for review.
5. After approval, go to your app's page and copy the **App ID** and **App Secret**.
6. Generate an **Access Token** by authorizing your ad account.
7. Paste App ID, App Secret, and Access Token below.

**Can I manage multiple ad accounts?**
Yes. Your AI agent can switch between ad accounts using their advertiser IDs, giving agencies and multi-brand teams unified campaign management.

**What metrics can I track?**
Impressions, clicks, CTR, CPC, CPM, total spend, conversions, conversion rate, ROAS, video views (2s, 6s, 100%), engagement rate, and audience demographics — all filterable by date range, campaign, ad group, and individual ad.

**Can I pause underperforming ads automatically?**
Yes. Ask your agent to check which ads have CPC above a threshold or ROAS below target, and it can pause those ads immediately — protecting your budget in real time.

**What parameters does the `enable_campaign` tool need to launch a new ad campaign?**
The `enable_campaign` tool requires mandatory inputs like the target objective, the budget amount, and specific start/end dates. You'll also specify which ad groups belong to this new campaign.

**When should I use the `get_adgroup_reporting` tool instead of general reports?**
Use `get_adgroup_reporting` when you need granular insight into performance *within* a specific, high-level campaign. It drills down to show which ad groups are driving results or falling short.

**What should I do if I run `list_campaigns` too frequently?**
API calls are rate-limited. If you hit a limit, your agent will receive an error code. Implement a small delay between list commands or batch your requests to stay within the platform's quota.

**How does `list_ads` help with micro-optimization?**
The `list_ads` tool retrieves performance data for individual ads. This lets you see which specific creative or ad copy is underperforming, allowing you to pause or adjust it quickly.