> For the complete documentation index, see [llms.txt](https://docs.airops.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.airops.com/actions/workflow-concepts/workflow-steps/openai-ads.md).

# OpenAI Ads

Create, edit, and archive OpenAI Ads resources with enabled Workflow Steps.

OpenAI Ads Steps let a Workflow create and manage ChatGPT ad campaigns, ad groups, and ads. Chain Steps to build the account hierarchy and upload creative images before creating ads.

{% hint style="info" %}
OpenAI Ads Workflow actions require separate workspace enablement and a connected ChatGPT Ads account. Contact your AirOps team if the integration is unavailable in the Step picker.
{% endhint %}

## How to Configure

1. Add an **OpenAI Ads** Step to your Workflow and choose an action.
2. Select the OpenAI Ads authentication. Use a key created in [ChatGPT Ads Manager](/insights/analytics/settings/chatgpt-ads-manager.md).
3. Test the connection. A valid key may still require account review before the account is ready to advertise.
4. Select an existing parent resource or, for a create action, reference the parent created by an earlier Step.
5. Configure the action's inputs. Choose **Paused** when preparing resources for review before delivery.
6. Run the Workflow and inspect the returned resource details and ad review status.

## Actions and parameters

| Action               | Main inputs                                                                                                        |
| -------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Create Campaign**  | Name, explicit status, objective, budget type and amount, and any scheduling or targeting settings                 |
| **Edit Campaign**    | Campaign selection and the fields to update                                                                        |
| **Archive Campaign** | Campaign selection                                                                                                 |
| **Create Ad Group**  | Existing campaign or campaign ID/reference, group name, maximum bid, status, and context hints                     |
| **Edit Ad Group**    | Campaign and ad group selections, plus the fields to update                                                        |
| **Archive Ad Group** | Campaign and ad group selections                                                                                   |
| **Upload Ad Image**  | Public URL pointing directly to an image                                                                           |
| **Create Ad**        | Existing ad group or ad group ID/reference, name, status, title, body, destination URL, and uploaded image File ID |
| **Edit Ad**          | Campaign, ad group, and ad selections, plus the fields to update                                                   |
| **Archive Ad**       | Campaign, ad group, and ad selections                                                                              |

Enter budget and bid amounts in the ad account's currency. Use the date-time inputs to specify scheduling and timezone. Context hints can be separate lines or a JSON array from an earlier Step.

**Upload Ad Image** returns a `file_id`. Pass that value to **Create Ad** for the chat-card creative. Create, edit, and archive actions return the provider response; ad responses include `review_status`.

### Rerunning create Steps

Rerunning the same create Step in the same Workflow reuses its original campaign, ad group, or ad, even if you change the inputs. Use an **Edit** Step to update an existing resource. Use a different create Step or Workflow when you intend to create a separate resource.

An image-upload Step can return a new `file_id` on a rerun. That does not cause the following create Step to create a second ad.

{% hint style="warning" %}
These Steps write to your connected ad account. Active resources can deliver ads and spend budget. Archiving is irreversible. Use explicit paused statuses and a review process when building a creation Workflow.
{% endhint %}

## Example

Build a Workflow with these Steps:

1. **Create Campaign** with the desired objective and budget, with status **Paused**.
2. **Create Ad Group** using the campaign ID returned by the first Step, also **Paused**.
3. **Upload Ad Image** using a public URL for your approved creative.
4. **Create Ad** using the ad group ID and uploaded `file_id`, with approved copy and destination URL and status **Paused**.
5. Review the returned resources and creative before activating them through an enabled management surface.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.airops.com/actions/workflow-concepts/workflow-steps/openai-ads.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
