> ## 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 Ad

> Fallback Meta Ads ad patch tool for advanced or unsupported cases at the ad level, such as renaming an ad, changing ad_schedule_start_time/ad_schedule_end_time (only on ads created with a schedule;...

Fallback Meta Ads ad patch tool for advanced or unsupported cases at the ad level, such as renaming an ad, changing ad\_schedule\_start\_time/ad\_schedule\_end\_time (only on ads created with a schedule; sales and app promotion campaigns), tracking\_specs, conversion\_domain, or adlabels. This does NOT edit the ad's creative content: Meta creatives are immutable, so to change text, image, video, or link, create a new creative (meta\_ads\_create\_ad\_creative or a create node with creative\_only=true) and attach it with meta\_ads\_replace\_ad\_creative. Use meta\_ads\_update\_ad\_status for status changes. Patches only the fields provided in update\_payload. Supports dry-run review before applying changes.

| | |
| - | - |
| **App** | Meta Ads |
| **Operation ID** | `meta_ads_update_ad` |
| **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 |
| `ad_id` | string or SelectItem | Yes | - | The Meta Ads ad ID to update. Do not include this inside update\_payload. |
| `update_payload` | object or string | Yes | - | Patch payload for Meta's Ad update API as an object or JSON string. Only the fields provided here are sent to Meta; this does not replace the full ad. Updatable ad-level fields include: name, ad\_schedule\_start\_time / ad\_schedule\_end\_time (ISO 8601 with UTC offset; only changeable on ads created with a schedule, sales and app promotion campaigns only), tracking\_specs, conversion\_domain, adlabels. This does NOT edit the ad's creative content (text, image, video, link): Meta creatives are immutable, so to change content create a new creative (meta\_ads\_create\_ad\_creative or a create node with creative\_only=true) and attach it with meta\_ads\_replace\_ad\_creative. Use meta\_ads\_update\_ad\_status for status changes. Do not include identity fields like account\_id, ad\_id, or adset\_id (ads cannot be moved between ad sets). |
| `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 ad\_id, ad\_name, updated\_fields, final payload, dry\_run status, and any returned Meta response data.

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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.