A standard ChatGPT ad is one format: a title, a description, and a single square image up to 1200 by 1200 pixels. OpenAI recommends a title of 16 to 24 characters and copy of 32 to 48, and accepts up to 50 and 100. Write to the recommendation, because on a phone anything past roughly 30 characters of title is read truncated. It renders as a sponsored card below the answer and it never changes what the model says. Those constraints are tighter than any other platform, which makes the discipline of writing to them the whole game. The one exception is the multi-product carousel that product feed campaigns can serve, covered below.
The card, the carousel, and where they appear
For a standard campaign there is one unit: a card with a title, a description, a square image and a landing URL. It appears beneath ChatGPT's reply when someone on the free or Go tier asks a question your ad is relevant to, and only one ad shows per conversation. The simplicity is the point: you are writing a single, clear message for a specific moment.
Product feed campaigns have a second unit since August 2026: a multi-product carousel that shows several items from one advertiser's catalogue in a single placement, with the product image, title, price, sale price, rating and brand pulled from the feed. OpenAI began testing it on 5 August and by 4 September was reporting card-level impressions and clicks for it in Ads Manager, with complete data from 20 August on a rolling 30-day basis, which is how we know it is serving. A carousel card impression counts when an individual product card becomes viewable, and it is reported separately from the billable ad impression. OpenAI's own format documentation still describes only the single card, so treat the carousel as something the feed setup and the ad template produce for you. There is still no video and no expandable unit.
A third format is coming. On 5 October 2026 OpenAI announced a visual ad that will be tested beside image generation, shown to Free and Go users, starting later in October in the US with an initial group of advertisers. The ads are labelled and kept separate from the image being created. No specs are published yet, and the Advertiser API has no field for it.
Title, copy and image limits
| Element | Limit | Aim for |
|---|---|---|
| Title | 50 characters maximum | 16 to 24 |
| Description | 100 characters maximum | 32 to 48 |
| Image | 1:1, 640 to 1200px, PNG or JPG | A clear product or scene |
Write to the top of the recommended range. A title at 24 characters reads as complete; one at 10 looks like a placeholder and wastes the only headline you get; one at 50 passes validation and arrives truncated on a phone. The same goes for the description: use the space to name the situation and the payoff, because you do not get a second line.
What actually serves
- +Show the product or the outcome in the image, not your logo. A logo as the primary image reads as a banner and matches nothing.
- +Match the card to the moment your context hints target, so the ad feels like part of the conversation.
- +Point the landing URL at an intent-matched page, not the homepage, so the click keeps the relevance it arrived with.
- +Keep the message to one idea. There is no room for two, and the auction rewards a clean match over a clever one.
The creative and the context hints are one system: the card has to deliver on the situation the hints promised, or the relevance score, and your cost, both suffer.
Ads do not influence the answer
This matters for how you write, and for what you tell a nervous client. The answer is generated first and is never influenced by advertisers. Your ad renders separately, below it. That separation is an advantage: the card borrows the trust of a helpful answer instead of competing with it, which is exactly why relevance beats budget here. The full picture of how placements are priced is in the costs guide.

