ChatGPT Ads: the complete manual
How it works, how to advertise and what decides delivery
All technical information comes from OpenAI’s official documentation: Help Center and developer docs. The channel is in beta and changes frequently. Where sources disagree, it is recorded in Part VI.
PART I: The channel
1. What ChatGPT Ads is
It is OpenAI’s paid media platform. The ad appears inside ChatGPT, right below the answer the user received, labelled as sponsored and visually separated from the model’s text.
The format is a card with advertiser name, favicon, headline, supporting text, image and a link to your site. For retail there is a second format, generated from a product feed, showing image, title, star rating, price, sale price and brand.
Two things OpenAI answers explicitly in the documentation: ads do not influence ChatGPT’s answers, and the advertiser has no access to conversations, memories or personal data. What reaches you is aggregate reporting.
The channel has been open to advertisers based in Brazil since 6 August 2026, with self-service in the Ads Manager Beta, a Portuguese interface and values in reais.
2. Who sees the ads
This is the first piece of information that changes the maths of any media plan.
Ads appear only to users on the Free and Go plans. Plus, Pro, Business, Enterprise and Edu subscribers see no ads at all. Accounts identified as belonging to users under 18 are excluded too, as are Temporary Chats. During testing, ads also do not appear in the ChatGPT Atlas browser.
There is also an exclusion by topic. The system does not serve ads near conversations about personal health, mental health and politics. Political advertising is prohibited, and regulated verticals such as healthcare and financial services go through strict eligibility criteria.
Check this before building the proposal. If your product sells to an audience that almost certainly subscribes to Plus, the inventory available to you is smaller than the size of the Brazilian base suggests.
3. What it costs
You choose between three objectives, and the objective defines how billing happens.
| Objective | Billing | The system optimises for |
|---|---|---|
CPM (impressions) | Per thousand impressions | Broad delivery, reach |
CPC (clicks) | Per valid click | Clicks from people likely to engage |
oCPC (conversions) | Per valid click, not per conversion | Clicks more likely to produce the chosen conversion |
The maximum bid is set at ad group level. For CPC campaigns, OpenAI’s own recommendation is to start between US$ 3 and US$ 5 per click. The manager shows a bid strength indicator, warning when the value may limit delivery.
In oCPC the bid logic changes completely, and this is one of the most expensive points in the channel. It is detailed in item 11.
The daily minimum in Brazil is R$ 40 per campaign, around R$ 1,200 per month. For comparison, the minimum in the United States is US$ 25 and in Mexico MXN 150.
You can work with a daily budget or a total campaign budget. The daily budget is a delivery target and fluctuates slightly up and down. The total budget is a hard ceiling, and here lies a trap: it does not control pacing. If delivery picks up, it spends fast and the campaign ends before the date you planned.
4. How the system decides which ad to show
The auction is second price, weighted by relevance. You pay a value based on the second highest bid, and relevance works as a multiplier. A high bid alone does not buy space in a conversation that has nothing to do with you.
To decide whether your ad fits that moment, the system looks at the same time at:
- the context and intent of the conversation happening
- your landing page
- the ad’s headline and text
- the context hints you wrote in the ad group
- broader user signals, when their personalisation is on
Five inputs, and three of them are text you wrote.
5. What changes compared to Google and Meta
Two structural differences.
You do not buy keywords. The buying unit is the context hint, a natural language description of the conversation themes, needs and situations where your offer makes sense. OpenAI’s documentation is clear that hints are not exact match rules and do not guarantee delivery. They guide the system, which decides.
You do not target by demographics. There is no age, gender or declared interest as on Meta. Geographic targeting exists, with country required, and custom lists exist, with a size restriction covered in item 22. Beyond that, targeting is semantic. You describe a territory of conversation and the system assesses whether your brand belongs in it.
Anyone who has run media for years takes a while to adjust. The question that produces results here is a different one: what conversation is my client having ten minutes before they need me.
PART II: The five findings that decide delivery
Five points the documentation states, but which sit scattered across different articles and are missed by almost every piece published on the subject in Brazil.
6. Your site takes part in the auction
This is the finding that changes operations the most.
OpenAI uses its own crawler, the OAI-AdsBot, to read the ad’s landing page. It does two things: it checks whether the page complies with ad policy and it helps determine when your ad is relevant. Allowing this crawler is mandatory. Allowing the OAI-SearchBot is recommended.
If your site blocks the crawler via robots.txt, WAF, Cloudflare, CAPTCHA or a JavaScript challenge, the campaign simply does not serve. And the manager will not spell out the reason. You will see an account spending little or nothing and you will look for the problem in the wrong place.
The practical effect is that technical SEO has become a delivery prerequisite in paid media. A poorly structured site converts worse, as it always did, and now also receives fewer impressions.
Full configuration is in item 10.
7. Writing context hints is language work
The official best practices for writing hints ask for descriptive phrases instead of loose terms, coverage of the different ways clients describe the same problem, one theme per ad group and separate groups for different audiences or use cases.
Read the second item again. “The different ways clients describe the same problem” is the output of proper brand research. Whoever has the client’s vocabulary mapped writes better hints. Whoever does not writes what they think the client would say.
In our reading, this is the competence that separates good accounts from average ones in this channel, and it does not live in the media team.
8. The channel rewards creative volume and variety
The official guidance is to build for coverage. Several headline and text variations for the same offer, each bringing a different angle, without repeating the same message in other words.
This breaks the habit of uploading three creatives per ad set and waiting for the algorithm to choose. Here, each variation is one more chance for the system to find a conversation where you fit. Without a message production machine behind it, the account works with a fraction of the available opportunities.
On the copy itself, the recommendation is concrete benefit: what it is, who it is for, when it is useful. Catchphrases and generic CTAs yield little.
A note on pacing: uploading hundreds of ads at once triggers bot protection on your own site, because the crawler will visit all the landing pages at the same time. See item 10.
9. Feed ads are among the best performing formats
OpenAI states that ads generated from a product feed are among the best performing on the platform so far. For e-commerce and retail, that is the shortest path.
One detail that confuses: products submitted in the feed are eligible for ads only. They do not appear in organic ChatGPT conversations, although OpenAI indicates that may change.
The full technical specification is in item 15.
10. Measurement depends on a parameter your site may be stripping
OpenAI attaches a click identifier called oppref to the destination URL, and it is stored in a first-party cookie. If your redirect structure strips URL parameters, measurement is lost along the way and the conversion is never attributed.
Test that path before launching a campaign, along with installing the pixel and the Conversions API. Using both at once is the recommendation, provided you send the same event identifier so the conversion is not counted twice.
A date to note: on 17 August 2026 automatic Advanced Matching switches on for existing pixels. It is a privacy decision that deserves a conversation with the client before it happens, and the opt-out sits under Tools > Conversions > Data Source.
PART III: The technical layer
This part comes from the developer documentation, which lives at a different address from the Help Center. It is where the rules that decide whether an operation delivers or stalls actually sit.
One structural finding before we start: there is a complete Advertiser API, with endpoints for campaigns, ad groups, ads, insights and conversion configuration, plus a Bulk API. Anyone treating ChatGPT Ads as a manual manager was seeing half the product. See item 16.
11. Crawler infrastructure
OpenAI’s crawler documentation lists four bots. Only one matters for paid media.
Full user-agent for OAI-AdsBot:
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-AdsBot/1.0; +https://openai.com/adsbot
robots.txt block to start with:
User-agent: OAI-AdsBot
Allow: /
User-agent: OAI-SearchBot
Allow: /
Three operational points worth the infrastructure team’s time:
The IP list exists now. Until April this year, OpenAI published IP files for SearchBot, GPTBot and ChatGPT-User, but not for AdsBot. That changed. The file is at openai.com/adsbot.json and serves for firewall allowlisting. Several Brazilian and international pieces still repeat that it does not exist.
Cloudflare already verifies the bot officially. OpenAI states in its advertiser documentation that OAI-AdsBot is verified and included in Cloudflare’s allowlist. That does not mean your specific configuration is cleared, but it means the path to clearing it is short and does not depend on manual IP exceptions.
Bulk uploads trigger rate limiting. Crawler traffic spikes, caused by uploading many ads at once, activate automatic protections. The official guidance is to review HTTP codes, mainly 429 Too Many Requests, in firewall and CDN logs, and to upload ads in smaller batches over a longer period.
That last point has a calendar consequence: do not schedule a launch for the same hour you will upload the catalogue or hundreds of creatives for the first time. Separate the two by at least a day.
Robots.txt solves a small part of the problem. Blocking by WAF, Cloudflare, DataDome or a JavaScript challenge happens before the file is read. And OpenAI’s documentation on AdsBot does not specify how the bot handles robots.txt directives, which reinforces the need to validate via server logs, not via configuration.
12. The bid mistake that costs the whole campaign
This is the most expensive finding in the research.
In oCPC campaigns created via the API, the bid field is max_bid_micros, the same field used in CPC. Except the documentation states, in plain terms, that in an oCPC campaign this value is a CPA bid, not a CPC bid, even though billing happens per valid click.
The official example uses 100000000, which corresponds to US$ 100.00 as a CPA bid in a dollar account.
The likely scenario is this. Someone reads the recommendation to “start with US$ 3 to 5 per click”, which applies to CPC, and puts 5 in the bid field of an oCPC campaign. They have just told the system a ceiling of US$ 5 per conversion. The campaign delivers almost nothing, and the manager does not explain why.
Practical rule: the CPC bid is the price you accept for a visit. In oCPC, the same field means the value of an acquired customer, which in most businesses is one or two orders of magnitude higher.
Other oCPC points:
- In the API the field is
bidding_type: "conversions", and the ad group usesbilling_event_type: "click". - The account needs conversion bidding enabled. If creation returns 403 with
Conversion bidding is not enabled, clearing it goes through an OpenAI representative. - The campaign accepts exactly one standard conversion event as the goal. Custom events do not work as optimisation goals.
- Neither the objective nor the event can be changed afterwards. New campaign.
- You cannot convert an existing CPM or CPC campaign into oCPC.
- Product feed oCPC is in open beta, with
mode: "product_feed".
13. The event taxonomy
OpenAI defines thirteen conversion events. In oCPC campaigns, the chosen event becomes the target the algorithm chases, so the decision weighs far more than picking a reporting label.
| Event | Data format | Use when |
|---|---|---|
page_viewed | contents | A relevant page loads |
contents_viewed | contents | A specific product, ad or content is viewed |
items_added | contents | Item added to cart or selection |
checkout_started | contents | Checkout started |
order_created | contents | Purchase completed |
lead_created | customer_action | Lead form submitted |
appointment_scheduled | customer_action | Meeting, demo or consultation booked |
registration_completed | customer_action | Registration or sign-up completed |
trial_started | plan_enrollment | Free trial started |
subscription_created | plan_enrollment | Paid subscription started |
app_installed | customer_action | App install, Conversions API only |
app_opened | customer_action | App open, Conversions API only |
custom | custom | Outside the standard taxonomy |
Three observations the documentation makes that go unnoticed:
page_viewed is for page loads. contents_viewed is for viewing a specific item, including interactions that happen after the page has already loaded. Many accounts will use the two as synonyms and pollute the data.
app_installed and app_opened do not work in the JavaScript pixel. Conversions API only, with action_source: "mobile_app".
Monetary values go as integers in the smallest currency unit. R$ 129.99 becomes 12999 with currency: "BRL". Sending 129.99 is a type error.
For service clients, appointment_scheduled is usually the right event and almost nobody thinks of it, because everyone’s mind goes straight to lead_created. The difference matters: one measures declared intent, the other measures a booked commitment.
14. Server-side measurement
The Conversions API sends server events to https://bzr.openai.com/v1/events?pid=<PIXEL-ID>. OpenAI itself states it is a more reliable data source than the pixel alone.
What needs to be in the developer brief:
Batches of up to 1,000 events, failing as a block. If one event in the batch fails, the whole batch fails.
There is a test mode. The validate_only: true parameter validates events without recording anything. Use it before switching anything on in production.
The time window is short. The timestamp_ms must fall within the last 7 days and no more than 10 minutes into the future. Any offline conversion pipeline running with a delay longer than a week loses the event.
The API does not capture oppref on its own. The pixel does. The Conversions API does not. You need to store the value at click time and return it in the server event, without modifying the string. This is probably reason number one for unattributed conversions in hybrid integrations.
There is a second identifier called obref. It is a first-party cookie (__obref) the pixel writes in the browser. In a hybrid integration, you read that cookie in the browser, send it to your server and include it as events[].user.obref, unhashed. Mind the position difference: oppref sits at event level, obref sits inside user.
Deduplication: same id in the API and same event_id in the pixel, with the same Pixel ID. For custom events, custom_event_name must also match on both sides.
Phone numbers are out. Unlike Meta, the documentation explicitly instructs not to send phone numbers or phone hashes. The accepted matching fields are email_sha256, external_id_sha256, country, city, postcode, IP and user agent. Hash in lowercase hexadecimal, 64 characters.
There is a per-event opt-out field. opt_out: true removes that event from user-level personalisation. For operations under GDPR or LGPD, it is a useful control almost nobody is using.
View-through: the metric that will confuse the results meeting
View-through conversions use a fixed one day window after an eligible impression. They appear in the Ads Manager as a separate campaign-level metric and do not enter the Conversions total, which remains click-through only.
More importantly: CPA, post-click conversion rate, bidding, billing and conversion optimisation all remain click-based. View-through comes in as contextual reading and stays out of everything that feeds the algorithm.
If a conversion is eligible through both paths, the click takes precedence.
Translating this for the client conversation: the view-through number indicates the campaign’s influence on people who were already deciding. Adding that column to the conversion column to inflate results is the kind of thing that works once and destroys the relationship afterwards.
15. Product feed
For retail, the feed is the channel’s strongest format. It is also the easiest to get wrong.
The eligibility field trap. The documentation warns prominently: use is_ads_eligible, not is_ads_enabled. Ingestion reads is_ads_eligible and the legacy alias is_eligible_ads. is_ads_enabled is not read. An entire catalogue can go invisible because of that field swap, with no error warning.
Transfer by SFTP. The developer documentation is direct: the public advertiser API has no endpoint to create a feed connection, list feeds or upload a catalogue. POST /upload serves only for static creative assets. SFTP credentials are generated inside the Ads Manager, with password or SSH key authentication. There is a disagreement between sources here, recorded in item 23.
Formats and scale. JSONL, CSV or TSV compressed with gzip, or Parquet with zstd. Always UTF-8. One feed connection per ad account, with up to 2 million products. Specialist sources indicate a minimum of around 1,000 products for the programme, a number we could not confirm in the official documentation.
Incremental updates exist. After the initial load, the Delta Feeds API updates availability and variant titles without resending the whole catalogue. That solves expiring items and stale pricing without a full load every hour.
Design ads_metadata before the first load. It is the field that lets you create your own dimensions, such as margin tier, product line or seasonality, and then filter which products enter which ad groups. Redoing it later means reprocessing the entire catalogue.
Common rejection reasons: missing required fields, malformed data types, invalid URI, non-unique product ID, marketing language instead of factual description and price mismatch between feed and site.
That second to last item deserves attention, because it runs against the instinct of anyone who writes for ads. The feed description works as a structured data field, with the same precision requirement as a product code. Too many adjectives fail the file.
Eligibility is not a guarantee. The documentation states that marking a product as eligible is a necessary condition, but does not ensure it will be shown.
16. The Advertiser API
There is a complete API at api.ads.openai.com/v1, with bearer token authentication and endpoints for account, campaigns, ad groups, ads, insights, files and conversion configuration. There is also a Bulk API.
What that enables in practice:
- Creating and versioning campaign structure in code, instead of manual clicking
- Uploading large volumes of creative variations in a controlled way, respecting rate limits
- Pulling delivery metrics straight into your own dashboard, with no manual export
- Standardising naming and structure across different clients
Access goes through a partner setup flow. It is worth opening that conversation early, because approval tends to be the slowest item on the critical path.
For an operation serving several clients at once, this changes the economics of the work. A tested template builds an entire account structure in minutes, and the team’s time goes back to hints, creative and reading.
PART IV: Execution
17. Step by step to get the first campaign live
Twelve steps. The first five happen outside the manager, and skipping any of them usually costs the whole campaign.
- Allow OpenAI’s crawler. Configure robots.txt with the block from item 11 and do the same for OAI-SearchBot. Then test properly: WAF, Cloudflare and bot mitigation rules block even when robots.txt is correct. If you need IP allowlisting, use
openai.com/adsbot.json. - Validate access via logs, not via configuration. Look for requests with the OAI-AdsBot user-agent in server logs. Look for 403, 429 and bot challenges. Correct configuration on paper with real blocking at the edge is the most common situation.
- Pick the right landing page. Point to the page most relevant to what the ad promises, whether product, collection or content. A generic homepage hurts, because the crawler reads the page to assess relevance and a homepage talks about a bit of everything. App store links, deep links and pages behind login do not offer enough readable content.
- Check that measurement survives. Install the pixel, configure the Conversions API and test whether the
opprefparameter arrives intact on the final page after all redirects. Run the Conversions API withvalidate_only: truebefore recording any real event. - Gather your client’s vocabulary. Before writing any hint, collect the real ways people describe the problem you solve. Sales call transcripts, recurring support questions, comments, emails, tickets. That material becomes the raw input for step 9.
- Choose the conversion event. Use the table in item 13. Pick the event that represents the real result, not the easiest one to fire. In oCPC that choice is final: it cannot be changed later.
- Create the account and the campaign. In ads.openai.com, set objective, budget and country. Start with a daily budget, not a total budget. Double warning: the campaign objective cannot be changed afterwards, and switching from total to daily budget is irreversible.
- Structure ad groups by theme. One theme per group. If you serve three different buying situations, that is three groups, not one with everything inside.
- Write the context hints. Descriptive phrases, not loose words. Describe the conversation, the need and the situation. Use the material from step 5 to cover language variations, including the versions where the person does not yet know the technical name for what they need.
- Set the bid with the objective in mind. In CPC, start between US$ 3 and US$ 5 per click. In oCPC, the value is a CPA bid. Review item 12 before typing the number.
- Produce creative volume and upload in batches. Several headline and text combinations per offer, each with a different angle. Concrete benefit instead of catchphrases. Upload in smaller batches over a longer period, and not on launch day. The manager helps by offering drafts assembled from your site’s metadata, without generating text or images with AI, simply reusing what already exists on the page.
- Observe before adjusting, and read by territory. Let the campaign run long enough to generate a reading. Since there is no public benchmark, your comparison point is your own account the week before. The most valuable information this channel produces is which conversation themes convert for your brand, and that feeds back into the site, organic content and positioning.
18. Boost checklist, in order of impact
The first four items are worth more than the following eight combined.
- Validate OAI-AdsBot access via server logs, not robots.txt. Look for 403, 429 and bot challenges.
- Check whether the oCPC bid is set as CPA and not as CPC. If delivery stalled right after creating the campaign, this is it.
- Test whether
opprefsurvives every redirect to the final page. - Choose the conversion event that represents the real result.
- Run the Conversions API with
validate_only: truebefore going live. - Run pixel and Conversions API together, with matching
idandevent_idto deduplicate. - In hybrid integrations, read the
__obrefcookie and return it inuser.obref. - Separate click-through from view-through in reporting, and explain the difference before the first results meeting.
- For retail, check
is_ads_eligiblein the feed and designads_metadatabefore the first load. - Upload ads and catalogue in smaller batches, on a different day from launch.
- Document consent for the data sent through the Conversions API, and use
opt_outwhen the user revokes it. - Start the Advertiser API access request, because approval takes longer than the build.
19. Mistakes that cost dearly
Launching with a total budget thinking it controls pacing. The field works as a spend ceiling and ignores how fast that ceiling is reached. It can burn through everything in a few hours.
Using a CPC bid in an oCPC campaign. Same field, different meaning. See item 12.
Choosing the wrong objective. It cannot be changed. New campaign.
Pointing everything at the homepage. It reduces assessed relevance and wastes the click.
Trusting robots.txt alone. A good share of blocks happen at the WAF or Cloudflare, and the file looks flawless while the crawler stays locked out.
Writing is_ads_enabled in the feed. The correct field is is_ads_eligible.
Counting on custom audiences without a base. The list only activates with 25,000 matches minimum, and the official recommendation is 100,000. Most Brazilian B2B databases do not come close.
Adding view-through to conversions in the report. They are different metrics, with different windows, and only one feeds the algorithm.
Promising CPA or ROAS in the proposal. OpenAI states there are still no performance benchmarks by industry, advertiser or campaign type. Any number presented as a market reference today is a guess.
PART V: Targeting and custom lists
20. What you can target
Geography. Country is mandatory. In the United States there is state, DMA and postcode. OpenAI publishes a geotarget catalogue in CSV to check available coverage in Brazil.
Custom audiences. Your own email or phone lists, in plain text or SHA-256, with up to 5 million identifiers. They can be used three ways: inclusion, exclusion or a bid multiplier from 0.1x to 10x at ad group level.
The multiplier is the least explored feature. Excluding existing customers avoids paying for people you already have. Applying 2x or 5x to a high-value segment concentrates budget where it pays off.
The restriction that rules out most cases: the audience needs 25,000 matched users to activate, with 100,000 recommended. That leaves a good share of Brazilian B2B databases out, and it is better to find out before promising the feature to a client.
There is no classic demographic targeting. No age, no gender, no declared interest.
PART VI: Limits, disagreements and questions
21. What this channel still does not do
A short, honest list, because it prevents frustration later.
Performance benchmarks by industry do not exist yet. Neither does demographic targeting, and custom lists demand a scale few Brazilian databases have. Inventory is limited to Free and Go, which leaves out precisely the user who pays for a subscription. Personal health, mental health and politics are out by content policy, and regulated verticals go through eligibility review. OpenAI itself warns that delivery, inventory, formats and buying tools keep changing during the beta.
That list defines the size of the promise you can make with this channel today.
22. Where sources disagree
Two disagreements we found and prefer to record rather than hide.
Feed expiry and upload method. The Help Center mentions items expiring in two weeks and cites hosted URL or SFTP. The developer documentation states that Ads catalogue transfer is via SFTP and that there is no URL fetch model in the documented flow. Both can coexist if the Ads Manager and API paths differ, but we could not confirm it. Before promising URL automation to a client, test it.
Minimum products in the feed. Specialist coverage from June mentions a minimum of a thousand products. The official documentation we read does not carry that number. Treat it as unverified.
A reminder that applies to the whole manual: this material is dated. Check before using it in a proposal two months from now.
23. Frequently asked questions
Is ChatGPT Ads already available in Brazil?
Yes. OpenAI’s official availability table lists Brazil as available for self-service in the Ads Manager Beta since 6 August 2026, with values in reais and a Portuguese interface.
What is the minimum investment?
R$ 40 per day per campaign.
Do ads change ChatGPT’s answers?
No. According to OpenAI, ads run on systems separate from the model and do not interfere with the content of the answer.
Does the advertiser see users’ conversations?
No. Access is to aggregate reporting, with no conversations, memories or personal data.
Can I advertise a clinic, a health plan or a financial product?
It depends. Regulated verticals go through strict eligibility criteria, and ads are not served near conversations about personal health and mental health. Worth validating before planning budget.
Do I need to change my site before advertising?
In most cases, yes. OpenAI’s crawler needs to be able to read the landing page, and the page structure influences when your ad appears.
Is there an API to automate the operation?
Yes. The Advertiser API covers campaigns, groups, ads, insights and conversion configuration, and there is a Bulk API. Access goes through a partner setup flow.
How long until there is a readable result?
There is no official answer, and without a market benchmark the only honest comparison is against your own account’s history.
24. Glossary
| Term | What it is |
|---|---|
| Context hint | Thematic description of conversations where the ad makes sense. Set at ad group level. Not a keyword and no guarantee of delivery. |
| OAI-AdsBot | Crawler that reads the landing page to validate policy and assess relevance. Must be allowed. |
| OAI-SearchBot | OpenAI’s search crawler. Recommended to allow. |
| oCPC | Conversion-optimised objective. Billed per click, and the bid is a CPA bid. |
| oppref | Click identifier appended to the destination URL. Event level in the Conversions API. |
| obref | First-party cookie __obref written by the pixel. Goes inside the user object. |
| is_ads_eligible | Product feed eligibility field. Not to be confused with is_ads_enabled, which is not read. |
| ads_metadata | Feed field for creating your own dimensions and filtering products per group. |
| Delta Feeds API | Incremental catalogue update, without resending everything. |
| View-through | Conversion within one day of an impression. Separate metric, not included in Conversions. |
| Custom audience | Your own email or phone list. Minimum of 25,000 matches. |
Who runs this channel in practice: Headcore structures ChatGPT Ads campaigns, from the OAI-AdsBot crawlability audit to context hint mapping and measurement. See how the service works.
Sources
OpenAI Help Center
- Ads in ChatGPT: The Basics
- Ads Manager Availability
- Create Campaigns
- Create Ad Groups
- Create Ads
- Ads in ChatGPT, user FAQ
- Create Campaigns from Product Feeds
- Set up Custom Audiences
- Conversion Measurement
- Advertiser Guidance for Allowing OpenAI Web Crawlers
- Frequently Asked Questions
OpenAI developer documentation
- Overview of OpenAI Crawlers
- Conversion-Optimized Campaigns
- Supported Events
- Conversions API
- Product Feeds
- Advertiser API Overview
- Bulk API
- Measurement Pixel
Institutional
Specialist coverage
Headcore Digital · Growth Science™
OpenAI documentation verified on 12 and 13 August 2026.