What 3,602 Early ChatGPT Ads Reveal About Delivery
A 91-account audit recorded 3,602 ChatGPT ads. See the delivery rate, count discrepancies, income finding, limits and audit ledger.
Direct answer: A 91-account audit collected 3,602 visible ChatGPT ads between February 6 and May 20, 2026. During the researchers’ main March 8-31 window, 3,573 of 63,657 conversations produced an ad, or 5.61%. The study found an association between lower ZIP-code income and whether an account ever received an ad. It does not establish advertiser intent, individual income, or a causal targeting rule.
The useful result is a baseline for auditing conversational ads. It also exposes three denominator traps: the full conversation dataset overrepresents prompts that had produced ads, “ever exposed” differs from the rate after an account’s first ad, and the paper uses several ad totals for different analytical subsets.
The study measured delivery, not advertiser intent
The Beginning of ChatGPT Ads is a sock-puppet audit by Emma Lurie, Ro Encarnación, Sorelle A. Friedler and Danaé Metaxa. The researchers created controlled free ChatGPT accounts, varied location signals associated with race and household-income groups, sent a standardized prompt set, and recorded ads identified by a visible Sponsored label in the page HTML.
That design can detect differences in observed delivery across the simulated accounts. It cannot show which advertiser selected a person, whether ChatGPT knew a real user’s income or race, or which internal signal caused an individual ad. ZIP-code characteristics are group-level proxies, not personal attributes.
What the audit actually ran
| Field | Recorded design | Why it matters |
|---|---|---|
| Accounts | 91 free accounts in a 3×3 design | At least nine accounts represented each race-proxy and income-tercile cell. |
| Location signals | Residential proxies plus 2-3 location-establishing prompts | The audit tested geographically signaled profiles, not verified individual demographics. |
| Prompt corpus | 335 prompts: 146 Reddit-derived, 95 adapted from OpenAI usage research, 89 researcher-curated and 5 location prompts | Prompt source and topic mix constrain generalization. |
| Daily schedule | 30 randomly drawn prompts plus up to 20 prompts that had previously produced an ad | The full dataset intentionally overrepresents ad-producing prompts. |
| Collection | 127,801 conversations from February 6 to May 20 | The principal pre-drop analysis window was March 8-31. |
| Ad detection | Sponsored label in captured page HTML | The study measured visible delivered ads, not the complete auction or candidate set. |
Completion was imperfect. The paper reports 65% prompt completion and 59% complete account-days. The authors also suspect that the sharp collection drop after March 31 may reflect accounts being flagged as inauthentic. That possibility limits any claim about stable delivery over time.
Why the paper contains three ad counts
The abstract says the team collected more than 3,000 ads from 186 advertisers. The contribution section and findings report 3,602 ads from 191 advertisers. A sector figure refers to 3,303 confirmed impressions. These values should not be treated as interchangeable.
| Number | Context in the paper | Safe use |
|---|---|---|
| 3,573 | Ads among 63,657 conversations in the March 8-31 study window | Use for the 5.61% main-window delivery rate. |
| 29 | Additional ads collected after March 31 | Add to the main-window count for the full 3,602 total. |
| 3,602 | Full-study advertisements across 191 advertisers | Use as the paper’s reported complete collection total. |
| 3,303 | Confirmed impressions included in the 16-sector figure | Use only for that classified sector subset. |
| 186 advertisers | Abstract | Treat as a summary discrepancy; the body reports 191. |
The paper does not provide a single sentence reconciling every difference. SearchEngineAnswer therefore uses 3,602 and 191 for the full-study result, 3,573 and 63,657 for the main-window rate, and 3,303 only when discussing the sector figure.
Ads appeared in 5.61% of the principal-window conversations
The main window contained 63,657 interactions and 3,573 ads. Dividing those values produces 5.61%. After March 31, the researchers collected 29 more ads, bringing the full total to 3,602.
That 5.61% is not a population-wide ChatGPT ad rate. The daily schedule included extra prompts that had previously elicited an ad, the accounts were simulated, only free accounts were included, the study was U.S.-based, and only responses with the detectable sponsored treatment counted as ads.
Among 53 accounts that ever received an ad, the median delay from activation to first exposure was 14 days. No exposed account received an ad in its first seven days. For the 48 accounts exposed during March 8-31, the median rate after first exposure was 24%. “Five-point-six percent of conversations,” “ever exposed,” and “24% after first exposure” answer different questions.
The income result is an association with a ZIP-code proxy
The researchers report an odds ratio of 0.98 for each $1,000 increase in ZIP-code median household income, with a 95% confidence interval of 0.96-1.00 and p = 0.0438. In this sample, accounts assigned to lower-income ZIP codes were more likely to receive at least one ad.
The result does not show that advertisers targeted low-income people, that ChatGPT inferred an individual user’s salary, or that income caused the delivery difference. Location, account history, availability, prompt response, advertiser supply and unobserved rollout rules may all matter. The study did not find a statistically significant race association, but only 16-19 exposed accounts were available per racial group, so the null result is underpowered for small effects.
Product and how-to prompts produced many visible ads
The study reports that retail and information advertisers accounted for 57% of the 3,303 sector-classified impressions. Retail contributed 1,057 and information 843. The result describes this early sample, not the future composition of ChatGPT advertising.
Several high-rate prompts involved an immediate product or service decision. Examples in the paper include replacing a broken headlight, fixing a dishwasher that will not drain, choosing a streaming service and evaluating a new iPhone. Sensitive categories such as politics, mental health and financial services were included in the prompt corpus; their treatment should be audited separately rather than inferred from the aggregate.
OpenAI documents the selection inputs at a higher level
OpenAI’s ads announcement says ads are clearly labeled and separated from answers. It says selection may use the topic of the current conversation, past chats when ad personalization is enabled, and prior ad interactions. OpenAI also says advertisers receive aggregate performance information rather than users’ conversations, memories or personal details.
Those are product-policy statements, not a disclosure of the ranking or auction system used for each impression. They do not explain the study’s income association. The independent audit and OpenAI’s documentation belong in the same record, but one does not validate every claim made by the other.
What publishers and advertisers should test
- Separate ad eligibility, an eligible response, a rendered sponsored unit, a click and a downstream conversion.
- Freeze the prompt panel, account type, plan, geography, interface and observation window before comparing rates.
- Report all responses, then show ad-producing subsets separately so enrichment does not become a hidden denominator.
- Keep sensitive-topic prompts in their own stratum and record zero-ad responses.
- Preserve screenshots or HTML evidence without publishing account credentials, personal data or residential proxy details.
- Record advertiser, landing page, label, placement and answer separation; do not infer targeting intent from delivery alone.
For paid-versus-organic analysis, pair this with the ChatGPT product-feed and organic-shopping distinction. For context-hint testing, use the conversation-matching protocol and keep its fixture results separate from live delivery.
Download the conversational-ad audit ledger
Download the CSV audit ledger. It records the unit of analysis, prompt family, account state, observable ad event, denominator inclusion, evidence path, limitation and review decision. Every included row is marked EXAMPLE-REMOVE; replace or delete those rows before a real study.
The template is a reproducibility aid, not a benchmark and not a copy of the researchers’ dataset. Do not store account passwords, tokens, personal prompts, raw proxy identifiers or user-level demographic data in the public file.
Editor’s interpretation
The delivery pattern matters more than the headline total
A sample of 3,602 ads is large enough to expose recurring delivery patterns, but it is not a census of every market, user or future campaign. The useful question is which decisions the observed distribution can support today.
- Use the sample to identify creative formats and landing-page patterns worth testing.
- Do not convert an observed share into a platform-wide market-share claim.
- Separate what appeared in the collection from what advertisers can actually target or control.
My takeaway: I would use this audit to design an acceptance test for an early campaign, not to forecast reach or spend.
Sponsored Agents add a second measurement surface
OpenAI now describes Sponsored Agents for select US advertisers. After a person clicks an ad, the advertiser can offer a clearly labeled, business-sponsored conversation. OpenAI says this agent is separate from the independent answer and original ChatGPT conversation, and it can send the user to the advertiser’s website.
The distinction changes the measurement funnel. The ad impression and click belong to media delivery. The sponsored conversation is a post-click experience controlled by the advertiser. A useful report should therefore preserve at least six stages: impression, click, agent start, question depth, site click and business conversion.
| Control | Failure to test |
|---|---|
| Catalog freshness | The agent recommends an unavailable or superseded product. |
| Price and availability | The conversation states a price that differs from the destination page. |
| Claims policy | The agent makes an unapproved performance, health or legal claim. |
| Human escalation | A high-risk question has no safe handoff. |
| Conversation logging | The team cannot reproduce the path that produced a complaint or conversion. |
| Destination continuity | The landing page loses the product, answer or context established in the agent. |
OpenAI’s Ad Tools Terms make the advertiser responsible for the sponsored agent’s configuration, content, actions and output. That responsibility is why agent engagement should not be reported as ordinary click-through rate or blended into the 3,602-ad delivery study.
The commerce layer adds more than a campaign button
OpenAI’s September 16 announcement also adds three operating surfaces around the ad: an Ads Manager plugin in ChatGPT Work, AI assistance inside Ads Manager, and partner integrations with HubSpot and Shopify. The plugin can create, update, and analyze campaigns from natural-language prompts. Ads Manager can suggest copy and imagery, while an optional text-customization feature can adapt headlines and descriptions to the conversation and translate them to the user’s preferred language.
| Surface | New action | Evidence to keep |
|---|---|---|
| ChatGPT Work | Create, update, or analyze a campaign through the Ads Manager plugin. | Prompt, proposed change, reviewer, approved change, campaign ID, and before-and-after settings. |
| Ads Manager creative | Suggest copy and imagery, or adapt and translate existing ad text when the advertiser opts in. | Original creative, generated variant, language, destination, approval, and policy review. |
| HubSpot | Connect an ad account, create ads, track performance, and follow up on leads using HubSpot context. | Account mapping, consent state, lead source, attribution window, and CRM outcome. |
| Shopify | Sync the product catalog, build campaigns, set up conversion measurement, and manage performance in Shopify. | Variant ID, feed state, price and stock match, pixel event, server event, and order reconciliation. |
The Shopify listing exposes a real permission and launch-risk audit
The Shopify App Store listing says the free app is developed by OpenAI and launched on September 3. It requests access to customer device and activity data, product listings and collections, marketing events, and web and server pixels. Store owners should review those permissions, their consent implementation, and their event-deduplication plan before installation.
As of September 18, the listing showed a 2.8 rating from eight reviews, including five one-star ratings. Two reviews dated September 16 and 17 described connection or verification failures. That is a very small, self-selected sample. It does not establish a platform-wide defect, but it is enough to justify a connection test before a merchant commits a launch calendar.
- Connect a non-production or tightly scoped store and record the requested permissions.
- Confirm the catalog count, variant identifiers, price, availability, and destination URLs after sync.
- Run one consented test conversion and compare the browser event, server event, ad-platform event, and Shopify order.
- Disconnect and reconnect the app, then verify whether catalog and campaign state remain consistent.
- Do not treat a successful installation as proof that products are eligible, serving, or correctly attributed.
The new integrations make campaign operations easier to reach. They also make permission scope, catalog reconciliation, creative approval, and conversion evidence part of the same release decision.
Ads Manager now documents the auction and account controls
OpenAI’s current Ads Manager account documentation describes self-service setup for eligible advertisers. The advertiser creates the account, completes Persona verification, enters account and billing information, and can then invite an agency. An agency cannot create the client’s account on the client’s behalf.
Country, currency and time zone cannot be changed after account creation. One person is the account owner, and an account will not deliver ads until setup is complete. OpenAI also says a user who already belongs to ten or more ad accounts cannot create another, although that user can still be invited to existing accounts.
The current ads basics page describes views, clicks and conversions as campaign objectives. It says the auction is relevance-weighted and second-price, with billing available for impressions or valid clicks. For click campaigns, OpenAI recommends an initial maximum CPC of $3 to $5. That is platform guidance, not a market benchmark or guaranteed clearing price.
Context hints guide relevance but do not behave like exact-match keywords
OpenAI’s context-hint guidance recommends natural-language descriptions of what the product helps with, who it helps and when it is useful. A hint expresses one relevance idea. It does not guarantee delivery and cannot enforce geography, scheduling or exclusions.
The documented selection inputs include the current conversation’s intent and context, the landing page, ad title and copy, context hints and, when personalization is enabled, broader user-experience signals. Keep the hint, creative and landing-page claim aligned, then measure actual delivery. A configured hint is not evidence that a specific impression used it.
OAI-AdsBot can block delivery before the auction is the problem
OpenAI’s advertiser crawler guidance says landing pages must allow OAI-AdsBot. The crawler validates destinations and may use page content for relevance. OpenAI recommends also allowing OAI-SearchBot, including access to product-feed image URLs.
| Check | Evidence to save | Failure state |
|---|---|---|
| Robots access | Fetched robots rules and matching user-agent decision | OAI-AdsBot is disallowed. |
| HTTP response | Status, redirect chain and final canonical URL | 403, 429, redirect loop or inaccessible regional destination |
| WAF and challenge | Bot request outcome without a browser session | CAPTCHA, JavaScript challenge or authentication wall |
| Page continuity | Final headline, product, price and availability | Creative promise is missing or contradicted. |
| Feed images | Image URL response for OAI-SearchBot | Product image is blocked or expiring. |
OpenAI publishes stable bot-IP lists at adsbot.json and searchbot.json. An allowlist should be maintained from those files rather than copied once into permanent firewall rules.
Conversion campaigns and Sponsored Agents need separate evidence
The conversion-optimization documentation describes oCPC campaigns billed on valid clicks and oCPM campaigns billed on impressions. Both optimize toward a selected standard event. Custom conversion events are not supported, and the objective, billing model and selected event cannot be changed after campaign creation.
Sponsored Agents remain a limited alpha for selected advertisers. OpenAI is not accepting early-access requests. Keep the media impression, ad click, sponsored conversation, site visit and business conversion as separate events. A longer sponsored conversation is not automatically a conversion.
Sources, method and limits
Sources: the August 5, 2026 arXiv paper The Beginning of ChatGPT Ads, its linked public ad library, and OpenAI’s current ads announcement. Links appear beside the claims they support.
SearchEngineAnswer contribution: We reconciled the paper’s 3,573, 3,602 and 3,303 ad counts; separated the main-window, ever-exposed and post-first-exposure denominators; and built a privacy-safe audit ledger that forces each rate to name its eligible observations.
Limits: We reviewed the paper and public archive documentation; we did not create sock-puppet accounts or reproduce delivery. The paper is version 1, has not established causal targeting, and may be revised. Product behavior, eligibility, app reviews and policy can change after September 18, 2026.
The delivery system behind the 3,602-ad audit
The supporting reports on market access, product feeds, bidding and measurement now sit beside the observed ad sample. This separates what the audit actually saw from the platform mechanics an advertiser must configure.
| Change | What it affects | Best next check |
|---|---|---|
| ChatGPT Ads Europe: 31-Market Access Guide | OpenAI says ChatGPT Ads will reach 31 European markets, but buying starts through partners and the announcement contains no performance benchmark. | OpenAI names nine example countries but does not publish the complete 31-country list. |
| ChatGPT Delta Feeds: Accepted Does Not Mean Your Product Is Serving | An accepted Delta Feed update has entered processing; indexing, eligibility and serving remain separate states to reconcile. | It updates titles and availability for existing variants; it does not create the catalog. |
| ChatGPT Conversion-Optimized Campaigns Still Charge Per Click | OpenAI’s oCPC beta optimizes toward one standard conversion event, but advertisers still pay for valid clicks. | Report platform-attributed CPA and validated business CPA separately. |
| ChatGPT Ads Pixel vs Conversions API: What Each One Measures | Compare OpenAI’s browser pixel and server-side Conversions API by reliability, consent, deduplication, view-through attribution and release QA. | The documented one-day view-through metric is not included in Conversions and does not change click-based optimization or billing. |
Originally reported 2026-08-24
ChatGPT Ads Europe: 31-Market Access Guide
Why it matters: OpenAI says ChatGPT Ads will reach 31 European markets, but buying starts through partners and the announcement contains no performance benchmark.
Next check: OpenAI names nine example countries but does not publish the complete 31-country list.
Direct answer: OpenAI announced an expansion to 31 European countries for the week of August 24, 2026. That announcement described initial access through its Ads Solutions team, agency partners and technology partners. OpenAI’s current Ads Manager documentation now describes self-service account setup for eligible advertisers, so the historical access note should not be read as the current operating model.
The rollout is meaningful because it is OpenAI’s largest disclosed geographic expansion of ChatGPT Ads. It is not yet a performance result. The announcement contains no country-level inventory, CPM, CPC, conversion-rate, reach, or return-on-ad-spend benchmark.
What OpenAI announced
OpenAI’s August 18 announcement names Germany, France, Spain, Italy, Sweden, Norway, Denmark, the Netherlands, and Austria as examples inside a 31-country European rollout. The company does not provide the complete list of 31 countries on that page. A buyer should therefore verify a target country directly rather than treating every European market as confirmed.
| Question | Official position on August 24 | Planning boundary |
|---|---|---|
| Where is it expanding? | 31 European countries; nine are named as examples | Do not infer the other 22 from geography alone |
| Who can buy? | The August announcement described partner-led initial access; current Ads Manager documentation describes self-service setup for eligible advertisers. | Eligibility and market availability still need account-level confirmation. |
| Who may see ads? | ChatGPT Free and Go users in supported markets | Plus, Pro, and Enterprise remain ad-free |
| How is self-service configured? | The advertiser creates the account, completes verification and adds billing before inviting an agency. | An agency cannot create the client account on the client’s behalf. |
| What can be measured? | OpenAI names its Pixel, Conversions API, and third-party integrations | No European performance denominator is published |
OpenAI also says conversations remain private from advertisers, ads are labeled and separate from answers, and advertising does not influence ChatGPT’s answers. Those are platform-policy statements. Buyers should still review the contract, targeting controls, consent setup, creative review, and market-specific legal duties that apply to their own campaign.
Access is not the same as inventory
There are at least four separate states in this rollout:
- market announced: OpenAI includes a country in its expansion;
- advertiser approved: a business has a usable account or partner route;
- campaign eligible: the creative, audience, objective, billing, and measurement setup pass review;
- ad delivered: eligible Free or Go users actually receive impressions.
A press release proves the first state. It does not prove the next three for a specific advertiser. Ask the sales or agency contact to confirm the target country, available objective, billing currency, minimum commitment, supported conversion event, reporting latency, and inventory estimate in writing.
This distinction matters when a channel is new. A campaign can be technically enabled but too small to spend at the planned rate. It can also deliver clicks before server-side events are reconciled. Our comparison of the ChatGPT Ads Pixel and Conversions API explains why browser and server measurement need one event contract, while the oCPC billing guide separates conversion optimization from click-based charging.
What “tens of thousands” does not prove
OpenAI says tens of thousands of marketers have advertised on ChatGPT. It does not disclose the counting method, time window, active-campaign threshold, spend distribution, repeat rate, or how many of those marketers bought outside the United States. Treat the figure as a first-party platform statement; not as evidence that a typical European campaign will reach scale or meet a performance target.
The same caution applies to the phrase “actively exploring, comparing, and making decisions.” It describes the product’s intended commercial context. It is not a published lift study. A useful launch report should keep platform-attributed outcomes beside first-party validated outcomes and preserve zero-conversion campaigns.
A budget-readiness checklist
- Confirm that every target country is officially supported; save the dated confirmation.
- Record whether access is direct, agency-led, or technology-partner-led and identify who owns the account and data.
- Freeze the campaign objective, eligible conversion event, billing model, and attribution window before forecasting.
- Test the Pixel and Conversions API with a stable event identifier and documented consent behavior.
- Separate impressions, valid clicks, platform conversions, validated conversions, revenue, and refunds.
- Use a small bounded test with an explicit stop rule; do not transfer a U.S. benchmark into Europe without evidence.
For a first test, the useful question is not “Does ChatGPT Ads work?” It is “Under this country, access route, audience, creative, objective, attribution rule, and measurement setup, what outcome did a defined budget produce?”
Source, method, and limits
Primary source: OpenAI: ChatGPT Ads expands across Europe, published August 18, 2026 and checked August 24, 2026.
Method: We separated geographic announcement, advertiser access, user-plan inventory, buying interface, measurement capability, and performance evidence into distinct fields. No third-party market list or benchmark was used to fill a gap in OpenAI’s announcement.
Limits: OpenAI names only nine example countries in the announcement and publishes no Europe-specific performance dataset. Current Ads Manager eligibility can differ by account and market, and product terms can change after publication.
Originally reported 2026-08-16
ChatGPT Delta Feeds: Accepted Does Not Mean Your Product Is Serving
Why it matters: An accepted Delta Feed update has entered processing; indexing, eligibility and serving remain separate states to reconcile.
Next check: It updates titles and availability for existing variants; it does not create the catalog.
Direct answer: accepted: true from the ChatGPT Ads Delta Feeds endpoint means an update was accepted for processing. It does not prove the change was indexed, the product stayed eligible, or an ad served. Delta Feeds update the availability and titles of existing variants; they do not create a catalog, feed, product or variant.
Treat the response as the first checkpoint in an asynchronous pipeline, not as the final merchandising state.
The four states you need to record
| State | Evidence | Safe conclusion |
|---|---|---|
| Submitted | Your system formed and sent the request | A delivery attempt happened |
| Accepted | Endpoint returned accepted: true | OpenAI accepted it for processing |
| Reconciled | Later feed/product state matches the source of truth | The update appears to have propagated |
| Serving | Eligible campaign/ad evidence exists | The product can or did participate in delivery |
Indexing and eligibility sit between acknowledgement and delivery. A title can be accepted but later fail a policy or data rule. Availability can be stale if a later update overtakes an earlier one. A product can be correct and eligible but never receive an impression.
What Delta Feeds can change
OpenAI documents Delta Feeds as an account-enabled feature for changing variant availability and titles through PATCH /feeds/{feed_id}/products. It is deliberately narrower than a full feed:
- Use a full feed or product workflow to create the catalog and new products.
- Use Delta Feeds for time-sensitive corrections to existing variants.
- Do not send a complete catalog as if the endpoint were a replacement feed.
- Do not infer creation when an unknown identifier is acknowledged at the request layer.
The operating benefit is freshness. The operating risk is silent divergence between your commerce database, the last accepted patch and the downstream ad state.
Build a reconciliation ledger
Store one row per attempted change with the feed ID, product and variant identifiers, old value, new value, source timestamp, request timestamp, response, retry count and reconciliation result. Make the source timestamp monotonic so a delayed worker cannot overwrite a newer availability value.
Useful alerts are about state gaps, not raw request counts:
- accepted updates not reconciled within the normal window;
- repeated failures for one identifier or field;
- inventory marked unavailable in commerce but still eligible downstream;
- out-of-order updates;
- a sudden drop in product eligibility after a title release.
For bulk runs, canary a small set before sending the full queue. Preserve exact request and response bodies with sensitive fields redacted. Replaying from logs should be possible without inventing the prior source state.
A practical runbook
- Confirm the account is enabled and the base feed already contains the target variants.
- Validate identifiers and allowed title/availability values locally.
- Send a canary patch and record the acknowledgement.
- Poll or export the relevant downstream state when the product provides it.
- Check eligibility separately from data propagation.
- Check serving separately from eligibility.
- Retry only idempotent changes, with backoff and an age limit.
For the broader commerce context, read ChatGPT product feeds, organic shopping and ads. For measurement, use the Ads Pixel vs Conversions API comparison.
Primary source and limit
Limit: This is a documentation-led operational guide, not a live feed experiment. Downstream status surfaces and enablement can vary by account. The word “accepted” should be interpreted exactly as documented: accepted for processing.
Originally reported 2026-08-16
ChatGPT Conversion-Optimized Campaigns Still Charge Per Click
Why it matters: OpenAI’s oCPC beta optimizes toward one standard conversion event, but advertisers still pay for valid clicks.
Next check: Report platform-attributed CPA and validated business CPA separately.
Direct answer: OpenAI’s conversion-optimized ChatGPT ad campaigns still charge for valid clicks. Selecting bidding_type: "conversions" changes the optimization objective, not the billing event. OpenAI describes the feature as oCPC and currently offers it as an open beta for standard and product-feed campaigns.
This distinction matters for forecasts. A “conversions” bidding type does not create cost per acquisition billing, guarantee a conversion, or let an advertiser ignore click quality.
Optimization and billing are different
An ad platform needs two separate contracts. The optimization contract tells the delivery system which future event to prefer. The billing contract defines what creates a charge. In OpenAI’s documented beta, the campaign can optimize toward a selected conversion while the advertiser pays for each valid click.
| Layer | Documented behavior | What it does not mean |
|---|---|---|
| Bidding type | conversions | Payment only after a conversion |
| Optimization goal | One active standard conversion event | Any arbitrary custom event |
| Charge | Each valid click | Guaranteed CPA |
| Editing | Goal and event are fixed after creation | Safe goal switching mid-test |
Custom events are not eligible as the optimization event. OpenAI also says a campaign must have exactly one active standard conversion event, and the optimization goal and event cannot be changed after creation. That makes preflight validation more important than dashboard experimentation.
Choose a conversion the system can learn from
The deepest business event is not automatically the best learning event. A rare subscription or qualified sale may have strong value but too little volume or too much delay. A checkout start may provide more signal but optimize toward people who never pay.
Score candidates across five fields:
- Business proximity: how close the event is to revenue or another real outcome.
- Frequency: how often it occurs in the campaign’s expected traffic.
- Delay: how long after the click the event becomes observable.
- Reliability: whether pixel/API delivery survives browser and backend failure.
- Reversibility: whether cancellations, spam leads or refunds can be identified in first-party reporting.
Because the selected event is immutable after campaign creation, test its measurement path first. Our Pixel vs Conversions API guide shows the failure cases to include.
Forecast costs with click math
A useful planning model stays explicit:
spend = valid clicks × average cost per valid click
attributed CPA = spend ÷ attributed conversions
business CPA = spend ÷ validated first-party outcomes
The last two denominators can diverge because attribution windows, consent, duplicates, refunds and unqualified events differ. Report both rather than treating a platform conversion as a completed business outcome.
Run a holdback or at least a stable comparison campaign when possible. Record creative, audience, budget, event definition and measurement release dates. A falling platform CPA after a tracking change is not necessarily a delivery improvement.
Launch gates
- The standard conversion event is valid, active and tested end to end.
- The team has accepted that billing remains click-based.
- The event has enough expected volume for a bounded experiment.
- Server and browser duplicates are reconciled.
- The reporting view separates click-through and eligible view-through attribution.
- Stop rules use spend, business outcomes and measurement health; not only dashboard CPA.
This is an ads optimization surface, not proof of broader answer-engine optimization. Keep paid delivery metrics separate from organic retrieval, citations and referrals.
Primary source
OpenAI: Conversion-optimized campaigns.
Limit: The feature is an open beta. This article explains the documented contract as reviewed on August 16, 2026; it does not report campaign performance or predict eligibility.
Originally reported 2026-08-16
ChatGPT Ads Pixel vs Conversions API: What Each One Measures
Why it matters: Compare OpenAI’s browser pixel and server-side Conversions API by reliability, consent, deduplication, view-through attribution and release QA.
Next check: The documented one-day view-through metric is not included in Conversions and does not change click-based optimization or billing.
Direct answer: OpenAI’s Ads Pixel measures browser events, while the Conversions API sends events from your server. The API is more resilient to browser loss; the pixel is faster to install and can observe browser-only context. OpenAI recommends the server path as the more reliable foundation, but neither method makes an event true merely because it was received.
The practical setup is not “pick the better tag.” It is a measurement contract: define one event, preserve the same identifiers on both paths, deduplicate deliberately, and reconcile accepted events against orders or leads in your own system.
What each method actually does
| Question | Ads Pixel | Conversions API |
|---|---|---|
| Where it runs | In the visitor’s browser | From your server |
| Typical strength | Quick page and browser-event instrumentation | More reliable delivery from a first-party system |
| Typical loss | Consent denial, script blocking, navigation or browser failure | Bad joins, missing click identifiers, queue failure or backend bugs |
| Batch behavior | Individual browser calls | Up to 1,000 events; one invalid event can fail the batch |
| App events | Not supported | Supported through the API |
The pixel uses the browser SDK and its oaiq("measure") call. The API is a server-to-server endpoint. That difference matters because a browser confirmation can disappear before the order system commits the transaction, while a server event can arrive without enough attribution data to connect it to an ad interaction.
OpenAI’s supported-event list includes page views, content views, checkout starts, orders, leads, trials, subscriptions, registrations, appointments and app events. Monetary values are integers in ISO 4217 minor units: for example, 19.99 USD is represented as 1999. Treat that rule as a schema test, not a formatting preference.
Build one event contract before installing either path
Start with the business event, then map the delivery methods to it. An order_created event should mean the same thing whether the browser or server sends it. Write down the trigger, required fields, clock, value rule, currency rule, identifier source, retry policy and cancellation treatment.
- Name the source of truth. A thank-you page is not necessarily an order; the commerce database usually is.
- Choose one stable event identifier. Generate it once and carry it across browser and server calls when both paths report the same action.
- Preserve attribution identifiers. A reliable backend event that cannot be joined to an ad interaction may still be unusable for campaign reporting.
- Queue server events. Retries should be idempotent, observable and bounded.
- Quarantine invalid batch rows. Because one invalid event can reject a full API batch, validate locally before sending and split failures for repair.
This is the same discipline described in our AI visibility measurement crosswalk: keep the observed platform event separate from the first-party outcome it is supposed to represent.
View-through is a separate measure
Eligible accounts can receive view-through attribution through either implementation. OpenAI documents a fixed one-day view-through window and says click-through takes precedence. It also says view-through appears as a separate campaign metric, is not included in the Conversions column, and does not change optimization or billing, which remain click-through based.
That prevents a common reporting error: adding view-through results into click conversions and then comparing the inflated total with first-party orders. Keep four columns instead; click-attributed, view-attributed, deduplicated platform conversions and first-party outcomes.
Consent is another boundary. The pixel initializes consent as true unless you explicitly set it otherwise. Events blocked while consent is false are not replayed later. Your consent manager therefore has to set state before measurement calls and reinitialize accurately when the visitor changes a choice.
A release checklist that catches real failures
- Test one valid and one invalid payload for every enabled event.
- Confirm that a duplicate browser/server pair produces one business outcome in your reconciliation table.
- Send zero-value, multi-currency, refund and delayed-conversion test cases where applicable.
- Verify that consent-denied sessions do not send browser events.
- Alert on API rejection rate, queue age, missing identifiers and the gap between accepted events and first-party outcomes.
- Run the same checks after tag-manager, checkout, consent or backend releases.
For campaign optimization, continue with how ChatGPT conversion-optimized campaigns are billed. For broader attribution discipline, see how to track AI referrals in GA4 without inventing certainty.
Sources and limits
- OpenAI Ads Pixel documentation
- OpenAI Conversions API documentation
- OpenAI supported conversion events
Method note: This guide translates the documentation into an implementation and QA model. We did not run a live advertiser account, and eligibility, endpoints and fields may change during rollout. Verify the current account documentation before deployment.
Keep learning
Continue this topic
Next in this topic
Google AI Mode Cut Publisher Click-Through by 18.8 Points in a Field Experiment
Earlier in this topic
What 7,473 AI Citations Can and Cannot Tell Us
Research
Ask a question or join the discussion