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

> Low-level update for an OpenAI Ads ad using a raw update payload

Low-level update for an OpenAI Ads ad using a raw update payload. Use focused ad nodes first when available, such as status or rename.

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

## Inputs

| Field            | Type                       | Required | Default | Description                                                                                                                                                                                                                                                                                                                           |
| ---------------- | -------------------------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ad_id`          | string or SelectableOption | Yes      | -       | Ad ID to update (from openai\_ads\_list\_ads). Do not include this inside update\_payload.                                                                                                                                                                                                                                            |
| `update_payload` | object or string           | Yes      | -       | OpenAI Ads ad update payload as an json object. Only the fields provided here are sent to OpenAI Ads. If you include creative, send the full creative object. Use focused operations first when they exist, for example openai\_ads\_update\_ad\_status or openai\_ads\_rename\_ad. Do not include identity fields like ad\_id or id. |
| `dry_run`        | boolean                    | No       | `False` | When true, return the resolved update payload without calling OpenAI Ads.                                                                                                                                                                                                                                                             |

### SelectableOption

| Field   | Type   | Required | Default | Description |
| ------- | ------ | -------- | ------- | ----------- |
| `value` | string | Yes      | -       |             |
| `label` | string | Yes      | -       |             |

## Output

**Type**: `Dict`

Returns the updated ad object exactly as returned by the OpenAI Ads API. In dry\_run mode, returns the resolved payload without calling the API.

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

**Example**:

```json theme={"dark"}
{
  "id": "ad_...",
  "name": "Planner launch card v2",
  "status": "paused",
  "creative": {
    "type": "chat_card",
    "title": "Plan work faster",
    "target_url": "https://example.com"
  },
  "review_status": "in_review"
}
```
