Two ad formats exist in ChatGPT today: a text-and-image chat card that you write, and a product feed ad that OpenAI builds from your catalog. Those two creative types (chat_card and product_ad_template) render as six visible layouts. No sidebar ads, no sponsored answers, no video, no Sora ads. Targeting has no keywords: you describe the conversations you want and OpenAI's system decides. This is the format and targeting reference for the ChatGPT ads guide.
Last updated September 13, 2026. Every spec is dated to the OpenAI document, press report or Sprites Ads Manager screenshot it came from.
The formats that actually run in ChatGPT (six)
Every ChatGPT ad appears in the same place: below the end of a response, labeled "Sponsored" or "Ad", visually separated from the answer, with the footer "Ads do not influence the answers you get from ChatGPT. Your chats stay private." (OpenAI Help Center). What varies is how many cards appear and where the content comes from.
SERP Lens logged six layouts in the wild between the February 9, 2026 US launch and August 12, 2026. It is the only observed taxonomy on the web. You can see captured examples of each in the Sprites ChatGPT ads library.
1. Single text ad
One chat card: advertiser name, favicon, title, copy, one square image, one landing page (Ads in ChatGPT: The Basics). The launch format from February 9, 2026. Spec: title up to 50 characters, copy up to 100, image up to 1200x1200 PNG or JPG.
2. Single text ad with heading
The same card with a heading line above it, as SERP Lens labels the variant. Same creative, same spec; ChatGPT renders the heading.
3. Double text ads, same domain
Two chat cards from one advertiser under one answer. OpenAI's Help Center says "multiple ad units may display in a single response" from "single or multiple advertisers".
4. Double text ads, two domains
Two chat cards from two advertisers. OpenAI's February 9 post says that with multiple advertisers it shows "the one that is most relevant to your chat" first.
5. Product feed single ad
One product from a connected catalog, rendered by OpenAI with product image, title, price, sale price, star rating and brand (Create Campaigns from Product Feeds). Live since May 2026 (Search Engine Land, May 12).
6. Product feed carousel
Several products from one retailer in a horizontal carousel, live since August 6, 2026 (Digiday). OpenAI decides per response whether a single product or a carousel serves.

Formats you will read about that do not exist
The top result for "chatgpt ad formats" is a 6,500-word Single Grain guide published January 30, 2026, ten days before the first ad served. A reasonable forecast, not a description of the product. Four of its formats need retiring:
- Sidebar ads. ChatGPT has no ad sidebar. Every unit sits below the response, inside the conversation.
- Sponsored answers. OpenAI’s position since January 16, 2026: "Ads do not influence the answers ChatGPT gives."
- Video ads. No video creative type exists in the Ads API or Ads Manager.
- Sora ads. Sora was reported discontinued around March 27, 2026 (Ad Age, single source). No Sora ad product ever shipped.
The API settles it. The ads endpoint accepts exactly two creative types, chat_card and product_ad_template.
Creative specs (title, copy, image, landing page, crawler)
Three character limits circulate for the same field, and each has a source.
| Element | OpenAI maximum | OpenAI recommendation | Observed median (third party) |
|---|---|---|---|
| Title | 50 characters | 16 to 24 characters | 28 characters |
| Copy | 100 characters | 32 to 48 characters | 63 characters |
| Image | PNG or JPG, square, no larger than 1200x1200 | Simple, relevant, aligned with the title | n/a |
| Favicon | At least 128x128 | Your brand mark | n/a |
| Landing page | Reachable direct web page; must not block OAI-AdsBot | Also allow OAI-SearchBot; UTMs allowed | n/a |
Maxima and recommendations are from the Bulk Upload Campaign Schema Checklist and the Ads API reference. Medians are from chatgptadlibrary.com, which scraped live ads; they are observed values, not OpenAI numbers. The 16 and 32 figures on spec directories are the low end of OpenAI's recommended ranges misread as limits; a 45-character title is within spec.

No minimum image size or file-size cap is published anywhere; a Reddit report of a "min 256x256" message is undocumented, so do not plan around it. Creative guidance in Create Ads for ChatGPT Ads is "build for coverage": several distinct title and copy variations per ad group.
The crawler rule silently kills campaigns. OpenAI's crawlers "validate the safety of web pages submitted as ads" (Advertiser Guidance for Allowing OpenAI Web Crawlers), and a landing page that blocks OAI-AdsBot fails review. Allow both agents in robots.txt, then check Cloudflare or Akamai rules and any CAPTCHA layer, which block crawlers on their own:
User-agent: OAI-SearchBot
Allow: /
User-agent: OAI-AdsBot
Allow: /
Product feed and carousel ads
You supply data, OpenAI supplies creative. Campaign type is "Product feed" rather than "Standard", and each ad group holds one product_ad_template whose image and URL come from matching feed items (API reference).

Feed requirements (Create Campaigns from Product Feeds):
- Three delivery methods. CSV or TXT upload, a hosted HTTPS URL, or SFTP for automated server-to-server pushes.
- Items expire after 14 days. OpenAI’s wording: "Items expire after 2 weeks thus it is recommended to use hosted URL, or automated SFTP uploads."
- Required fields. item_id, title, description, url, brand, seller_name, image_url, availability and price. Ads eligibility is its own flag, is_ads_eligible.
- Ad groups are product filters. Filter on brand, price, star_rating, product_category, condition, age_group and more.
- Country-level geo only. Product feed campaigns cannot use US state, DMA or ZIP targeting.


How targeting works: signals OpenAI uses
Start with the setting nobody writes about. In the Advanced section of campaign creation, Ads Manager has a "Text customization" toggle that is on by default. Its helper text: "AI automatically generates personalized and translated versions of your ad's headlines and descriptions, which may be shown without your individual review or approval." Leave it on and your title and copy are a starting point, not the ad. Turn it off if legal or brand review must sign off every string. Seen in the Sprites account on September 13, 2026; not in the Help Center.

ChatGPT ads have no keyword auction. OpenAI matches ads to conversations using the signals in Ads in ChatGPT. Always: the current chat thread, general location and language. With personalization on: past chats, memory and ad interaction history. Never: precise location, IP address, name or email. In the EEA and Switzerland personalized ads are off.
Delivery weighs the conversation against your landing page, title, copy and context hints. How well that works is contested: an SE Ranking study of 50,000 commercial prompts found ads on 25.94% of them, and 14.35% of those ads semantically unrelated to the prompt (Search Engine Land, August 10, 2026).
| What you can target | What you cannot target |
|---|---|
| Context hints: free-text descriptions of relevant conversations, per ad group | Keywords, exact or broad match |
| Country, and in the US state, DMA and ZIP code | Age, gender, income or any demographic |
| Platform: iOS app, iOS web, Android app, Android web, desktop web | Interests, behaviors or lookalike segments |
| Custom audiences: include, exclude or bid-adjust on your own lists | Dayparting or day-of-week schedules |
| Excluded locations | Frequency caps (OpenAI documents none) |
| Language: read by OpenAI as a signal, not set by you | Specific prompts or conversations (hints are not rules) |
Context hints: the replacement for keywords
Context hints are free-form phrases at the ad group level that "describe what your product offers, who it helps, or when it may be useful" (Create Ad Groups for ChatGPT Ads). The API allows up to 2,000 hints per ad group (campaign targeting docs). OpenAI's caveat, verbatim: context hints are "not exact-match controls, audience targeting rules, or instructions to show your ad only for specific conversations."

OpenAI's own example: instead of "running shoes", write "cushioned everyday running shoes for beginners training for their first 5K." A sentence about a person in a situation, not a search term. Five more pairs, ours, to show the shape:
| Weak hint (reads like a keyword) | Strong hint (reads like a conversation) |
|---|---|
| CRM software | A small sales team comparing CRMs after outgrowing a shared spreadsheet |
| best mattress | A side sleeper with shoulder pain looking for a medium-soft mattress under $1,500 |
| tax accounting | A US freelancer asking how to estimate and pay quarterly taxes for the first time |
| Mexico vacation deals | Planning a week in Oaxaca in November with two children under ten |
| project management, kanban, todo app | A remote team of ten replacing email threads with one shared task board |
Structure follows: one product category, theme or intent per ad group; separate groups for different audiences; several ads per group. Practitioners on r/PPC add that shorter, more specific hint sets beat long lists, though nobody can see which hint matched which conversation.
Custom audiences and bid multipliers
Custom audiences are your own customer or prospect lists (Set up Custom Audiences). Upload a UTF-8 CSV or TXT up to 500 MB with one identifier column: email, phone_number, email_sha256, phone_number_sha256 or gaid. Processing takes 20 to 30 minutes; the file is deleted after processing, usually within 24 hours.
- Campaign-level inclusion. Limit delivery to people in the audience. Requires at least 25,000 matched users.
- Campaign-level exclusion. Suppress delivery to the audience, for example existing customers. No minimum size.
- Ad-group bid multiplier. Raise or lower the group’s maximum bid when the viewer matches, from 0.1x to 10x; the highest matching multiplier applies. Requires at least 25,000 matched users.
A 40,000-row list that matches at half qualifies for exclusion only. For what the underlying bids cost, see the ChatGPT ads cost guide.
Geo and platform targeting
Geo is set at the campaign: country everywhere, plus state, designated market area and ZIP code in the United States (Create Campaigns for ChatGPT Ads). Include and exclude lists take up to 2,500 location IDs each; product feed campaigns are country-only.

Platform targeting is optional: iOS app, iOS web, Android app, Android web and desktop web. The API groups them as ios_app, android_app and web; reporting segments by all five.
What you cannot target (yet)
Beyond the table above, three gaps matter before you promise a client anything:
- Prompt-level reporting. Insights segment by product, country, device and platform only; you never see the conversations.
- Brand safety blocklists. Adjacency is decided by OpenAI; you cannot add categories outside the exclusion test below. No IAS, DoubleVerify or MRC verification.
- Paid-tier users. Ads reach Free and Go users only. Plus, Pro, Business, Enterprise and Edu accounts, under-18s, Temporary Chats and the Atlas browser never see them.
What is in test
Three things are press-reported and absent from the Help Center and the API as of September 13, 2026. OpenAI has published no timelines.
- Dynamic CTA buttons. A larger image plus customizable buttons ("shop now", "book now", "sign up", "learn more"), reported by Digiday on May 21, 2026.
- E-commerce layout. A dedicated shopping card, portrait or landscape, showing price and customer reviews; the portrait version stacks three to four ads carousel-style (same Digiday report).
- Exclusion targeting. Adweek reported on August 26, 2026 that OpenAI is testing negative targeting with a limited group. Spokesperson Taya Christianson said it gives advertisers ways "to share information on contexts they do not want to appear next to."
A first campaign follows: three to five distinct chat cards per ad group, hints written as sentences about a person in a situation, a deliberate call on the Text customization toggle, OAI-AdsBot allowed, and a feed if you sell physical products. The OpenAI Ads Manager walkthrough covers each screen and the launch guide puts them in order.
Sprites runs the same campaign across ChatGPT, Google and Meta from one place: run it, measure it, optimize it. Get started self-serve, or book a demo.
Frequently asked questions
Are there Sora ads?
No. Sora was reported discontinued around March 27, 2026 (Ad Age, single source) and no Sora ad product ever shipped. The only creative types in the OpenAI Ads API are chat_card and product_ad_template.
Can I run video ads in ChatGPT?
Not as of September 13, 2026. There is no video creative type in the Ads API or Ads Manager. A chat card takes one square PNG or JPG up to 1200x1200; a product feed ad takes its image from your catalog.
Are there sitelinks or ad extensions?
No. A chat card has six parts: advertiser name, favicon, title, copy, image and one landing page. The way to add richness is a product feed, which lets OpenAI render prices, ratings and several products.
Do ChatGPT ads have CTA buttons?
Not in the documented product. Digiday reported on May 21, 2026 that OpenAI was testing a "dynamic CTA" format with buttons such as "shop now" and "book now". It is not in the Help Center or the API.
What are the ChatGPT ad specs?
Title up to 50 characters (16 to 24 recommended), copy up to 100 (32 to 48 recommended), one square PNG or JPG no larger than 1200x1200, a favicon of at least 128x128, and a landing page that does not block OAI-AdsBot. No minimum image size is published.
How does ChatGPT ads targeting work without keywords?
OpenAI matches ads to the current conversation, general location and language, plus past chats, memory and ad history when personalization is on. You steer it with context hints, country, platform and custom audiences. There is no keyword, demographic or interest targeting.
What is a ChatGPT product feed ad?
An ad OpenAI builds from your catalog. Upload a feed by CSV or TXT, hosted URL or SFTP, filter products into ad groups, and OpenAI renders image, title, price, rating and brand, choosing per response between one product and a carousel. Items expire after 14 days.