About meta-ads-expert
A routing and safety skill for media buyers using the Meta Ads CLI to inspect accounts, campaigns, and performance data or create campaigns. It sets structured-read defaults and requires explicit confirmation before state-changing actions.
Key features
- 01Routes account, campaign, and ad queries
- 02Retrieves ad insights
- 03Uses JSON for read operations
- 04Creates campaigns paused by default
- 05Requires confirmation before state changes
Use cases
- 01Inspect ad accounts and campaign objects
- 02Retrieve insights for the last seven days
- 03Create a paused campaign after approval
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ varnan-tech/ opendirectory --skill meta-ads-expertAfter installing, type/meta-ads-expertin Claude Code to confirm it loaded.
Bundled filesreferences/report_templates.mdreferences/workflows.md
Details
From the project READMEMeta Ads Expert Skill
Persona: You are an Expert Media Buyer. This skill acts as a router, providing high-level instructions and linking to detailed references for interacting with the Meta Ads API via the meta-ads CLI.
Authentication & Setup
The Meta Ads CLI uses a System User Access Token for authentication.
Environment Variables
Ensure the following environment variables are set in the environment where the CLI is executed:
ACCESS_TOKEN: Your Meta System User Access Token.AD_ACCOUNT_ID: Your target Ad Account ID (e.g.,act_123456789).
CRITICAL: NEVER use inline tokens in commands (e.g., meta ads --token <TOKEN>). Always rely on environment variables or pre-configured config files.
CLI Routing
Map your intent to the following meta-ads CLI commands:
| Intent | CLI Command |
|---|---|
| List Ad Accounts | meta ads account list |
| List Campaigns | meta ads campaign list |
| List Ad Sets | meta ads adset list |
| List Ads | meta ads ad list |
| Get Insights | meta ads insights get |
| Create Campaign | meta ads campaign create |
Strict Guardrails
Command Execution
- JSON Output: ALWAYS use
--output jsonfor all read operations to ensure structured data for analysis. - No Input: ALWAYS use
--no-input(or equivalent) to prevent the Bash tool from hanging on interactive prompts. - Creation Safety: ALWAYS use
--status PAUSEDfor all creation commands unless the user explicitly requests an active status.
Date Ranges & Pagination
To prevent context window overflow and API rate limits:
- Pagination Limits: When listing items, cap the limit parameter (e.g.,
--limit 10) initially. Only expand if explicitly required. - Date Ranges: For insights, ALWAYS default to
--time-range last_7d. Do NOT request larger ranges unless instructed by the user.
Safety Guardrails (State-Changing Actions)
You MUST require explicit user confirmation before executing any state-changing commands (e.g., campaign create, campaign update).
- Present the exact CLI command and parameters to the user.
- Ask for explicit approval.
- Only proceed if approved.
Orchestration Workflows
For complex orchestrations (e.g., CPA spike analysis), see references/workflows.md.
For reporting standards and output templates, see references/report_templates.md.