Guide

Budgets, pacing and bidding strategies for ads in ChatGPT

Published · Updated · Based on the OpenAI Ads API documentation

Updated 16 September 2026
  • Conversion optimisation billed per impression is generally available; it optimises for conversions from ad clicks and ad views.
  • Guardrails: which limits apply to every change and which only to rules and Nomy is now spelled out.
Key facts
  • A campaign has a daily spend limit or a lifetime spend limit, not both, in micros of the account currency (1,000,000 micros = 1 unit).
  • Account level: a daily spend limit (postpaid invoice accounts only) and spend limit windows (up to 60, non-overlapping, enabled per account).
  • Bidding type impressions, clicks or conversions; strategy fixed bid, maximise clicks or maximise conversions; billing per impression or click.
  • No target CPA, target ROAS, bid caps on maximise strategies, dayparting or pacing controls on the platform. A controller emulates them.
  • Adsonomy guardrails: bid step 15%, budget up 25% and down 50% per change, 2 changes per entity per day, cooldowns per action type.

Spend on the OpenAI Ads platform is governed at three levels: the campaign budget, the account-level limits, and the bid. Targets such as cost per order or return on ad spend are not something the platform can be told; they are something a controller emulates. This guide covers the budget fields, the account limits, bidding types and strategies, what each target means, how Adsonomy's controller and plans work toward them, and the guardrails.

Key takeaways
  • Enter budgets in micros: 50 euro a day is 50,000,000. Use a lifetime limit for a fixed period and a daily limit for always-on.
  • Enter an impression bid per impression: a 60 dollar CPM is 60,000 micros.
  • Treat account spend limit windows (up to 60) as ceilings, not as a pacing tool.
  • Read pace as actual over planned to date: 0.9 to 1.1 is on track, and a projection more than 5 percent over budget is at risk.
  • Keep changes small: Adsonomy's defaults are a bid step of at most 15 percent, a budget increase of at most 25 percent and 2 changes per entity per day.

How are campaign budgets set?

Each campaign has either a daily spend limit or a lifetime spend limit, not both, in micros of the account currency: one million micros is one unit, so 50 euro a day is 50,000,000. A campaign can also carry a start and end time. Daily minimums depend on the currency; the documentation does not list them, and a budget below the minimum is rejected with the required amount in the error.

Because the two fields are exclusive, a campaign with a fixed period and sum uses the lifetime limit, while an always-on campaign uses the daily limit and relies on something outside the platform to hold it to a period total. Budgets are changed with a POST to the campaign. Adsonomy journals every change with the previous value so that it can be reverted. There are no pacing controls on the platform: no standard versus accelerated delivery, no dayparting.

What limits exist at account level?

Two. An account daily spend limit caps billable spend for each account-local day, repeats every day in the account timezone without carryover or proration, and is available only on postpaid invoice billing; first activation starts no earlier than the next account-local day, and a decrease below the spend already recorded today is rejected. Spend limit windows are date ranges, up to 60 and non-overlapping, each with its own limit, and are enabled per account by OpenAI.

Neither limit is atomic with billing: delayed charges use the settings in force at their event time, and the spend check is not atomic with concurrent billing. Treat them as ceilings, not as a pacing tool. Nomy has no action that changes spend limit windows, so they stay a hard stop outside its reach.

What are the bidding types and strategies?

A campaign has a bidding type of impressions, clicks or conversions and an objective of reach, clicks or conversions. Each ad group has a billing event type, impression or click, and a bid strategy: fixed bid with a maximum bid in micros, maximise clicks, or maximise conversions. If the strategy is omitted the platform selects AutoBid. CPM bidding is enabled per account by OpenAI.

On 16 September 2026 OpenAI made conversion optimisation with impression billing generally available and called it its recommended model for performance. Delivery optimises for conversions from both ad clicks and ad views, and the campaign is billed per impression. In Adsonomy's campaign wizard this is the Conversions objective: billed by impressions, optimising for the one conversion event you pick, which cannot be changed after creation.

An impression bid is per impression, not per thousand: a 60 dollar CPM is 60,000 micros per impression. The maximise strategies have no bid cap in the API, so with them the only lever left is the budget. Fixed bid gives control of the price per event and puts the work of finding the right bid on you or your tooling. A get or list call can include serving issues and a bid-too-low flag.

What do CPM, CPC, CPA, CPO and ROAS targets mean here?

CPM is cost per thousand impressions, CPC is cost per click, CPA is cost per conversion of the campaign's conversion event, CPO is cost per order (order_created events only), and ROAS is attributed order sales divided by spend. The platform reports all of them but accepts none as a target: there is no target CPA or target ROAS field. A target is therefore a number you hold outside the platform and steer toward by stepping the bid or the budget.

This is how Nomy maps each target kind to platform settings and a controller:

The step is new_bid = current_bid x clamp(target / actual, 1 - step, 1 + step), with the step from the maximum bid step guardrail (15 percent by default) and the ratio inverted for ROAS. Temperament scales it: conservative at half, balanced at one, aggressive at one and a half, never above the guardrail. Where conversion bidding is enabled, Nomy prefers maximise conversions with the maximum bid as the CPA bid and manages that cap.

How do plans and pacing work?

A plan is what you intend to spend and achieve in a period: a month, quarter, year or custom range, a budget, a target kind and value, and an allocation mode (even, weighted by weekday, front-loaded, back-loaded or a custom daily curve). A plan can be split by campaign; the unallocated remainder is shared evenly by campaigns without a line. Pacing compares actual spend from daily insights against the planned amount to date and projects the period end.

The pace ratio is actual divided by planned to date. On track is 0.9 to 1.1; under is below 0.9; over is above 1.1; at risk means the projection exceeds the budget by more than 5 percent, or the KPI is worse than the target by a factor of 1.25 with at least 30 clicks. The projection is actual to date plus the last seven days' average times the remaining days. Snapshots are computed daily at 00:10 workspace time. The dashboard shows the plan's budget, spend, planned to date and projection, and a plan over its budget pace appears as an issue at the top of every page. Nomy's pacing check works separately, against the daily and monthly spend caps in its guardrails; linking it to plans is planned. Plan currency is the ad account currency; the period runs in the workspace timezone.

What guardrails should sit around all of this?

Adsonomy's guardrails are hard ceilings and floors. The daily spend cap, maximum and minimum bid, minimum and maximum daily budget, 2 changes per entity per day and 40 per day overall, and protected entities apply to every change, whether a person, a rule or Nomy makes it. Rules and Nomy are also held to a bid step of at most 15 percent, a budget increase of at most 25 percent and a decrease of at most 50 percent per change, and cooldowns of 24 hours for bids and budgets, 12 for status and 72 for hints. A monthly spend cap is tracked for pacing and can trigger rules.

Some actions are never automatic regardless of policy: archiving anything, creating a campaign, changing objective or bidding type, changing conversion event settings, and changing Nomy's own settings always produce a proposal. Rules go through the same guarded path, with hysteresis and a re-arm margin or cooldown so that a rule does not flap, and a 30-day backtest before saving. Every change is journaled and can be reverted, and a new account starts in shadow mode. Underneath sit the platform's own ceilings: spend limit windows and, on postpaid accounts, the daily spend limit.

Frequently asked questions

Why are amounts in micros?

The API expresses money as integers in micros, one millionth of a currency unit, to avoid decimals. 1,000,000 micros is one euro or dollar. Adsonomy shows amounts in currency and converts on the way in and out.

Can I set a target CPA in Ads Manager or the API?

No. Neither offers a target CPA or target ROAS. You choose a bidding type and a strategy and hold the target yourself. Adsonomy's controller steps a fixed bid, or the maximum bid on maximise conversions where enabled, toward the target within the guardrails.

What happens when a plan is over pace?

The pace status changes to over or at risk, the dashboard shows the projection, and an issue appears at the top of every page with a link to the plan. Budget changes still pass the daily spend cap guardrail; plans do not yet cap increases themselves.

Is the account daily spend limit a kill switch?

It is a ceiling, not a switch: it needs postpaid invoice billing, first takes effect the next account-local day, and is not atomic with billing. To stop automated changes in Adsonomy, switch Nomy off or set its policy to suggest only; the platform limits are the backstop.

Adsonomy runs ads inside ChatGPT for shops and service businesses. Control edition: you run it with rules. Autopilot: Nomy runs it inside your guardrails. Free until 15 October 2026, then plans from EUR 49 a month.

Start free