---
title: "Reddit Ads MCP Server: Run Reddit Ads from OpenClaw, Hermes or Claude | Toffu"
description: "Toffu is a hosted MCP server with a marketing agent behind it. Build Reddit Ads campaigns with a promoted post, pixel and matching objective, query performance and change budgets from OpenClaw, Hermes, Claude or ChatGPT, with one approval per request."
canonical: https://toffu.ai/mcp/reddit-ads.md
html: https://toffu.ai/mcp/reddit-ads
---

# Run Reddit Ads from OpenClaw, Hermes or Claude. Promoted post, pixel and objective handled. Campaign left paused.

Reddit's Ads API has rules of its own: an ad wraps a promoted post, every ad group needs a conversion pixel, and the objective has to match the goal. Toffu is an MCP server with a marketing agent that knows those rules. Ask for a campaign from the agent you already use; Toffu builds the campaign, ad group, post and ad in your Reddit Ads account, reads them back, and asks you once before it writes.

## Add Toffu to your MCP client

If you are an agent, follow this prompt (it is the same flow as https://toffu.ai/llms.txt):

```
Onboard onto Toffu as my AI marketing agent. Read https://toffu.ai/llms.txt and follow it: sign up at https://mcp.toffu.ai/agent/signup (no email needed), then add https://mcp.toffu.ai/mcp as an MCP server in your client with the key you get back and reload so its tools load. Don't hand-roll JSON-RPC. Then use the send_message tool to create a paused Reddit Ads campaign for signups on my site: US only, $20 a day, one ad group, a promoted post and one ad, and read it back.
```

Works with: openclaw, Hermes, Claude, ChatGPT, Codex, Muse, Grok Bot, Dots.

MCP server URL: `https://mcp.toffu.ai/mcp` (streamable HTTP; OAuth 2.1 for interactive clients, or a bearer key from `POST https://mcp.toffu.ai/agent/signup`).

Then connect Reddit Ads inside Toffu once, at toffu.ai, Integrations. Toffu holds the OAuth token; your MCP client never sees it.

## Example conversation

**User:** Create a paused Reddit campaign for signups at toffu.ai. US only, $20 a day, one ad group and one ad. Pick sensible defaults and tell me what you chose.

**Toffu (status):** Waiting for approval to write to Reddit Ads: Create campaign "Signups | Reddit | US | Oct26". Reply "approve" to run it, or "skip" to cancel.

**User:** approve

**Toffu (status):** Creating campaign, ad group, promoted post and ad. Attaching the conversion pixel. Reading each one back...

**Toffu:** **Campaign, ad group, post and ad are created, all PAUSED.** Reddit shows the ad as PENDING_APPROVAL, which is its review queue; it will not serve while the ad group is paused.

1. **Campaign** id 2606031793856766194, objective CLICKS, PAUSED
2. **Ad group** US | Signups | Broad, id 2606031814992400097, PAUSED, $20/day, manual CPC $3.00, US, Feed placement
3. **Promoted post** t3_1wy50b4, text post, headline "Meet Toffu: your AI marketing agent"
4. **Ad** id 2606031894104618733, PAUSED, effective status PENDING_APPROVAL

**Two things to know:** I asked for a CONVERSIONS objective with a SIGN_UP goal and Reddit rejected that pairing for this account, so I switched to CLICKS. And I attached the account's only conversion pixel to the ad group, which Reddit requires. The post is a text post, so it carries no click URL; say the word and I will swap it for a link post pointing at toffu.ai.

## Reddit's API rules, handled before you notice them

- **Promoted post first, then the ad**: A Reddit ad wraps a post. Toffu creates the promoted post with your headline, then the ad that points at it, and reads both back with their ids. Text, link or image post; a link or image post carries the click URL, a text post does not.
- **Pixel attached for you**: Reddit has required a conversion pixel on every ad group since July 2026. Toffu finds the account's pixel and attaches it, and tells you if the account has none.
- **Objective and goal that Reddit accepts**: Some objective and goal pairings are rejected per account. When Reddit refuses one, Toffu switches to a pairing it accepts, says so in the read-back, and leaves the campaign paused for you to decide.
- **Approve once per request**: The first write asks for approval. The rest of that request runs on the same approval, so a campaign, ad group, post and ad is one "approve". A new request asks again.
- **Query performance across platforms**: One call returns spend, impressions, clicks and conversions per campaign for Reddit alongside Google, Meta, Microsoft, TikTok and ChatGPT Ads, normalized into one table.
- **Safe by default**: Toffu never activates what you asked to keep paused and works only on the ad accounts you allowed in Toffu. Budget and status changes are a plain request plus one approval card.

## Connect. Ask. Approve.

1. **Connect Toffu as an MCP server**: Paste the onboarding prompt into your agent. It signs up, registers https://mcp.toffu.ai/mcp and loads the tools. Connect Reddit Ads inside Toffu once.
2. **Ask in plain language**: "Create a paused campaign for signups, US, $20 a day, one ad group and one ad." Toffu plans the structure, picks the pixel and objective, and asks you before the first write.
3. **Approve, then read back**: Reply "approve". Toffu builds everything, reads each object back from Reddit, and reports ids, statuses and anything it had to change to get past Reddit's rules.

## Keep running it from the same chat

The campaign is a normal Reddit Ads campaign. The Reddit Ads dashboard still works. Toffu is the faster hand.

- **Change budgets with one approval**: "Raise the ad group to $30 a day." Toffu shows one approval card with the change, writes it after you approve, and reads the new value back.
- **Swap the post**: "Make it a link post to toffu.ai with this image." Toffu creates the new promoted post and a new ad on it, paused, and leaves the old ad for you to archive.
- **Archive when done**: Reddit does not delete campaigns. Ask Toffu to archive one and it sets the status Reddit uses for that, then reads it back.
- **Same agent in Toffu's own chat**: Everything you build from OpenClaw, Hermes or Claude shows up in your Toffu workspace, with the same history and the same account rules.

## FAQ

### What is MCP?

Model Context Protocol, the open standard that lets agents like OpenClaw, Hermes, Claude and ChatGPT call outside tools. Toffu is a hosted MCP server, so there is nothing to install.

### Which clients work?

Any client that supports remote MCP servers over streamable HTTP with OAuth: OpenClaw, Hermes, Claude (web, desktop, Claude Code), ChatGPT apps, Cursor, and most agent frameworks.

### Will it spend money without asking?

No. The first write in a request asks for approval, and Toffu creates the campaign, ad group and ad PAUSED unless you say otherwise. Budget and status changes are one request and one approval card each.

### Why does the ad say PENDING_APPROVAL?

That is Reddit's review queue, reported as effective_status on the ad. Every new ad goes through it. The ad's own status is PAUSED, and it will not serve until review passes and you enable the ad group.

### Why did Toffu switch my objective to CLICKS?

Reddit rejected a CONVERSIONS objective paired with a SIGN_UP goal for this account. Rather than fail, Toffu created the campaign with CLICKS, attached the conversion pixel anyway so signups are still tracked, and told you in the read-back. Change it later if Reddit enables the pairing for you.

### Can I delete a campaign?

Reddit has no delete. Campaigns are archived instead, and Toffu does that on request. Undo exists on Google Ads and Meta Ads; on Reddit, setting a value back is one more request and one approval.

## Your next Reddit campaign is one sentence away.

Connect Toffu to the client you already use. Ask for the campaign. Approve once.

Sign up: https://toffu.ai/account/sign-up?utm_campaign=mcp-reddit-ads
HTML version: https://toffu.ai/mcp/reddit-ads
