> 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/insights/analytics/settings/chatgpt-ads-manager.md).

# ChatGPT Ads Manager

Connect the ChatGPT Ads account you advertise from, and AirOps syncs your campaign structure and daily performance into **Insights → Paid → Performance**. The connection is read-only. AirOps reports on your campaigns and never creates, edits, or pauses them.

***

## Prerequisites

* An **AirOps** workspace with Insights and the Paid tab enabled
* Access to your account in [ChatGPT Ads Manager](https://ads.openai.com) with permission to create API keys
* A **Brand Kit** to attach the ad account to

***

## Step 1: Create an API key in ChatGPT Ads Manager

1. Sign in at [`ads.openai.com`](https://ads.openai.com).
2. Go to **Settings**.
3. Create an API key for the ad account you want AirOps to report on.
4. Copy the key and treat it like a password.

{% hint style="warning" %}
Generate the key inside ChatGPT Ads Manager. A standard OpenAI platform API key, the kind beginning `sk-`, does not authenticate against the ads API and the connection will fail. Each key maps to a single ad account, so create one key per account you want to track.
{% endhint %}

***

## Step 2: Add the integration to your workspace

1. In AirOps, go to **Account → Integrations**.
2. Add a new integration and choose **OpenAI Ads**.
3. Paste your key into **API Key**, then save.

The integration now belongs to your workspace, and any Brand Kit in that workspace can use it.

***

## Step 3: Attach the account to a Brand Kit

1. Open the Brand Kit you want to report on, then go to **Insights → Settings → General**.
2. Find **Connected Integrations** and open the **OpenAI Ads** selector.
3. Select the integration you created in the previous step.

AirOps looks up the ad account behind the key, records its account id and currency, then queues the first sync.

{% hint style="info" %}
If the key is rejected, the integration is marked as failed and the error from the ads API appears in **Connected Integrations**, so you can correct the key and select it again.
{% endhint %}

***

## Step 4: Confirm data is flowing

Go to **Insights → Paid → Performance**.

Straight after connecting, the tab reports that your account is connected and syncing. Connecting starts a full sync, so your ad campaign structure, spend, impressions, and clicks all arrive from that first run. The tab switches to the dashboard once the metrics land.

***

## What AirOps syncs

| Data                          | Detail                                                        |
| ----------------------------- | ------------------------------------------------------------- |
| Campaigns, ad groups, and ads | Names, status, review status, and creative fields             |
| Daily performance             | Impressions, clicks, and spend per ad per day                 |
| Breakdowns                    | Daily impressions, clicks, and spend by country and by device |

AirOps refreshes this data daily. Ad platforms restate recent spend and attribution for several days after the fact, so recent figures can shift as ChatGPT Ads Manager finalizes them. AirOps replaces each day with the latest version rather than adding to it, which keeps totals accurate as those corrections arrive.

***

## Troubleshooting

**The integration shows as failed.** The ads API rejected the key. Check that you created it inside ChatGPT Ads Manager rather than the OpenAI platform console, and that it has not been revoked. Update the key, then select the integration again.

**Performance still reports that it is syncing.** No metrics have reached the Brand Kit yet, which is expected between connecting and the first completed sync. If it persists, confirm the integration is still attached under **Connected Integrations**.

**Numbers differ from ChatGPT Ads Manager.** Check that the date range in Insights matches the range you are comparing against, and allow for restatement of the most recent days.


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.airops.com/insights/analytics/settings/chatgpt-ads-manager.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
