Reddit Ads
Reddit Ads API for community-driven advertising campaigns
13 tools available
Installation
Claude Desktop
{
"mcpServers": {
"hopkin-reddit-ads": {
"url": "https://mcp.hopkin.ai/reddit-ads/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
CLI
npm install -g @hopkin/cli
hopkin auth set-key hpk_live_...
hopkin reddit ping
Platform Overview
The Reddit Ads MCP server enables AI assistants to manage and analyze Reddit advertising campaigns through the Reddit Ads API v3. It provides read-only access to campaigns, ad groups, ads, and custom audiences with deep subreddit-level targeting insights. By combining community-driven targeting with performance analytics, users can optimize ad spend and reach niche communities at scale.
Your prompt → Claude + Hopkin → Reddit Ads API
↓
Campaigns & Ad Groups
Subreddit Targeting
Community Performance
Budget & Bid Management
Common Workflows
Performance Reporting
"Show me performance by subreddit for my tech campaign over the last month"
Calls reddit_ads_get_performance_report with breakdown: ['community'] to slice metrics by subreddit. Returns impressions, clicks, spend, and engagement segmented by subreddit, making it easy to identify which communities drive the best ROI.
"What was my account's total spend and conversion rate from March 1-31?"
Calls reddit_ads_get_account_summary with the date range. Returns aggregate metrics including spend, impressions, clicks, and key performance indicators across all campaigns and ad groups in the account.
"Break down the performance of campaign X by both date and device type"
Calls reddit_ads_get_performance_report with breakdown: ['date', 'device_os'] to see how performance varies by day and device. Reddit's API supports up to 3 breakdown dimensions for fine-grained analysis.
Campaign & Ad Group Management
"List all my active Reddit campaigns and show their daily budgets"
Calls reddit_ads_list_campaigns with status: ['ACTIVE'] and returns name, status, objective, daily budget (in micro units), and lifetime budget. Results are cached and include pagination cursors for large account portfolios.
"Show me the ad groups in my product launch campaign with their subreddit targeting"
Calls reddit_ads_list_ad_groups with campaign_id parameter. Returns ad group details including bid strategy, bid amounts, and targeting configuration which prominently displays subreddit targeting lists.
"Find all paused ads in the tech ad group and get their headlines"
Calls reddit_ads_list_ads with ad_group_id and status: ['PAUSED']. Returns creative type, headline, and click/post URLs. Useful for auditing inactive creative or understanding why ads were paused.
Community Targeting
"Which subreddits are getting the most impressions across my account?"
Calls reddit_ads_get_performance_report with breakdown: ['community'] to see a ranked list of subreddits by impression volume. Identify high-performing communities and expand budget to top performers.
"Show me the custom audiences I've built for targeting"
Calls reddit_ads_list_custom_audiences to list all available audience segments. Returns audience type, size, and creation date. Useful for reviewing which interest-based or lookalike audiences exist for reuse across campaigns.
Recipes
"Analyze my spending by campaign and subreddit, then tell me which combination has the lowest cost per click"
Calls reddit_ads_get_performance_report with breakdown: ['campaign', 'community']. Returns performance metrics segmented by both campaign and subreddit, allowing comparison of cost-per-click metrics across different community segments within each campaign.
"Get a summary of my Q1 performance, then list all active campaigns and show which had the highest spend"
First calls reddit_ads_get_account_summary for date range 2024-01-01 to 2024-03-31. Then calls reddit_ads_list_campaigns with status: ['ACTIVE']. Compare the budget figures from both calls to identify which active campaign dominated spend during the quarter.
"Show me all ad groups with their targeting, then pull a detailed performance report filtered to just those ad group IDs"
First calls reddit_ads_list_ad_groups to fetch all ad groups and inspect their targeting configuration. Then calls reddit_ads_get_performance_report with those ad_group_ids and breakdown: ['community', 'ad_group'] to see detailed metrics per subreddit per ad group.
"List all my ads, filter to only inactive ones, then check their parent ad group details including targeting"
Calls reddit_ads_list_ads with status: ['PAUSED', 'ARCHIVED'] to get inactive ads. Extract ad_group_id from results, then call reddit_ads_list_ad_groups with those IDs to see the targeting configuration and bid strategy that shaped those ads.
"Generate a weekly performance report breaking down by both date and device, then compare mobile vs desktop spend efficiency"
Calls reddit_ads_get_performance_report with breakdown: ['date', 'device_os'] and a 7-day date range. Returns spend, impressions, and clicks segmented by calendar date and device type (iOS, Android, Windows, etc.), allowing manual comparison of mobile vs desktop ROI.
"Check if my account has any custom audiences, then list ad groups to see which ones use interest-based targeting"
First calls reddit_ads_list_custom_audiences to see available audience segments. Then calls reddit_ads_list_ad_groups and inspect the targeting field to identify which ad groups have interest or audience_id targeting applied versus pure subreddit targeting.
"Export budget and performance data: list all campaigns with their daily budgets, get account-level spend, then performance by campaign"
Calls reddit_ads_list_campaigns to capture all campaign budgets. Calls reddit_ads_get_account_summary for total account spend. Calls reddit_ads_get_performance_report with breakdown: ['campaign'] to get per-campaign metrics. Combine results into a unified export showing budget allocation vs actual spend per campaign.
Tips
1. Subreddit targeting is the Reddit differentiator — Use breakdown: ['community'] in performance reports to see subreddit-level metrics. Reddit's API is one of the few platforms that exposes performance by specific community, making it ideal for niche audience analysis.
2. Budget values are in micro units — Divide daily_budget_micro and lifetime_budget_micro by 1,000,000 to get the actual currency amount. For example, 5000000 micro equals $5.00 USD.
3. Cache is always fresh — List tools (list_campaigns, list_ad_groups, list_ads, list_custom_audiences) cache results and refresh in the background. Pass refresh: true to force a synchronous fetch if you need the absolute latest data immediately.
4. Targeting is nested in ad groups — The targeting object within ad group details contains subreddit IDs, interest keywords, audience IDs, and placement preferences. This is where you'll find the deepest insight into campaign strategy since ad groups are where Reddit-specific constraints (like subreddit lists) are configured.
Tools
account-summary
reddit_ads_get_account_summary Get Reddit Ads Account Summary
Get a high-level performance summary for a Reddit ad account over a date range.
| Parameter | Type | Description |
|---|---|---|
account_id required | string | Reddit ad account ID. |
date_start required | string | Start date in YYYY-MM-DD format. |
date_end required | string | End date in YYYY-MM-DD format. |
reason required | string | Why this tool call is needed |
ad-accounts
reddit_ads_list_ad_accounts List Reddit Ad Accounts
List Reddit ad accounts accessible to the authenticated user.
| Parameter | Type | Description |
|---|---|---|
reason required | string | Why this tool call is needed |
5 optional parameters
| Parameter | Type | Description |
|---|---|---|
account_id | string | Fetch a single ad account by ID. |
account_ids | array | Fetch specific accounts by IDs. |
limit | integer | |
cursor | string | Opaque pagination cursor. |
refresh | boolean |
ad-groups
reddit_ads_list_ad_groups List Reddit Ad Groups
List Reddit ad groups for an ad account. Shows targeting, bid strategy, and campaign association.
| Parameter | Type | Description |
|---|---|---|
account_id required | string | Reddit ad account ID. |
reason required | string | Why this tool call is needed |
7 optional parameters
| Parameter | Type | Description |
|---|---|---|
ad_group_id | string | Fetch a single ad group by ID. |
ad_group_ids | array | Fetch specific ad groups by IDs. |
campaign_id | string | Filter by parent campaign ID. |
status | array | Filter by status. |
limit | integer | |
cursor | string | Opaque pagination cursor. |
refresh | boolean |
ads
reddit_ads_list_ads List Reddit Ads
List Reddit ads for an ad account. Shows creative type, headline, click URL, and status.
| Parameter | Type | Description |
|---|---|---|
account_id required | string | Reddit ad account ID. |
reason required | string | Why this tool call is needed |
7 optional parameters
| Parameter | Type | Description |
|---|---|---|
ad_id | string | Fetch a single ad by ID. |
ad_ids | array | Fetch specific ads by IDs. |
ad_group_id | string | Filter by parent ad group ID. |
status | array | Filter by status. |
limit | integer | |
cursor | string | Opaque pagination cursor. |
refresh | boolean |
auth
reddit_ads_check_auth_status Check Reddit Ads Authentication Status
Troubleshoot authentication issues and get user profile info. Only use when another tool fails with a permission or authentication error — do NOT call proactively.
| Parameter | Type | Description |
|---|---|---|
reason required | string | Why this tool call is needed |
reddit_ads_ping Ping Reddit Ads MCP Server
Health check for the Reddit Ads MCP server.
| Parameter | Type | Description |
|---|---|---|
reason required | string | Why this tool call is needed |
1 optional parameter
| Parameter | Type | Description |
|---|---|---|
message | string | Optional message to echo back |
campaigns
reddit_ads_list_campaigns List Reddit Campaigns
List Reddit ad campaigns for an ad account. Shows name, status, objective, and budget information.
| Parameter | Type | Description |
|---|---|---|
account_id required | string | Reddit ad account ID. |
reason required | string | Why this tool call is needed |
7 optional parameters
| Parameter | Type | Description |
|---|---|---|
campaign_id | string | Fetch a single campaign by ID. |
campaign_ids | array | Fetch specific campaigns by IDs. |
status | array | Filter by status. |
search | string | Search by campaign name (case-insensitive). |
limit | integer | |
cursor | string | Opaque pagination cursor. |
refresh | boolean |
custom-audiences
reddit_ads_list_custom_audiences List Reddit Custom Audiences
List Reddit custom audiences for an ad account. Shows name, type, size, and status.
| Parameter | Type | Description |
|---|---|---|
account_id required | string | Reddit ad account ID. |
reason required | string | Why this tool call is needed |
5 optional parameters
| Parameter | Type | Description |
|---|---|---|
audience_id | string | Fetch a single custom audience by ID. |
audience_ids | array | Fetch specific audiences by IDs. |
limit | integer | |
cursor | string | Opaque pagination cursor. |
refresh | boolean |
feedback
reddit_ads_developer_feedback Submit Developer Feedback
Submit feedback about missing tools, improvements, bugs, or workflow gaps in the Reddit Ads MCP toolset. Not for user-facing issues like auth or API errors.
| Parameter | Type | Description |
|---|---|---|
feedback_type required | string | Feedback category: new_tool (request new capability), improvement (enhance existing tool), bug (report issue), workflow_gap (missing workflow) |
title required | string | Concise title summarizing the feedback |
description required | string | What is needed and why |
reason required | string | Why this tool call is needed |
3 optional parameters
| Parameter | Type | Description |
|---|---|---|
current_workaround | string | Current workaround, if any |
priority | string | Impact level: low (nice-to-have), medium (improves workflow), high (blocking issue) |
interface | string | Interface the feedback originated from: MCP (default) or CLI |
preferences
reddit_ads_store_preference Store Reddit Ads Preference
Store a persistent preference for a Reddit ad entity. Use when you infer a recurring preference about analysis, reporting, or management. Updates existing keys.
| Parameter | Type | Description |
|---|---|---|
entity_type required | string | Type of ad entity: ad_account, campaign, ad_set (Meta ad sets / Google ad groups), or ad |
entity_id required | string | The platform entity ID (e.g. act_123456, 23842453456789) |
key required | string | Preference key (e.g. preferred_conversion_metric, budget_alert_threshold) |
reason required | string | Why this tool call is needed |
3 optional parameters
| Parameter | Type | Description |
|---|---|---|
value | unknown | Preference value — string, number, boolean, or JSON object |
source | string | Who set this preference: agent (default), user, or system |
note | string | Optional context about why this preference was set |
reddit_ads_get_preferences Get Reddit Ads Preferences
Get all stored preferences for a Reddit ad entity. Preferences are also auto-attached to list tool responses as _stored_preferences.
| Parameter | Type | Description |
|---|---|---|
entity_type required | string | Type of ad entity: ad_account, campaign, ad_set, or ad |
entity_id required | string | The platform entity ID |
reason required | string | Why this tool call is needed |
reddit_ads_delete_preference Delete Reddit Ads Preference
Delete a stored preference by key. No-op if it doesn't exist.
| Parameter | Type | Description |
|---|---|---|
entity_type required | string | Type of ad entity: ad_account, campaign, ad_set, or ad |
entity_id required | string | The platform entity ID |
key required | string | The preference key to delete |
reason required | string | Why this tool call is needed |
reporting
reddit_ads_get_performance_report Get Reddit Ads Performance Report
Get a performance report for a Reddit ad account over a date range, with optional breakdowns and entity filters.
| Parameter | Type | Description |
|---|---|---|
account_id required | string | Reddit ad account ID. |
date_start required | string | Start date in YYYY-MM-DD format. |
date_end required | string | End date in YYYY-MM-DD format. |
reason required | string | Why this tool call is needed |
4 optional parameters
| Parameter | Type | Description |
|---|---|---|
campaign_ids | array | Filter to specific campaign IDs. |
ad_group_ids | array | Filter to specific ad group IDs. |
ad_ids | array | Filter to specific ad IDs. |
breakdown | array | Up to 3 breakdown dimensions. "community" shows subreddit-level data. |