A billing event is the specific user action in ChatGPT Ads that triggers a charge, set through the billing_event_type field on an ad group and configured as either a click or an impression. It defines what you pay for, separate from your bid amount, which sets how much each of those actions can cost.
Choosing the billing event decides whether your budget buys interactions or visibility, so it shapes how every dollar in a campaign is spent. Pick the wrong one and you can drain a budget paying for impressions when you needed clicks, or cap your reach when you were trying to build awareness.
In the OpenAI Ads API, a billing event is the chargeable action recorded against your ad group, the moment the platform counts something you agreed to pay for and deducts it from your budget. You set it with the billing_event_type property inside an ad group's bidding_config, and today ChatGPT Ads bills on clicks or impressions.
The billing event names the action that costs money, and the bid names the most you will pay for it. A cost-per-click setup charges only when someone taps your ad, so you pay for interaction. A cost-per-thousand-impressions setup charges when your ad is shown, so you pay for presence in the answer whether or not anyone clicks.
The billing event sits apart from your campaign objective and your bid strategy, though all three are configured nearby. Your objective states the outcome you want, your bid sets the ceiling, and the billing event decides which action spends the money, even when a conversion-focused campaign still bills per click. AirOps helps teams plan ChatGPT Ads campaigns and read the performance signals that show whether your chosen billing event is buying the outcomes you need.
See how to structure ChatGPT Ads bidding and billing choices for better campaign results
A billing event turns a user action into a charge through a defined sequence inside the ad auction. Here is how it runs when your ad is eligible for a ChatGPT conversation.
The billing event tells you exactly which action drew down your budget and at what price. It does not tell you whether that action led to a sale, which is why conversion tracking sits alongside it.
The billing event is the lever that quietly decides what your ChatGPT Ads spend actually buys. Before you set a budget, you are really deciding whether to pay for attention or for action, and that choice changes which campaigns are worth running at all.
The billing_event_type field is where you declare the chargeable action, and it is the single setting that separates a cost-per-click ad group from a cost-per-impression one, and getting it wrong changes your entire campaign cost structure.
Your bid is the most you are willing to pay for a billing event, while the actual charge is set by the auction and is often lower than your maximum when competition for the conversation is light.
A campaign can optimize toward conversions while still recording clicks as its billing event, so the action you pay for and the outcome you chase are not always the same thing, which is why reporting separates the two clearly.
Avoid leaving a campaign on impression billing out of habit when your real goal is clicks or conversions. Competent marketers do this when they copy settings from an old awareness campaign, then wonder why a healthy impression count produced almost no pipeline.
A billing event and a bid do two different jobs in the same ad group. The billing event names the action you pay for, a click or an impression, while the bid names the most you are willing to pay when that action happens. You can run the same bid under either billing event and get very different results, because one charges you for every view and the other only when someone clicks. The bid acts as your price ceiling, and the billing event acts as the trigger that opens the register. In practice you set both at once inside the ad group, but they answer separate questions: the billing event answers what spends the budget, and the bid answers how much each of those actions is allowed to cost before the auction decides the final price. Keep the two straight and your reporting stays readable, because you always know which number drove your spend.
Not often, and never in the middle of a test. The billing event sits at the foundation of a campaign, so changing it resets the data you are gathering and makes week-to-week comparisons unreliable. Leave it fixed for the full length of a test, usually two to four weeks, so the auction and your reporting have a stable basis. When you do change it, treat it as launching a new campaign: reset your expectations, your benchmarks, and your budget pacing. The setting you should adjust frequently is your bid, which you can move up or down as click costs and conversion rates come into focus. Reserve a change to the billing event for a genuine shift in goal, such as moving from an awareness push to a performance push. Frequent switching is usually a sign the campaign objective was never clear in the first place, and it leaves you without a clean read on what works.
The cost of a billing event varies because the price is set by a live auction instead of a fixed rate card. Each time your ad is eligible for a ChatGPT conversation, you compete against other advertisers on both your bid and how relevant your ad is to that specific conversation. When many advertisers want the same context, the clearing price rises; when few do, it falls, so the same billing event can cost more in a crowded category than in a quiet one. Ad relevance pulls the other way, because a highly relevant ad can win the slot at a lower effective price when the platform rewards answers that fit the user's question. Your objective matters too, since an impression event and a click event are priced on completely different scales. The practical result is that two campaigns with identical settings can post different costs simply because they target different conversations at different times.
Yes. You directly control the billing event by setting the billing_event_type field on each ad group, so this is one of the few parts of ChatGPT Ads you decide outright instead of influencing from the sidelines. You choose click or impression at setup, and you can change it later, though doing so restarts your test. What you do not control is the final price of each event, which the auction sets within the ceiling your bid defines. So you own the choice of which action spends your money, while the market decides how much each one costs. The useful move is to pair the billing event you control with a bid you can afford, then let conversion data tell you whether the action you selected is the right one. That combination of a deliberate billing event and a disciplined bid is where your real control over ChatGPT Ads spend lives.
A good billing event setup for performance goals almost always starts with cost-per-click paired with live conversion tracking. The honest answer is that there is no universal number to hit, because effective cost depends on your industry and the conversations you target, so judge the setup by whether the clicks you pay for convert at a rate your margins can support. A healthy configuration shows a stable or falling effective cost per click, a steady flow of tracked conversions, and a cost per action that stays inside your target payback window. If your billing event is clicks but almost none of them convert, the setup is working mechanically and failing commercially, and the fix is usually landing-page relevance or targeting instead of the billing event itself. Treat a good setup as one where every charge maps to an action you can measure and connect to pipeline, so you always know what your spend produced.