# Taboola MCP

> Taboola manages all your native advertising campaigns, ads, and performance reports directly through natural conversation. Use this server to list accounts, create new campaigns, update budgets, and pull detailed summary reports without leaving your chat client. It’s full ad ops control for your AI agent.

## Overview
- **Category:** growth-engine
- **Price:** Free
- **Tags:** native-advertising, campaign-management, cpc, performance-reporting, content-discovery, ad-ops

## Description

You're dealing with Taboola campaigns? You don't need to jump through hoops or leave your chat window. This server lets your AI client handle all your native ad ops—from setting up brand new campaigns to pulling deep performance reports—all in one conversation. It’s like having a dedicated, lightning-fast Ad Ops specialist right here.

**Checking Your Access and Status**

Before you start anything, you'll want to know what accounts your AI client can touch and who it is talking for. You use `list_allowed_accounts` to get a list of every Taboola account you have permission to manage. Next, `get_current_user` pulls the profile details and status for the user connected to the account. These tools let you audit your permissions immediately.

**Building and Controlling Campaigns**

Want to launch something new? You start by running `create_campaign`, which builds an entire campaign structure from scratch within Taboola. Once that's live, you can use `get_campaign` to pull every single detail for a specific campaign ID. If you need to make changes—say, adjusting the budget or tweaking the Cost Per Click (CPC) target—you run `update_campaign`. This modifies parameters like budgets, CPC, or even flips the entire campaign status on or off. You can also use `list_campaigns` when you just need a comprehensive list of all campaigns available in your linked accounts.

**Managing Ad Assets and Creatives**

A campaign is nothing without good ads attached to it. To see what's running, run `list_campaign_items`; this lists every individual ad asset tied to a specific campaign ID. Need to add something new? You use `create_campaign_item` to attach a brand-new creative or URL directly into an existing campaign item. This keeps your entire ad structure managed and updated right inside the chat.

**Mining Performance Data**

The real value is in the numbers, so you'll need reports. You can use `get_campaign_summary_report` to generate a detailed performance report for either an account or a campaign. This report groups metrics by time periods—you can get summaries broken down by day, week, or month to track trends easily. If you’re focused on content, run `get_top_campaign_content_report`. That tool identifies and reports on the best-performing content pieces within any specific campaign structure.

This setup means your AI client doesn't just read data; it actively manages your ad spend. You build campaigns using `create_campaign`, adjust budgets or statuses with `update_campaign`, list everything running with `list_campaign_items`, and pull deep, actionable insights using `get_top_campaign_content_report` and `get_campaign_summary_report`. It's full ad ops control without ever leaving your chat client.

## Tools

### list_allowed_accounts
Returns a list of all Taboola accounts that your user has permission to manage.

### list_campaign_items
Lists every individual ad item attached to a specified campaign ID.

### create_campaign
Builds an entirely new campaign structure in Taboola.

### get_current_user
Fetches the profile details and status of the user linked to the connected Taboola account.

### get_campaign
Retrieves all current details for one specific, known campaign ID.

### get_top_campaign_content_report
Identifies and reports on the best-performing content pieces within a specific campaign.

### update_campaign
Modifies parameters like budgets, CPC, or status for an existing campaign.

### get_campaign_summary_report
Generates a detailed performance report for an account or campaign, grouped by time period (day/week/month).

### list_campaigns
Returns a comprehensive list of all campaigns available within the linked account(s).

### create_campaign_item
Adds a specific ad creative or URL to an existing campaign item.

## Prompt Examples

**Prompt:** 
```
List all my Taboola accounts.
```

**Response:** 
```
I've retrieved your accounts. You have access to: 'Global_Marketing_US' (ID: act-9821) and 'EMEA_Expansion' (ID: act-4432). Which one would you like to manage?
```

**Prompt:** 
```
Get a summary report for account 'act-9821' grouped by day.
```

**Response:** 
```
Fetching the daily summary for 'act-9821'... For the last period, you had 1.2M impressions, 4.5k clicks (0.37% CTR), and a total spend of $2,140. Would you like to see the top-performing items for this account?
```

**Prompt:** 
```
Update campaign 'camp-556' in account 'act-9821' to change the CPC to '0.45'.
```

**Response:** 
```
Updating campaign settings... The CPC for 'camp-556' has been successfully updated to 0.45. The campaign remains active with its current daily cap.
```

## Capabilities

### Create Campaign Structures
Build new ad campaigns using the `create_campaign` tool.

### Adjust Ad Budget and Status
Modify existing campaign settings, like changing CPC or updating budgets via `update_campaign`.

### Manage Specific Ads
Add new creatives or list current ad assets within a campaign using `create_campaign_item` and `list_campaign_items`.

### Get Performance Metrics
Pull detailed performance summaries, such as daily reports (`get_campaign_summary_report`) or content-specific breakdowns (`get_top_campaign_content_report`).

### Audit Accounts and Users
Check which accounts you have access to (`list_allowed_accounts`) and verify your current user details (`get_current_user`).

## Use Cases

### Spotting Budget Problems
A marketer notices spending is spiking in one region. Instead of logging into Backstage, they ask their agent: 'What was the summary report for account act-9821 grouped by day?' The agent calls `get_campaign_summary_report`, showing a spike on Thursday. They then immediately follow up: 'Update campaign camp-556 to reduce its daily cap.' The problem is solved in minutes, without switching tabs.

### Onboarding New Ads
An ad ops specialist has five new landing pages and needs to test them. They ask the agent: 'Create three new ads for campaign ABC using these URLs.' The agent calls `create_campaign_item` three times, handling the necessary data inputs and confirming that the assets are live.

### Pre-Flight Account Check
Before running a major reporting cycle, an engineer needs to know if they have access to both US and EMEA accounts. They simply ask: 'What Taboola accounts can I see?' The agent calls `list_allowed_accounts`, confirming all necessary IDs are available for the job.

### Identifying Best Content
A campaign is underperforming, but the marketer isn't sure why. They ask: 'Show me which content pieces are actually driving clicks for this failing campaign.' The agent calls `get_top_campaign_content_report`, pointing them to a specific asset they need to adjust or replace.

## Benefits

- Audit all access points. Use `list_allowed_accounts` to quickly verify which Taboola accounts are active, eliminating the need to check multiple backends just for permissions.
- React instantly to performance dips. Pull a daily summary using `get_campaign_summary_report`, then immediately use `update_campaign` to adjust bids—all in one conversation thread.
- Build assets on the fly. If you need a new ad, your agent can call `create_campaign_item` and handle the required URLs and thumbnails without you leaving Cursor or Claude.
- Deep reporting insights. Don't just look at totals; use `get_top_campaign_content_report` to pinpoint exactly which content assets are driving clicks for a specific campaign.
- Full lifecycle control. The ability to both `list_campaigns` and then `create_campaign` means you can manage your entire ad strategy—from idea to execution—inside the agent.

## How It Works

The bottom line is: you talk to your AI agent, and it talks directly to Taboola's backend, getting you the data instantly.

1. Subscribe to the Taboola server and provide your Client ID and Secret.
2. Your AI agent calls a tool, like `list_campaigns`, which sends a request to the Taboola API.
3. The server processes the data and returns structured JSON results—like campaign IDs or performance numbers—back to your chat client.

## Frequently Asked Questions

**How do I list my Taboola accounts using the `list_allowed_accounts` tool?**
You simply ask your agent to run `list_allowed_accounts`. It returns a clean list of all IDs and names you have access to manage, so you know exactly where to start.

**What is the difference between `create_campaign` and `update_campaign`?**
`create_campaign` builds an entirely new structure from scratch. Use `update_campaign` when the campaign already exists, but you need to change its parameters—like adjusting the budget or CPC.

**Can I get reports for specific ad content using `get_top_campaign_content_report`?**
Yes. This tool narrows down general campaign metrics to focus only on which individual pieces of content (ads) are performing best, helping you figure out what's working.

**If I want to check my current user details, should I use `get_current_user`?**
Yep. Call `get_current_user`. It pulls the basic profile information for your connected Taboola account right into the chat, so you don't have to check it manually.

**What credentials do I need to use any tool, like `get_campaign`?**
You must provide a valid Taboola Client ID and Client Secret when connecting the server. These keys authorize your AI agent to access and manage your advertising accounts.

**Can I filter results when calling `list_campaigns` or `list_allowed_accounts`?**
Yes, you pass specific filters like status (active/paused) or date ranges directly into the tool parameters. This lets your AI client narrow down results immediately instead of processing everything.

**What information is required when I use the `create_campaign_item` tool?**
You need to provide at least a new URL and a corresponding thumbnail for the ad. You also have to specify which existing campaign ID the item should be attached to.

**If I run `get_campaign_summary_report` for a very long period, how is the data handled?**
The server handles large time spans by paginating the report results. If your agent hits an API rate limit, it needs to wait and retry the request after a short delay.

**Can I see how my campaigns are performing across different time periods?**
Yes! Use the `get_campaign_summary_report` tool. You can specify the `account_id` and a `dimension` (like day, week, or month) to get a detailed breakdown of metrics like clicks, impressions, and spend.

**How do I add a new ad to an existing campaign?**
Simply use the `create_campaign_item` action. Provide the `account_id`, `campaign_id`, and the `url` of the content you want to promote. You can also optionally include a custom title and thumbnail URL.

**Is it possible to pause or update the budget of a campaign?**
Yes. The `update_campaign` tool allows you to modify the `daily_cap`, `cpc`, and the `is_active` status of any campaign by providing its ID and the target account ID.