> 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 your ChatGPT Ads account to a Brand Kit for performance reporting and enabled ad-management tools.

Connect your ChatGPT Ads account so AirOps can sync its campaign structure and daily performance into **Insights → Ads → Performance**. Connecting and syncing an account does not change its campaigns. Where separately enabled, **Owned Ads**, Playbooks, and Workflows can use the connection to create and manage ad resources.

## Prerequisites

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

Observed ads in **Ad Library** and **Market** do not require this connection. Their data comes from the ChatGPT answers AirOps collects for your tracked prompts.

## How to Configure

### 1. Create an API key in ChatGPT Ads Manager

1. Sign in at [ChatGPT Ads Manager](https://ads.openai.com).
2. Go to **Settings**.
3. Create an API key for the ad account you want to connect.
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, such as a key beginning `sk-`, does not authenticate against the ads API. Each key maps to a single ad account, so create one key per account you want to connect.
{% endhint %}

### 2. Add the integration to your workspace

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

The integration belongs to your workspace and can be selected by its Brand Kits. Saving the key alone does not populate Performance; attach it to a Brand Kit next.

### 3. Attach the account to a Brand Kit

1. Select the Brand Kit, then open **Insights → Settings → General**.
2. Find **Connected Integrations** and open the **OpenAI Ads** selector.
3. Select the integration you created.

AirOps looks up the ad account, records its account ID and currency, and starts the initial sync. If the ads API rejects the key, **Connected Integrations** shows the failure so you can correct the key and select it again.

If your AirOps team has provisioned an AirOps-managed ad account for the Brand Kit, confirm which account you should use with them before adding another connection.

### 4. Confirm the connection

Open **Insights → Ads → Performance**. The dashboard distinguishes an account waiting for its first sync from one that has synced but has no campaigns or no delivery yet.

| State                             | What to do                                                                                                         |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Not connected**                 | Check that you attached the integration to this Brand Kit, rather than only saving it in the workspace.            |
| **Syncing**                       | Wait for the first sync to complete. If the state persists, check the connection under **Connected Integrations**. |
| **No campaigns**                  | Create a campaign in ChatGPT Ads Manager or, where enabled, through AirOps.                                        |
| **Campaigns have not served yet** | Review campaign and ad status, approval, scheduling, and delivery in the ad account.                               |
| **Performance available**         | Select the date range and use campaign, ad group, ad, or region filters to inspect results.                        |

## What AirOps syncs

| Data                          | Detail                                                                                                                 |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Campaigns, ad groups, and ads | Account hierarchy, names, status, review status, creative, and supported budget, bid, targeting, and scheduling fields |
| Daily performance             | Impressions, clicks, and spend per ad per day                                                                          |
| Breakdowns                    | Daily impressions, clicks, and spend by country and by device                                                          |

AirOps refreshes data daily. The ad platform can revise recent figures, so recent totals may change after a later sync. AirOps replaces each day's figures with the latest values.

## Management access

Performance reporting and ad management have separate availability. A reporting connection does not automatically enable **Owned Ads** or write actions in Playbooks and Workflows. Contact your AirOps team about access to [Owned Ads](/insights/ads/owned-ads.md), [Ads Playbook tools](/actions/playbooks/tools/ads.md), or [OpenAI Ads Workflow Steps](/actions/workflow-concepts/workflow-steps/openai-ads.md).

When enabled, these actions can change the connected ad account. Check the target account, budget, and resource status before creating or activating ads.

## Example

To report on an existing campaign, add its account's API key under **Account → Integrations**, attach that integration to the campaign's Brand Kit, and open **Insights → Ads → Performance**. After the sync, select the campaign and date range to review spend, impressions, and clicks.

## Troubleshooting

**The integration shows as failed.** Check that the key comes from ChatGPT Ads Manager and has not been revoked. Update it, then select the integration again.

**A connection test says the account needs review.** The key can be valid while the ad account has not completed the provider's review. Resolve the account's review requirements in ChatGPT Ads Manager.

**Numbers differ from ChatGPT Ads Manager.** Compare the same account, date range, and filters. Recent figures can differ until the next sync incorporates the platform's revisions.

**Ad Library is empty after connecting.** Ad Library uses observed answers, not your ad account's delivery data. Check the selected Brand Kit, tracked ChatGPT prompts, dates, and filters. Use Performance to inspect the connected account.


---

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