# Report ChatGPT Ads campaign performance

> Tier: recipe. Operating recipe: real tool sequence, core rules, known traps.

Read ChatGPT Ads spend, delivery and attributed conversions while preserving native measurement settings and missing data.

**Intent.** Read native campaign results with explicit dates, currency, timezone, attribution and report completeness.

## When to use

- The user wants campaign results for a selected ChatGPT Ads account.

## When not to use

- Treating an empty report as proof of zero spend or delivery.

## Sources

Required: ChatGPT Ads

## Preconditions

- The account is ticked in the dashboard, confirmed via list_accounts.

## Inputs

- `window`: Analysis window. Default: last 30 days.

## Procedure

1. Read the selected account and retain its currency and timezone. — tools: `openai_ads_get_account`
2. List the campaigns in scope and follow pagination before claiming complete coverage. — tools: `openai_ads_get_campaigns`
3. Request performance at the intended level with explicit local dates, attribution and metrics. Preserve incomplete extraction markers. — tools: `openai_ads_get_insights`

## Decision rules

- **When** A report has no rows or the extraction is incomplete → **conclude** State the actual coverage; do not invent zero performance or present partial rows as account totals.
- **When** Comparing periods or platforms → **conclude** Keep dates, timezone, currency and attribution explicit, and do not add overlapping conversion totals.

## Evidence requirements

- Every figure carries its account, metric and window.
- Anything below a readable sample size is reported as unjudged, not as zero.

## Human approval boundary

- The readout changes nothing. Any change it motivates goes through Safe Writes: preview, human confirmation, then apply.

## Failure modes

- Reporting spend is already in major account currency units. Do not divide it by a million as if it were a write budget.
- CTR and conversion rates are native fractions. Convert to a displayed percentage once.

## Output

- **Readout**: The figures, with windows and accounts named.
- **Flags**: What deserves a deeper skill or a human decision.

## Related

- Guide: [sources/chatgpt-ads](https://www.getmcpads.com/guides/sources/chatgpt-ads.md)
