Skills reddit-ads-cli
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bin-huang/reddit-ads-cli" ~/.claude/skills/clawdbot-skills-reddit-ads-cli && rm -rf "$T"
manifest:
skills/bin-huang/reddit-ads-cli/SKILL.mdsource content
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 --help # List accessible ad accounts reddit-ads-cli accounts # List 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:
flag (per-command)--credentials <path>- Environment variable:
REDDIT_ADS_ACCESS_TOKEN - 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<version> (by /u/<username>)). Reddit rate-limits requests without a proper User-Agent.
When using environment variables:
-- requiredREDDIT_ADS_ACCESS_TOKEN
-- optionalREDDIT_ADS_CLIENT_ID
-- optionalREDDIT_ADS_CLIENT_SECRET
-- optional, for User-AgentREDDIT_ADS_USERNAME
Before 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 accounts # Get 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 ACTIVE # List 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 PAUSED # List 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
-- filter by status (ACTIVE, PAUSED, etc.)--status <status>
adgroups options
-- filter by campaign ID--campaign-id <id>
-- filter by status (ACTIVE, PAUSED, etc.)--status <status>
ads options
-- filter by ad group ID--ad-group-id <id>
-- filter by campaign ID--campaign-id <id>
-- filter by status (ACTIVE, PAUSED, etc.)--status <status>
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,ctr # Ad 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_York # Account-level report reddit-ads-cli report t2_abc123 \ --start-date 2026-03-01 \ --end-date 2026-03-15 \ --level ACCOUNT # Ad-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, YYYY-MM-DD (required)--start-date <date>
-- end date, YYYY-MM-DD (required)--end-date <date>
-- report level: ACCOUNT, CAMPAIGN, AD_GROUP, AD (default: CAMPAIGN)--level <level>
-- comma-separated metrics (default:--metrics <metrics>
). Other metrics shown in examples:impressions,clicks,spend
,ecpm
. The CLI passes metric names directly to the Reddit Ads API without validation. Refer to the Reddit Ads API docs for all available metrics.ctr
-- filter by campaign ID--campaign-id <id>
-- filter by ad group ID--ad-group-id <id>
-- timezone (e.g., America/New_York)--timezone <tz>
Creatives
# List ad creatives for an account (supports pagination) reddit-ads-cli creatives t2_abc123 reddit-ads-cli creatives t2_abc123 --limit 50 --offset 10 # Get a specific creative reddit-ads-cli creative t2_abc123 creative_xyz
creatives options
-- results per page (default: 25)--limit <n>
-- start index (default: 0)--offset <n>
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
-- results per page (default: 25)--limit <n>
-- start index (default: 0)--offset <n>
Pixels & conversion tracking
# List conversion pixels for an account reddit-ads-cli pixels t2_abc123 # List 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 50 # List interest targeting categories reddit-ads-cli interests # List geographic targeting options (optionally search) reddit-ads-cli geos reddit-ads-cli geos --query "United States"
subreddits options
-- search query (required)--query <q>
-- results per page (default: 25)--limit <n>
geos options
-- search query (optional)--query <q>
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
- Run
to find accessible accountsreddit-ads-cli accounts - Run
to list campaignsreddit-ads-cli campaigns <account-id> - Use
for a performance snapshotreddit-ads-cli report <account-id> --start-date ... --end-date ...
When the user asks for deep analysis
- Start with an account-level report (
) to see overall performance--level ACCOUNT - Drill down to
to identify top/bottom campaigns--level CAMPAIGN - Further drill down with
or--level AD_GROUP
for underperforming campaigns--level AD - Filter by
or--campaign-id
to focus on specific entities--ad-group-id - Cross-reference with
to review ad contentcreatives
When the user asks about creative performance
- Run
withreport
to get ad-level metrics--level AD - Use
to find the ad detailsads - Use
andcreatives
to inspect the actual creative contentcreative
When the user asks about targeting options
- Use
to discover targetable subredditssubreddits --query <topic> - Use
to see available interest categoriesinterests - Use
to explore geographic targeting optionsgeos
When the user asks about conversion tracking
- Run
to list active conversion pixelspixels - Use
with a pixel ID to check what events are being trackedpixel-events - Use
with conversion-related metrics to see performancereport
When the user asks about audiences
- Use
to list existing custom audiencescustom-audiences - Paginate through results using
and--limit--offset
Error handling
- Authentication errors -- ask the user to verify their access token; check that
exists and contains a valid~/.config/reddit-ads-cli/credentials.jsonaccess_token - Credentials not found -- the CLI looks for credentials in three places (flag, env var, default file); ensure at least one is configured
- Empty reports -- check date range, entity status, and whether the account had active ads in the period
- Rate limiting -- Reddit rate-limits requests without a proper User-Agent; ensure
is set in credentialsusername - Unknown command -- run
to see available commandsreddit-ads-cli --help