# How to connect Reddit Ads to Hermes Agent (no developer app to register)

> Connect Reddit Ads to Hermes Agent with ClawLink: no app at reddit.com/prefs/apps, no client secret, no OAuth exchange to implement. 83 Reddit Ads tools your agent calls from chat.

Web version: https://claw-link.dev/hermes/reddit-ads

Most guides for giving Hermes Agent Reddit Ads access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical Reddit Ads setup: pair once in the browser and your always-on Hermes agent can act on Reddit Ads for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.

**Start here — paste this into Hermes to set up ClawLink:**

> Set up ClawLink for Hermes and tell me when it's ready.
> 1. Install the plugin: `hermes plugins install ClawLink-HQ/hermes-plugin --enable`
> 2. Start pairing with `hermes clawlink begin`. It prints an approval link, so show me the link and stop, don't wait.
> 3. I'll approve it in my browser, then reply "approved".
> 4. When I say approved, finish setup: `hermes clawlink finish`
> 5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.

## Setup

It takes three steps to connect Hermes to Reddit Ads.

1. **Install ClawLink** — add the plugin to Hermes Agent once.
2. **Connect Reddit Ads to Hermes Agent (no developer app** — one-click OAuth in the ClawLink dashboard.
3. **Use it from chat** — ask Hermes Agent in plain English.

**Alternative for any agent (no plugin needed):** if the Hermes Agent plugin route isn't available or doesn't work, any AI agent with shell access can use the ClawLink CLI instead:

```bash
npx -y @useclawlink/cli login          # sign in via browser — no API key to paste
npx -y @useclawlink/cli connect reddit-ads  # connect Reddit Ads to Hermes Agent (no developer app (browser OAuth)
npx -y @useclawlink/cli actions reddit-ads  # list available actions
npx -y @useclawlink/cli run reddit-ads <action> --input '<json>'  # execute (add --confirm for writes)
```

### Install by command

The prompt above walks Hermes through this. By hand, it is four commands and a browser approval:

```bash
hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin    # prints an approval link — open it and approve
hermes clawlink finish   # after approving in the browser
hermes clawlink test
```

Then connect Reddit Ads in the [ClawLink dashboard](https://claw-link.dev/dashboard) — a one-click OAuth approval, no API keys.

Verify the connection by asking Hermes:

> Run reddit_ads_get_me, then reddit_ads_list_my_businesses and reddit_ads_list_ad_accounts_by_business. For the ad account I pick, list active campaigns with reddit_ads_list_campaigns and pull last week's spend and CPC with reddit_ads_get_a_report. Sort by spend.

### Using a different agent?

The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:

```bash
npx -y @useclawlink/cli login
```

`login` opens the same browser approval and stores a credential locally. Once Reddit Ads is connected in the dashboard, that agent calls the same 83 Reddit Ads tools over MCP. Full setup for MCP clients and shell agents: [connect apps to any AI agent](https://claw-link.dev/learn/connect-apps-to-any-ai-agent).

## Reddit Ads MCP for Hermes

Looking for a Reddit Ads MCP server for Hermes Agent? ClawLink connects Reddit Ads to Hermes Agent and exposes 83 Reddit Ads tools your agent can call over [MCP](https://claw-link.dev/learn/what-is-an-mcp-server), with [hosted auth](https://claw-link.dev/learn/oauth-for-ai-agents) and nothing to run or maintain yourself. Using OpenClaw instead? The [OpenClaw Reddit Ads integration](https://claw-link.dev/openclaw/reddit-ads) works the same way.

Reddit's own path to its Ads API is the reason most people never finish. You register an application at reddit.com/prefs/apps, note the client id and secret, send the user to /api/v1/authorize, exchange the code at /api/v1/access_token, and keep refreshing from there. That is a weekend of work before a single campaign metric appears. ClawLink connects through Reddit's OAuth flow with an application that is already registered, so you approve access in the browser and the 83 tools below work from Hermes chat. What you still need on Reddit's side is access to the ad account itself, because Reddit grants that to people, not to apps.

## What the Hermes Agent Reddit Ads integration can do

83 Reddit Ads tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 83.

### 30 of 83 Reddit Ads tools for Hermes

| Tool | What it does |
|---|---|
| **Create ad group** `reddit_ads_create_ad_group` | Create a Reddit Ads ad group |
| **Create campaign** `reddit_ads_create_campaign` | Create a Reddit Ads campaign |
| **Create custom audience** `reddit_ads_create_custom_audience` | Create a Reddit Ads custom audience |
| **Create lead gen form** `reddit_ads_create_lead_gen_form` | Create a Reddit Ads lead gen form |
| **Create post** `reddit_ads_create_post` | Create a Reddit Ads post |
| **Create product catalog** `reddit_ads_create_product_catalog` | Create a Reddit Ads product catalog |
| **Do keyword validations** `reddit_ads_do_keyword_validations` | Validate keywords for Reddit Ads |
| **Generate inspiration creative summary** `reddit_ads_generate_inspiration_creative_summary` | Generate creative inspiration for Reddit Ads |
| **Get a report** `reddit_ads_get_a_report` | Get a Reddit Ads report |
| **Get ad account** `reddit_ads_get_ad_account` | Get a Reddit Ads ad account |
| **Get ad account history** `reddit_ads_get_ad_account_history` | Get Reddit Ads ad account history |
| **Get ad group** `reddit_ads_get_ad_group` | Get a Reddit Ads ad group |
| **Get app last fired at** `reddit_ads_get_app_last_fired_at` | Get Reddit Ads app last fired timestamp |
| **Get business** `reddit_ads_get_business` | Get a Reddit Ads business |
| **Get campaign** `reddit_ads_get_campaign` | Get a Reddit Ads campaign |
| **Do geolocation validations** `reddit_ads_do_geolocation_validations` | Validate a list of geolocations for use in Reddit Ads targeting |
| **Get channel planning reach** `reddit_ads_get_channel_planning_reach` | Retrieve estimated reach data for a given set of targeting parameters |
| **Get child funding instruments** `reddit_ads_get_child_funding_instruments` | Retrieve a list of Funding Instrument Allocations for a parent funding instrument |
| **Get custom audience** `reddit_ads_get_custom_audience` | Retrieve a custom audience by ID from Reddit Ads API |
| **Get lead gen form** `reddit_ads_get_lead_gen_form` | Retrieve details for a specific lead generation form by ID from Reddit Ads |
| **Get me** `reddit_ads_get_me` | Get the authenticated member's information from the Reddit Ads API |
| **Get pixel last fired at** `reddit_ads_get_pixel_last_fired_at` | Retrieve the last time conversion events were fired for a specific conversion pixel |
| **Get post** `reddit_ads_get_post` | Retrieve a promoted or organic Reddit post by its ID |
| **Get product catalog** `reddit_ads_get_product_catalog` | Retrieve a specific product catalog by ID from the Reddit Ads API |
| **Get product feed** `reddit_ads_get_product_feed` | Retrieve metadata for a specific product feed by ID |
| **Get product set** `reddit_ads_get_product_set` | Retrieve metadata for a specific product set by ID from the Reddit Ads API |
| **Get profile** `reddit_ads_get_profile` | Retrieve details for a specific profile by ID from the Reddit Ads API |
| **Get saved audience** `reddit_ads_get_saved_audience` | Retrieve a saved audience by ID from Reddit Ads API |
| **Get sk ad network availability** `reddit_ads_get_sk_ad_network_availability` | Get SKAdNetwork IDs availability quota for an iOS app |
| **Get structured post** `reddit_ads_get_structured_post` | Retrieve a structured post by its ID from the Reddit Ads API |

## Example prompts

**See what is running and what it costs**

> Run reddit_ads_get_me, then reddit_ads_list_my_businesses and reddit_ads_list_ad_accounts_by_business. For the ad account I pick, list active campaigns with reddit_ads_list_campaigns and pull last week's spend and CPC with reddit_ads_get_a_report. Sort by spend.

**Find subreddits worth targeting**

> Use reddit_ads_search_communities and reddit_ads_list_communities_suggestions to find subreddits relevant to developer tooling. Show me the ones with enough reach to be worth targeting, and tell me which look off-topic despite matching the keyword.

**Draft a campaign without launching it**

> In the ad account I name, create a paused campaign with reddit_ads_create_campaign called "Q3 developer tools", then one ad group with reddit_ads_create_ad_group targeting the subreddits I list, also paused. Validate my targeting first with reddit_ads_do_keyword_validations and reddit_ads_do_geolocation_validations. Do not create ads or unpause anything.

**Compare ad group performance**

> For my main ad account, list ad groups with reddit_ads_list_ad_groups and pull a 30-day report with reddit_ads_get_a_report broken down by ad group. Tell me which two are carrying the account and which one I should turn off.

## How the Reddit Ads tools behave

From the manifest and from Reddit's account structure. The first two explain most confusing first sessions.

- **The hierarchy is business, then ad account, then campaign.** `reddit_ads_get_me` identifies the connected user, `reddit_ads_list_my_businesses` finds the businesses, and `reddit_ads_list_ad_accounts_by_business` finds the accounts. Skipping to a campaign call with a guessed id is the direct cause of the 403 card above.
- **Reporting is one tool.** `reddit_ads_get_a_report` covers the metrics work rather than a family of per-level tools, so the level and breakdown come from the arguments you give it.
- **Validation tools exist and are worth using before creating.** `reddit_ads_do_keyword_validations` and `reddit_ads_do_geolocation_validations` check targeting before a campaign is built, which is cheaper than creating something Reddit then rejects.
- **Targeting reference data has its own listing tools.** `reddit_ads_list_communities`, `reddit_ads_list_interests`, `reddit_ads_list_geolocations`, `reddit_ads_list_devices`, and `reddit_ads_list_carriers` return the values Reddit accepts. An agent inventing a targeting value gets a rejection that reads like a permissions problem.
- **Audiences split into two kinds.** `reddit_ads_create_custom_audience` builds from data you supply; `reddit_ads_create_saved_audience` saves a targeting definition for reuse. They are not interchangeable.
- **"Post" here means a promoted post.** `reddit_ads_create_post`, `reddit_ads_list_posts`, and `reddit_ads_update_post` operate inside an ad account. Organic submissions and comments belong to the separate [Hermes Reddit integration](https://claw-link.dev/hermes/reddit).
- **Product catalogs are supported.** `reddit_ads_create_product_catalog`, `reddit_ads_create_product_feed`, and `reddit_ads_create_product_set` cover commerce advertising, which is the part of the toolset most people do not know is there.

## ClawLink vs. building it yourself

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Reddit Ads working from chat.

| | Manual | ClawLink |
|---|---|---|
| **Connection flow** | Register a Reddit Ads app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift. | Users connect Reddit Ads through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code. |
| **Ongoing maintenance** | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for Reddit Ads. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| **Agent usability** | You still need to expose the right Reddit Ads actions to the runtime in a format your agent can reliably use. | 83 tools for Reddit Ads are already exposed through ClawLink, so the agent can read and act from chat immediately. |

## ClawLink vs. Composio

Composio also exposes Reddit Ads to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect Reddit Ads in the browser, and the 83 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full [Composio alternatives](https://claw-link.dev/hub/composio-alternatives) comparison.

### Hermes paired but still can't use Reddit Ads
Pairing is a two-step handshake: run `hermes clawlink begin`, approve the link in your browser, then run `hermes clawlink finish`. If you ran finish before approving, or the approval link expired, run `hermes clawlink begin` again to get a fresh link. Confirm the plugin was installed with `--enable`, then verify with `hermes clawlink test`.

### Connection succeeds but no tools appear
Reconnect Reddit Ads from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.

### "Tool schema not loaded yet" error when calling Reddit Ads tools
Reddit Ads tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Reddit Ads call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.

### Reddit Ads returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.

### Reddit Ads returns 403 "insufficient permissions", or reddit_ads_list_ad_accounts_by_business comes back empty
The advice you will find for this assumes you built the integration: check that your token carries the adsread and adsedit scopes, clear the cached token, re-run the OAuth exchange. On this connection the scopes were settled when you approved access, so an empty result almost always means the connected Reddit account is not associated with the ad account. Reddit assigns ad-account access to people through the business that owns it, so a brand new account, or one that was removed from a business, sees nothing while the connection itself reports healthy. Fix it in Reddit Ads by adding your account to the business with a role that covers ads, then retry. The second cause is a placeholder argument: an agent that has not listed anything yet invents an ad account id, and because Reddit's ids are opaque strings the call reaches the API and returns forbidden. Run reddit_ads_get_me and reddit_ads_list_my_businesses first.

Ask the agent to diagnose it:

```text
Run reddit_ads_get_me and tell me which Reddit account is connected. Then run reddit_ads_list_my_businesses and reddit_ads_list_ad_accounts_by_business and show me exactly what came back, including empty lists. Do not retry the failing call until all three have returned.
```

### Reddit Ads returns 401 or an authentication error on a connection that shows as connected
There is no token in your possession to regenerate, so the usual checklist does not apply. On a hosted connection this means the stored authorization stopped being valid on Reddit's side, and the short list of ways that happens is: you revoked the application in your Reddit account settings, you changed your Reddit password, or your account was removed from the business that owns the ad account. Reconnect Reddit Ads from the ClawLink dashboard to replace the authorization. If the same error returns straight after reconnecting, the cause is on the Reddit account rather than the connection, and opening Reddit Ads in a browser as the same account will usually show it.

Ask the agent to diagnose it:

```text
Run reddit_ads_get_me and report the exact error body if it fails. Do not retry the other Reddit Ads calls.
```

### A Reddit Ads tool returns "tool not found", or the agent reaches for a Reddit posting tool
If the name looks right, the catalog had not loaded when the first call went out; schemas load on demand and one retry usually fixes it. If the agent is asking for something like submitting a post or reading a subreddit feed, it is on the wrong integration: this connection covers advertising, and organic Reddit posting and reading live on the separate Reddit integration. Note also that reddit_ads_create_post and reddit_ads_list_posts here refer to promoted posts within an ad account rather than to organic submissions. Most search results for this phrase say Reddit has no official MCP server, which is a statement about Reddit rather than about this connection.

Ask the agent to diagnose it:

```text
List the Reddit Ads tools you actually have available and tell me whether you also have any organic Reddit tools. Then use the exact name for what I asked.
```

### OAuth finished in the browser but the account is still missing
Try reconnecting Reddit Ads and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.

### Is there a Hermes Agent Reddit Ads integration?
Yes. ClawLink is the fastest way to connect Hermes to Reddit Ads: link your Reddit Ads account once in the browser and Hermes Agent can call the Reddit Ads API through 83 ready-made tools — no custom code or token handling.

### How do I connect Reddit Ads to Hermes with ClawLink?
Install the plugin with `hermes plugins install ClawLink-HQ/hermes-plugin --enable`, then pair once: run `hermes clawlink begin`, approve the link in your browser, and run `hermes clawlink finish`. Connect Reddit Ads in the dashboard and Hermes can use it from the next message — no config files or API keys to manage.

### How long does it take to connect Reddit Ads to Hermes Agent?
About two minutes. Sign in, click Connect next to Reddit Ads in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.

### Why use ClawLink instead of wiring Reddit Ads up myself?
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Reddit Ads working from chat.

### Do I need to register a Reddit developer app for this?
No. Registering an app at reddit.com/prefs/apps, holding its client id and secret, and implementing the authorization-code exchange is what you do when you build the integration yourself. Here you sign in to Reddit, approve the access, and the connection exists. The part that is not removed, and cannot be, is Reddit's own permission model: the account you connect must have access to the ad account you want to work with. An app cannot grant you that, and neither can we.

### What access do I need on the Reddit side?
Your Reddit account needs to be associated with the ad account, which in Reddit's business hierarchy means being a member of the business that owns it with a role that permits reading or managing ads. If you run the ads yourself from your own account, you already have this. If someone else set the account up, they add you from Reddit Ads under the business's member settings. The symptom of missing access is specific and worth recognizing: the connection succeeds, and then reddit_ads_list_ad_accounts_by_business comes back empty. That is an access gap, not a broken integration.

### Can the agent spend money?
It can create and modify campaigns, ad groups, and ads, which means it can create things that spend. Treat that as a workflow decision rather than a technical one. Campaign creation here takes several deliberate calls, so nothing launches from a single vague instruction, and the safe pattern is to have the agent create campaigns paused and to review before anything goes live. If you only want analysis, say so and keep the agent on the reporting tools such as reddit_ads_get_a_report and reddit_ads_list_campaigns, which read without changing anything.

### Is it safe to connect an ad account to an AI agent?
The mechanics worth checking are these, and they are more useful than a yes or no. The connection is an OAuth grant that Reddit lists in your account's authorized applications, so revoking it is a click on Reddit's side and does not depend on us. The agent's reach is the named tools on this page rather than an open API session, and the ones that create or modify are individually named, including reddit_ads_create_campaign, reddit_ads_create_ad_group, and reddit_ads_update_campaign. Your Reddit role still bounds everything: an account with read-only access to the business cannot be talked into spending. The risk that no connection model removes is the agent acting on bad input, which is why creating paused and reviewing before launch is the pattern worth keeping.

### Hermes paired but still can't use Reddit Ads
Pairing is a two-step handshake: run `hermes clawlink begin`, approve the link in your browser, then run `hermes clawlink finish`. If you ran finish before approving, or the approval link expired, run `hermes clawlink begin` again to get a fresh link. Confirm the plugin was installed with `--enable`, then verify with `hermes clawlink test`.

## Related

- [ActiveCampaign tools](https://claw-link.dev/hermes/activecampaign) — Marketing automation, CRM, and email marketing
- [Benchmark Email](https://claw-link.dev/hermes/benchmark-email) — Benchmark Email is a comprehensive email marketing platform offering tools for creating, sending, and analyzing email campaigns.
- [Hermes Mailchimp integration](https://claw-link.dev/hermes/mailchimp) — Create email campaigns and manage audiences
