# OpenAI Ads connector: sync campaigns, insights, and conversions from ChatGPT ads to your data warehouse

> Erathos syncs campaigns, insights, conversions, and feeds from OpenAI Ads (ChatGPT ads) into BigQuery, Redshift, and other warehouses.

Source: https://www.erathos.com/en/blog/connector-release-openai-ads
Em português: https://www.erathos.com/blog/connector-release-openai-ads
Published: 2026-09-16
Category: New Connectors

![New Connector OpenAI Ads](https://cms-media.erathos.com/New Connector OpenAI Ads.png)

Managed connector to sync ad accounts, campaigns, ad groups, ads, performance insights, conversions, custom audiences, product feeds, and spend limits from [OpenAI Ads](https://www.erathos.com/en/connectors/openai-ads?slug=blog&button=cta&utm_campaign=openai-ads_release) to BigQuery, Redshift, Databricks, ClickHouse, PostgreSQL, Azure SQL Server, S3 Iceberg, Supabase, Snowflake, and Azure Synapse. [Create your account and try it now](https://app.erathos.com/signup?slug=blog&button=cta&utm_campaign=openai-ads_release).

Every data team supporting a performance media operation hits the same wall sooner or later: campaign data lives in OpenAI Ads, the rest of the analytics stack lives in the warehouse, and joining the two turns into an engineering project nobody planned for. What starts as a Python script running on an EC2 cron job turns, three months later, into a pipeline nobody understands, that fails silently, and that no engineer wants to inherit.

Erathos is launching the managed connector for OpenAI Ads. Twenty five endpoints available, ten supported destinations, zero pipeline code to write or maintain.

### The problem with hand built OpenAI Ads pipelines

The OpenAI Ads API is authenticated with a bearer token issued in Ads Manager, scoped to a single ad account. The pattern is simple enough to convince any engineer to build their own integration in an afternoon. The real cost shows up later, and it is predictable.

**Metrics across four levels, with numbers that change on their own.** Delivery metrics (impressions, clicks, spend, conversions) need to be pulled separately at the account, campaign, ad group, and ad level, each with its own date window and pagination. And attributed metrics change over time: conversions keep arriving after the click, and attribution windows mature over several days, so yesterday's number is not the same as last week's. An incremental pipeline that never reprocesses what already ran freezes the history at an outdated version, and ROAS starts drifting from the dashboard with no error logged anywhere. Across multiple accounts, each one has its own currency: summing spend from accounts in different currencies without converting is the kind of mistake that only shows up in the consolidated report.

**Silent rate limiting.** In a normal incremental extraction, for medium sized volumes, you stay under the limit. When you run a historical backfill or pull insights for an entire account in parallel, the API starts returning 429s. If your retry logic is not built with exponential backoff, you lose entire windows of data and never find out.

**Schema evolution with no warning.** New fields show up, existing fields become nullable, nested structures change. Your dbt model that used to run clean starts failing in production, or worse: it keeps running, but calculating revenue on a field that no longer exists. The inconsistency lands on the media team's dashboard before it ever reaches your monitoring.

**Observability that does not exist.** A 200 OK on the HTTP call does not mean the data arrived correctly. Without a record count per endpoint per run, without comparison against the previous window, and without a volume drop alert, you are flying blind. The pipeline that ran successfully may have brought in zero new insights because the cursor got stuck.

The worst case scenario is not the pipeline that breaks and sends an alert. It is the pipeline that runs successfully and delivers wrong data, and the ROAS that lands on the media team's dashboard is already calculated on a rotten base.

### What becomes possible once OpenAI Ads data lands in the warehouse

Before getting into the connector itself, it is worth documenting what you actually gain once this data leaves the SaaS and lands modeled alongside the rest of your stack.

**Consolidated performance across media channels.** With campaign\_insights, ad\_group\_insights, ad\_insights, and ad\_account\_insights in the warehouse, you get impressions, clicks, spend, and conversions as raw data, record by record, instead of the pre aggregated numbers from native reports. Cross referencing this with your Google Ads, Meta Ads, TikTok Ads, and LinkedIn Ads pipelines running on the same platform, you build a single view of ROAS, CPL, and cost per conversion across every channel, with one currency rule and one conversion definition. That consolidated report does not exist in any single native dashboard, it only exists once every media channel lives in the same database.

**Delivery diagnostics through the campaign hierarchy.** The campaigns, ad\_groups, and ads tables bring objective, status, daily\_budget, lifetime\_budget, and bid\_strategy, and each level has its own matching insights table. With the full hierarchy in the warehouse, joined through the campaign\_id and ad\_group\_id keys, you can pinpoint exactly where performance breaks down: a healthy campaign with one ad group burning through budget, or a specific ad with declining CTR dragging the whole group down. In native dashboards, this diagnosis turns into manual, level by level navigation with no comparable history.

**Attributed revenue cross referenced with CRM and finance.** The conversions\_insights endpoint brings conversions and conversion value aggregated by event, and conversions\_events brings the raw event with timestamp, value, currency, and source URL. With this in the warehouse, you cross reference conversions from ChatGPT ads with deals in your CRM (HubSpot, Pipedrive) and with your finance system, and answer questions that no single system can answer on its own: which conversion event generates the highest average order value? How many conversions reported by the pixel does finance actually recognize as billed revenue? Where is the gap between media attribution and billing?

**Catalog and product feed auditing.** The feeds, feed\_uploads, and feed\_products\_query endpoints bring the catalog running in your ads: title, price, currency, availability, and brand, plus the upload history with status and items processed. Cross referencing this with your ecommerce or ERP product base, you catch out of stock products still being advertised, price mismatches between the catalog and your site, and you can correlate delivery drops with problematic feed uploads. This kind of cross reference requires the live catalog and the real catalog to sit in the same warehouse.

**Budget pacing and spend limits.** The spend\_limit\_windows endpoint brings the account's spend limit windows and, together with campaign and ad group budgets, lets you model pacing: how much should have been spent in each window versus how much actually was, by account and by campaign. For anyone running multiple accounts in different currencies, a consolidated view of pacing and limit consumption is a warehouse model, not a native report.

**Audit trail for bulk operations.** The bulk\_mutation\_job and bulk\_mutation\_job\_operations endpoints log every bulk creation and edit job, with status, operation count, and error message per operation. Once materialized in the warehouse, these tables become an account changelog: what changed, when it changed, and which operation failed, exactly the history that today lives in a spreadsheet or in the memory of whoever ran the media.

### What the connector includes

The OpenAI Ads connector delivers twenty five endpoints ready to be materialized in your destination warehouse. The five insights endpoints support incremental sync with a cursor on updated\_at, the rest run as a full refresh on every execution. Entities come with their relationship keys preserved: campaigns link to ad\_groups, which link to ads, and each level has its own matching insights table.

Endpoint

What it contains

ad\_account

The connected ad account: name, status, currency, country, timezone, and business\_id

ad\_accounts

List of ad accounts accessible with the token

ad\_account\_insights

Account level aggregated metrics: impressions, clicks, spend, conversions, and currency, with a cursor on updated\_at

campaigns

Campaigns: objective, status, daily\_budget, lifetime\_budget, and delivery window

campaign\_insights

Delivery metrics per campaign: impressions, clicks, spend, and conversions, with a cursor on updated\_at

ad\_groups

Ad groups: daily budget, bid\_strategy, and delivery window

ad\_group\_insights

Delivery metrics per ad group, with a cursor on updated\_at

ads

Ads: name, format, status, and source ad group

ad\_insights

Delivery metrics per individual ad, with a cursor on updated\_at

conversions\_pixels

Measurement pixels configured to track conversions

conversions\_events

Raw conversion events: event name, timestamp, source URL, value, and currency

conversions\_event\_settings

Conversion event configuration: name, status, default value, and currency

conversions\_insights

Conversions and conversion value aggregated by event, with a cursor on updated\_at

custom\_audiences

Custom audiences: name, type, description, approximate size, and status

custom\_audience\_operations

Load and update operations for custom audiences

feeds

Product catalogs (feeds): type, status, and item count

feed\_products\_query

Catalog products: title, price, currency, availability, and brand

feed\_sftp\_access

Feed SFTP access credentials

feed\_uploads

Feed upload history: status, items processed, and duration

bulk\_mutation\_job

Bulk creation and edit jobs for campaigns, ad groups, and ads

bulk\_mutation\_job\_operations

Operations within each bulk job, with status and error message per operation

geo\_lookup\_search

Geographic codes available for country and region targeting

lead\_sync\_subscriptions

Lead sync subscriptions for the ad account

partner\_data\_upload

Partner data uploads: file, record count, and status

spend\_limit\_windows

Spend limit windows configured on the ad account

Supported destinations are Azure SQL Server, BigQuery, ClickHouse, Databricks, PostgreSQL, Redshift, S3 Iceberg, Supabase, Snowflake, and Azure Synapse.

### How to authenticate

The connector's authentication requires a single field:

**Token**: the OpenAI Ads API key, a bearer token scoped to a single ad account, used to authenticate every request the connector makes to the API.

To generate the token, log into the ad account you want to sync and go to Settings > Integrations > API Keys, where you create a new API key. Each key is issued from a single ad account: generate the key from the account whose data you want to bring into Erathos. Copy the generated key, store it securely, paste it into the platform's Token field, and click Save and close to finish setup.

The authentication scheme is also described in the [official API reference](https://developers.openai.com/ads/api-reference/authentication), where you can check your key's scopes and permissions. The full connector setup process is documented in the [OpenAI Ads connector guide](https://docs.erathos.com/connectors/apis/openai-ads).

### Why outsource ingestion to Erathos

The premise behind the connector is straightforward: the engineering work of maintaining ingestion should not be your data team's responsibility. Pagination, rate limiting, retry with backoff, schema evolution, failure alerts, volume drop alerts, backfills. All of that is the responsibility of whoever operates the ingestion platform.

Once the connector is set up, the platform delivers:

**End to end visibility into every run.** Extraction time per endpoint, record counts per window, which windows were processed, where retries happened. When a ROAS metric shifts on the dashboard and the media team opens a ticket with the data team, you have the full trail to find the root cause.

**Alerts configured out of the box.** Execution failures, volume drops per endpoint, and window delays are detected and routed through the alerting integrations your team already uses. You do not write that code.

**Reprocessing as a supported operation.** When you need to reprocess a window, because your dbt model logic changed or because attribution metrics were restated by the source, that is a platform operation, not an improvised DELETE plus INSERT sequence in the warehouse.

Correct pagination, rate limit management, schema evolution, and backfills are the platform's responsibility. The data team focuses on the model, not the plumbing.

### Available pipelines

The OpenAI Ads connector is available with the following destinations:

OpenAI Ads to [Azure SQL Server](https://www.erathos.com/en/pipelines/openai-ads-azure-sql-server)
OpenAI Ads to [Azure Synapse](https://www.erathos.com/en/pipelines/openai-ads-azure-synapse)
OpenAI Ads to [BigQuery](https://www.erathos.com/en/pipelines/openai-ads-bigquery)
OpenAI Ads to [ClickHouse](https://www.erathos.com/en/pipelines/openai-ads-clickhouse)
OpenAI Ads to [Databricks](https://www.erathos.com/en/pipelines/openai-ads-databricks)
OpenAI Ads to [PostgreSQL](https://www.erathos.com/en/pipelines/openai-ads-postgresql)
OpenAI Ads to [Redshift](https://www.erathos.com/en/pipelines/openai-ads-redshift)
OpenAI Ads to [S3 Iceberg](https://www.erathos.com/en/pipelines/openai-ads-amazon-s3)
OpenAI Ads to [Snowflake](https://www.erathos.com/en/pipelines/openai-ads-snowflake)
OpenAI Ads to [Supabase](https://www.erathos.com/en/pipelines/openai-ads-supabase)

### Get started now

[Create your Erathos account](https://app.erathos.com/signup?slug=blog&button=cta&utm_campaign=openai-ads_release) and connect OpenAI Ads to your warehouse in minutes. With the API token issued in Ads Manager, your first data lands at the destination with zero pipeline code to write, maintain, or monitor.

Ad data generated every day should not stay locked inside a SaaS, disconnected from the rest of your analytics model. Or worse: stuck in a homegrown pipeline that will keep costing your team's attention every month, forever.

See the [full connector documentation](https://docs.erathos.com/connectors/apis/openai-ads).
