ekx-meta-adslisted
Install: claude install-skill Ekinoxis-evm/claude-skills
# Meta (Ads + WhatsApp)
Our growth stack. The **`meta-ads` MCP server** is by far the largest server in the
portfolio by tool count — prefer it over hand-rolled Graph calls for anything Claude
does at build time.
---
## Environment
```bash
META_ACCESS_TOKEN= # SECRET — read
META_ADS_WRITE_TOKEN= # SECRET — write, kept separate deliberately
META_APP_SECRET= # SECRET
META_AD_ACCOUNT_ID= # act_XXXXXXXXX (the act_ prefix is required)
META_PAGE_ID=
META_PIXEL_ID=
META_API_VERSION= # v21.0 — PIN IT
META_GRAPH_VERSION=
META_WHATSAPP_TOKEN= # SECRET
META_WHATSAPP_PHONE_NUMBER_ID=
META_WHATSAPP_VERIFY_TOKEN= # SECRET — webhook handshake
```
**Separate read and write tokens.** Worth doing everywhere: the read token powers dashboards and can be scoped narrowly; the write token can create
campaigns and spend money, and should be used from exactly one code path.
**Pin `META_API_VERSION`.** Meta deprecates versions on a ~2-year clock and changes
field availability between them without warning at the call site.
---
## Hierarchy
```
Ad Account (act_…)
└── Campaign — objective, budget strategy
└── Ad Set — audience, placement, schedule, budget
└── Ad — creative + tracking
```
Create top-down; you cannot make an ad without an ad set. Every object starts in
`PAUSED` — **always create paused, review, then activate**. A misconfigured audience
that goes live immediately spends rea