Reddit Ads CLI
by @bin-huang
Reddit Ads data analysis and reporting via reddit-ads-cli. Use when the user wants to check Reddit ad performance, list campaigns/ad groups/ads, explore subr...
clawhub install reddit-ads-cliπ About This Skill
name: reddit-ads-cli description: > Reddit Ads data analysis and reporting via reddit-ads-cli. Use when the user wants to check Reddit ad performance, list campaigns/ad groups/ads, explore subreddit and interest targeting, track conversion pixels, or generate reports. Triggers: "Reddit Ads", "Reddit ad performance", "Reddit campaign stats", "Reddit ad spend", "Reddit report", "Reddit pixel", "Reddit audience", "Reddit subreddit targeting", "Reddit interest targeting", "Reddit creatives", "Reddit ad account", "Reddit ad groups".
Reddit Ads CLI Skill
You have access to reddit-ads-cli, a read-only CLI for the Reddit Ads API (v3). Use it to query ad accounts, list campaigns and ads, generate performance reports, inspect creatives, manage custom audiences, track conversion pixels, and explore targeting options (subreddits, interests, geos).
Quick start
# Check if the CLI is available
reddit-ads-cli --helpList accessible ad accounts
reddit-ads-cli accountsList campaigns for an account
reddit-ads-cli campaigns t2_abc123
If the CLI is not installed, install it:
npm install -g reddit-ads-cli
Authentication
The CLI requires a Reddit OAuth access token. Credentials are resolved in this order:
1. --credentials flag (per-command)
2. Environment variable: REDDIT_ADS_ACCESS_TOKEN
3. Auto-detected file: ~/.config/reddit-ads-cli/credentials.json
The credentials file format:
{
"access_token": "YOUR_ACCESS_TOKEN",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"username": "your_reddit_username"
}
Only access_token is required. The username field is used to build the User-Agent string (cli:reddit-ads-cli:v). Reddit rate-limits requests without a proper User-Agent.
When using environment variables:
REDDIT_ADS_ACCESS_TOKEN -- requiredREDDIT_ADS_CLIENT_ID -- optionalREDDIT_ADS_CLIENT_SECRET -- optionalREDDIT_ADS_USERNAME -- optional, for User-AgentBefore running any command, verify credentials are configured by running reddit-ads-cli accounts. If it fails with a credentials error, ask the user to set up authentication.
Entity hierarchy
Ad Account (t2_XXXXX)
+-- Campaign
| +-- Ad Group
| +-- Ad
+-- Creative
+-- Custom Audience
+-- Pixel
+-- Pixel Events
Ad account IDs use the t2_ prefix (e.g., t2_abc123).
Output format
All commands output pretty-printed JSON by default. Use --format compact for single-line JSON (useful for piping).
Commands reference
Account discovery
# List all ad accounts accessible by the authenticated user
reddit-ads-cli accountsGet details of a specific ad account
reddit-ads-cli account t2_abc123
Campaign hierarchy
# List campaigns (optionally filter by status)
reddit-ads-cli campaigns t2_abc123
reddit-ads-cli campaigns t2_abc123 --status ACTIVEList ad groups (optionally filter by campaign or status)
reddit-ads-cli adgroups t2_abc123
reddit-ads-cli adgroups t2_abc123 --campaign-id campaign_abc
reddit-ads-cli adgroups t2_abc123 --status PAUSEDList ads (optionally filter by ad group, campaign, or status)
reddit-ads-cli ads t2_abc123
reddit-ads-cli ads t2_abc123 --ad-group-id adgroup_abc
reddit-ads-cli ads t2_abc123 --campaign-id campaign_abc
reddit-ads-cli ads t2_abc123 --status ACTIVE
#### campaigns options
--status -- filter by status (ACTIVE, PAUSED, etc.)#### adgroups options
--campaign-id -- filter by campaign ID--status -- filter by status (ACTIVE, PAUSED, etc.)#### ads options
--ad-group-id -- filter by ad group ID--campaign-id -- filter by campaign ID--status -- filter by status (ACTIVE, PAUSED, etc.)Performance reports
The report command generates performance reports via a POST request. Both --start-date and --end-date are required.
# Campaign-level report (default level)
reddit-ads-cli report t2_abc123 \
--start-date 2026-03-01 \
--end-date 2026-03-15 \
--metrics impressions,clicks,spend,ecpm,ctrAd group level with timezone
reddit-ads-cli report t2_abc123 \
--start-date 2026-03-01 \
--end-date 2026-03-15 \
--level AD_GROUP \
--metrics impressions,clicks,spend \
--campaign-id campaign_abc \
--timezone America/New_YorkAccount-level report
reddit-ads-cli report t2_abc123 \
--start-date 2026-03-01 \
--end-date 2026-03-15 \
--level ACCOUNTAd-level report filtered to a specific ad group
reddit-ads-cli report t2_abc123 \
--start-date 2026-03-01 \
--end-date 2026-03-15 \
--level AD \
--ad-group-id adgroup_abc
#### report options
--start-date -- start date, YYYY-MM-DD (required)--end-date -- end date, YYYY-MM-DD (required)--level -- report level: ACCOUNT, CAMPAIGN, AD_GROUP, AD (default: CAMPAIGN)--metrics -- comma-separated metrics (default: impressions,clicks,spend). Other metrics shown in examples: ecpm, ctr. The CLI passes metric names directly to the Reddit Ads API without validation. Refer to the Reddit Ads API docs for all available metrics.--campaign-id -- filter by campaign ID--ad-group-id -- filter by ad group ID--timezone -- timezone (e.g., America/New_York)Creatives
# List ad creatives for an account (supports pagination)
reddit-ads-cli creatives t2_abc123
reddit-ads-cli creatives t2_abc123 --limit 50 --offset 10Get a specific creative
reddit-ads-cli creative t2_abc123 creative_xyz
#### creatives options
--limit -- results per page (default: 25)--offset -- start index (default: 0)Custom audiences
# List custom audiences (supports pagination)
reddit-ads-cli custom-audiences t2_abc123
reddit-ads-cli custom-audiences t2_abc123 --limit 50 --offset 10
#### custom-audiences options
--limit -- results per page (default: 25)--offset -- start index (default: 0)Pixels & conversion tracking
# List conversion pixels for an account
reddit-ads-cli pixels t2_abc123List events for a specific pixel
reddit-ads-cli pixel-events t2_abc123 pixel_xyz
Targeting options
# Search subreddits available for targeting (--query is required)
reddit-ads-cli subreddits --query gaming
reddit-ads-cli subreddits --query technology --limit 50List interest targeting categories
reddit-ads-cli interestsList geographic targeting options (optionally search)
reddit-ads-cli geos
reddit-ads-cli geos --query "United States"
#### subreddits options
--query -- search query (required)--limit -- results per page (default: 25)#### geos options
--query -- search query (optional)Pagination summary
Commands that support pagination via --limit and --offset: creatives, custom-audiences, subreddits.
Commands without pagination options: accounts, account, campaigns, adgroups, ads, pixels, pixel-events, interests, geos.
Workflow guidance
When the user asks for a quick overview
1. Run reddit-ads-cli accounts to find accessible accounts
2. Run reddit-ads-cli campaigns to list campaigns
3. Use reddit-ads-cli report for a performance snapshot
When the user asks for deep analysis
1. Start with an account-level report (--level ACCOUNT) to see overall performance
2. Drill down to --level CAMPAIGN to identify top/bottom campaigns
3. Further drill down with --level AD_GROUP or --level AD for underperforming campaigns
4. Filter by --campaign-id or --ad-group-id to focus on specific entities
5. Cross-reference with creatives to review ad content
When the user asks about creative performance
1. Run report with --level AD to get ad-level metrics
2. Use ads to find the ad details
3. Use creatives and creative to inspect the actual creative content
When the user asks about targeting options
1. Use subreddits --query to discover targetable subreddits
2. Use interests to see available interest categories
3. Use geos to explore geographic targeting options
When the user asks about conversion tracking
1. Run pixels to list active conversion pixels
2. Use pixel-events with a pixel ID to check what events are being tracked
3. Use report with conversion-related metrics to see performance
When the user asks about audiences
1. Use custom-audiences to list existing custom audiences
2. Paginate through results using --limit and --offset
Error handling
~/.config/reddit-ads-cli/credentials.json exists and contains a valid access_tokenusername is set in credentialsreddit-ads-cli --help to see available commandsAPI documentation references
π‘ Examples
# Check if the CLI is available
reddit-ads-cli --helpList accessible ad accounts
reddit-ads-cli accountsList campaigns for an account
reddit-ads-cli campaigns t2_abc123
If the CLI is not installed, install it:
npm install -g reddit-ads-cli