# Create and activate a Meta Ads campaign safely

Resolve a connected local ad account before building the draft:

```bash
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:

```bash
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:

```bash
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:

```bash
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.
