Create and activate a Meta Ads campaign safely
Resolve a connected local ad account before building the draft:
smallforce ads accounts list --json
smallforce ads targeting search "coffee" \
--account <adAccountId> \
--dimension interest \
--json
Complex mutations accept inline JSON, --input-file <path>, or stdin with --input-file -. Validate before creation:
smallforce ads campaigns validate --input-file campaign.json
smallforce ads campaigns preview --input-file campaign.json
smallforce ads campaigns create --input-file campaign.json --json
The created campaign remains paused. Run preflight against the resulting campaign and ad account:
smallforce ads campaigns preflight <campaignId> \
--account <adAccountId> \
--json
Review every preflight issue, budget, schedule, audience, placement, destination, tracking choice, and creative. Activate only after the authorized person approves the campaign:
smallforce ads campaigns status <campaignId> active \
--account <adAccountId>
Use stable idempotency inputs where available and inspect leaf help before mutations. Provider effects and accepted contracts can differ across campaign operations.