> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Campaign

> Fallback Meta Ads campaign patch tool for advanced or unsupported cases such as spend cap, special ad category, promoted object or per ad set budgets

Fallback Meta Ads campaign patch tool for advanced or unsupported cases such as spend cap, special ad category, promoted object or per ad set budgets. Use this only when no dedicated Meta Ads campaign operation supports the requested change; if one exists, such as meta\_ads\_update\_campaign\_budget or meta\_ads\_update\_campaign\_status, always use it instead. This tool patches only the fields provided in update\_payload and does not replace the full campaign. Supports dry-run review before applying changes.

|                       |                            |
| --------------------- | -------------------------- |
| **App**               | Meta Ads                   |
| **Operation ID**      | `meta_ads_update_campaign` |
| **Type**              | Action                     |
| **Connection**        | `meta_ads` (required)      |
| **Credits per run**   | 1                          |
| **Agent / MCP tool**  | Yes                        |
| **Requires approval** | Yes (write operation)      |

## Inputs

| Field            | Type                 | Required | Default | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ---------------- | -------------------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `account`        | DynamicAccount       | Yes      | -       | Select Meta Ads account, ask the user for it if not provided                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `campaign_id`    | string or SelectItem | Yes      | -       | The Meta Ads campaign ID to update. Do not include this inside update\_payload.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `update_payload` | object or string     | Yes      | -       | Patch payload for Meta's Campaign update API as an object or JSON string. Only the fields provided here are sent to Meta; this does not replace the full campaign. Use focused operations first when they exist, for example meta\_ads\_update\_campaign\_status or meta\_ads\_update\_campaign\_budget. Use valid Meta campaign fields, for example spend\_cap (minor currency units, minimum about 100 USD; 922337203685478 removes the cap), special\_ad\_category and special\_ad\_category\_country, promoted\_object, objective, adset\_budgets (per child daily\_budget or lifetime\_budget, needed when switching between campaign and child budgets). Campaign start\_time and stop\_time are derived from its ad sets and cannot be set here; use meta\_ads\_update\_adset\_schedule on each ad set. Do not include identity fields like account\_id or campaign\_id. |
| `dry_run`        | boolean              | No       | `False` | When true, return the resolved update payload without calling Meta Ads.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |

### SelectItem

| Field   | Type   | Required | Default | Description                                                                                          |
| ------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------------- |
| `value` | string | Yes      | -       | The value of the selectable item.                                                                    |
| `label` | string | Yes      | -       | The label of the selectable item, used for display purposes. If not provided, defaults to the value. |

## Output

**Type**: `Dict`

Returns campaign\_id, campaign\_name, updated\_fields, final payload, dry\_run status, and any returned Meta response data.

**Fields**: dynamic (depend on the inputs)
