Summary
Meta introduced an Ads CLI for Meta Ads and Commerce on 2026-04-29. This repo can eventually support Meta Ads as another provider surface, but it should start as a read-only raw-data CLI instead of adopting campaign write operations directly.
Reference: https://developers.facebook.com/blog/post/2026/04/29/introducing-ads-cli/
Context
product-growth-tools currently keeps provider CLIs schema-first, JSON-first, and raw-data-only. Existing packages expose provider data and leave reports, storage, decisions, and execution policy to the consuming growth system.
The Meta Ads CLI described in the blog wraps the Meta Marketing API and covers campaign/ad set/ad/creative creation, updates, deletes, insights, pixels, conversions, and catalogs. That is useful, but write operations can spend money or change live campaign state, so they need a higher-level execution boundary and human approval before being exposed to agents.
As of 2026-04-30, the blog's getting-started documentation link appears to point at developers.intern.facebook.com, and the obvious public docs path returned 404 during inspection. Treat the official CLI dependency as not ready for hard adoption until public install and credential docs are stable.
Proposed Direction
Add a future optional package such as packages/meta-ads-cli / @deniffer/meta-ads-cli with command aliases meta-ads and meta-ads-cli.
First version should be read-only:
doctor dataset readiness
account dataset ad-accounts
campaign dataset list
campaign dataset performance
adSet dataset performance
ad dataset performance
insights dataset get
- optional read-only pixel/catalog/conversion metadata commands
Follow existing repo conventions:
- schema-first command definitions
- JSON output shaped as
{ ok: true, data } / { ok: false, error }
PRODUCT_GROWTH_PROFILE credential loading
- local env support for
META_ACCESS_TOKEN, META_AD_ACCOUNT_ID, META_APP_ID, and related account settings
- no report, storage, recommendation, or campaign decision logic inside the provider CLI
Explicit Non-Goals
Do not expose these in the first provider package:
- campaign/ad set/ad/creative create
- update status or budgets
- delete/archive operations
- autonomous launch or optimization loops
If write operations become necessary later, they should live behind a Growth OS action/execution layer with dry-run output, explicit human approval, and default PAUSED state.
Acceptance Criteria
- A small spike verifies the stable official install surface or chooses a direct Meta Marketing API implementation.
- The first implementation is read-only and passes
--schema, unit tests, and a doctor dataset readiness check.
- README/docs describe Meta Ads as provider/raw-data evidence, not an ad campaign operator.
Summary
Meta introduced an Ads CLI for Meta Ads and Commerce on 2026-04-29. This repo can eventually support Meta Ads as another provider surface, but it should start as a read-only raw-data CLI instead of adopting campaign write operations directly.
Reference: https://developers.facebook.com/blog/post/2026/04/29/introducing-ads-cli/
Context
product-growth-toolscurrently keeps provider CLIs schema-first, JSON-first, and raw-data-only. Existing packages expose provider data and leave reports, storage, decisions, and execution policy to the consuming growth system.The Meta Ads CLI described in the blog wraps the Meta Marketing API and covers campaign/ad set/ad/creative creation, updates, deletes, insights, pixels, conversions, and catalogs. That is useful, but write operations can spend money or change live campaign state, so they need a higher-level execution boundary and human approval before being exposed to agents.
As of 2026-04-30, the blog's getting-started documentation link appears to point at
developers.intern.facebook.com, and the obvious public docs path returned 404 during inspection. Treat the official CLI dependency as not ready for hard adoption until public install and credential docs are stable.Proposed Direction
Add a future optional package such as
packages/meta-ads-cli/@deniffer/meta-ads-cliwith command aliasesmeta-adsandmeta-ads-cli.First version should be read-only:
doctor dataset readinessaccount dataset ad-accountscampaign dataset listcampaign dataset performanceadSet dataset performancead dataset performanceinsights dataset getFollow existing repo conventions:
{ ok: true, data }/{ ok: false, error }PRODUCT_GROWTH_PROFILEcredential loadingMETA_ACCESS_TOKEN,META_AD_ACCOUNT_ID,META_APP_ID, and related account settingsExplicit Non-Goals
Do not expose these in the first provider package:
If write operations become necessary later, they should live behind a Growth OS action/execution layer with dry-run output, explicit human approval, and default
PAUSEDstate.Acceptance Criteria
--schema, unit tests, and adoctor dataset readinesscheck.