Guide

Writing chat card creative for ChatGPT ads

Published · Updated · Based on the OpenAI Ads API documentation

Key facts
  • A chat card title is 3 to 50 characters and its body up to 100 characters; both are hard limits on the object.
  • The image must be at least 640 by 640 pixels, JPEG, PNG or WebP; Ads Manager's own form suggests a square image of at least 256 by 256 for best quality, so treat 640 as the real minimum.
  • The destination URL can run up to 2,048 characters and must be reachable by OpenAI's crawler.
  • A product ad template pulls its image, URL and price from a feed item and can print the live price as a placeholder.
  • Creative is created in review, becomes approved or rejected with a reason, and editing the creative sends it back through review.
  • A feed-based ad group carries at most one non-archived product ad template.

A chat card has exactly four parts: a title, a body, an image and a destination URL, each with a hard limit that OpenAI enforces on the object itself. There is no video and no sitelinks to fall back on, so those four parts have to do the whole job. This guide sets out the exact limits, what happens in review, how a product ad template differs, and worked examples, all using the fictional shops Oostloop, Wielwerk and Twaalf Bonen as illustrations, never a real brand.

Key takeaways
  • Write to the character ceiling, not below it: a body that reads well at 100 characters often reads badly if it is cut short.
  • Treat an approved chat card as finished. Any edit, including the destination URL, sends it back into review.
  • Use the product ad template's price placeholder so a price change in the feed does not need a creative edit.
  • Give chat cards their own ad groups, separate from feed ad groups built around a product set and its one product ad template.
  • Skip health, financial and legal examples entirely; those categories reportedly face extra review.

What are the exact chat card limits?

Title: 3 to 50 characters. Body: up to 100 characters. Image: JPEG, PNG or WebP, at least 640 by 640 pixels. Destination URL: up to 2,048 characters, and it has to be a page OpenAI's crawler can actually reach, not one blocked by robots rules or a login wall. All four sit on the ad object itself and are checked when the ad is created.

Ads Manager's own "Create Ad" form repeats the title and body limits exactly, but describes the image requirement more loosely, suggesting a square image "at least 256 by 256 pixels" for best quality, with a note that copy may be truncated in some placements. Where the two disagree, build to the API's stricter 640 by 640 floor: it is the number in the developer documentation, and a smaller image risks looking soft wherever the card renders larger than the UI's own minimum implies.

FieldLimitNotes
Title3 to 50 charactersNo separate headline or sitelink field
BodyUp to 100 charactersAds Manager warns copy may truncate in some placements
ImageAt least 640 x 640 pxJPEG, PNG or WebP; Ads Manager's own form suggests at least 256 x 256
Destination URLUp to 2,048 charactersMust be reachable by OpenAI's crawler
Ads per feed ad groupOne non-archived product ad templateChat cards have no documented per-ad-group cap

What happens in review, and what sends a card back into it?

Every chat card and product ad template is created with a review_status of in_review, then moves to approved or rejected with a reason. Editing the creative, title, body, image or destination URL, re-triggers review from scratch, so a live card cannot be nudged without that edit waiting for review again. There are also two account-level reviews, a brand review and an account integrity review, which apply to the account rather than to each ad.

Because any edit reopens review, plan chat card changes as replacements, not touch-ups: write the new version, create it as a new ad, let it clear review, then archive the old one, which cannot be undone. A preview, valid for 24 hours, shows how the card renders but is not the same as a review pass and does not confirm the ad is eligible to serve.

How does a product ad template work?

A product ad template is the second, and only other, creative type. It reads its image, its destination URL and its price straight from a feed item, so there is no image to upload or price to type by hand. The template can print the live price using a placeholder, {{product.price}}, so a price change pushed into the feed shows in the ad without editing the creative.

A feed-based ad group carries at most one non-archived product ad template. Because the price is inserted at serve time, count the placeholder toward the character limit using the longest price you expect to show, including the currency symbol or code, not the shortest one; a template that fits at EUR 9.00 can overflow at EUR 1,299.00.

Product ad template, illustration only (Twaalf Bonen, a fictional coffee roaster): title Twaalf Bonen house blend, price line rendered as Now {{product.price}}, image and destination URL supplied by the feed item. Nothing here is a real product, price or brand.

What angles make a chat card worth clicking?

The card has to earn its place in a conversation, so it reads best when it answers the situation the ad group's context hints describe, not when it lists product features. A body that states a concrete, checkable detail, a delivery promise, a guarantee, a specific service, tends to read better within 100 characters than a body that tries to summarise the whole offer.

Three checks before an ad goes to review. Does the title alone make sense without the body, since Ads Manager warns that copy may be truncated in some placements? Does the body add one new fact rather than repeating the title? And does the destination URL land on the exact page the card promises, not a category page or the homepage? A card that fails the third check can pass review and still under-perform.

What do worked chat card examples look like?

The three examples below are illustrations built for this guide using fictional shops, Oostloop (a running shop), Wielwerk (a bike repair shop) and Twaalf Bonen (a coffee roaster). None of them names a real business, and none touches health, financial or legal claims, categories that reportedly face extra review.

Each of these pairs a title that survives on its own with a body that adds one new, specific fact, and each stays comfortably inside the 50 and 100 character ceilings with room for a slightly longer variant if the first version under-performs.

How should I structure creative for measurement?

Because there is no query report and no rotation control across multiple cards in one placement, the ad group is the practical unit for measuring an angle, since its hints and creative are reported together. Put one chat card, or one small set of close variants, in an ad group built around one context and one set of hints, rather than a single ad group carrying every angle you can think of. That mirrors the advice in the context hints guide: one narrative, one ad group, one measurable result.

When a new version replaces an approved card, keep the old ad group's history rather than editing the ad in place if you want a before-and-after comparison; a fresh ad within the same ad group inherits the group's hints and bid but starts its own review and its own reporting row. Building the whole creative step into a first campaign, in order, is covered in launching your first ChatGPT ads campaign.

Frequently asked questions

Can I reuse the same title and body across several ad groups?

The platform does not forbid it, but each ad group is one angle and is measured on its own, so reusing the same creative everywhere throws away the chance to see which angle actually earns the click. Write one ad per ad group and let its own hints and its own creative match.

What happens if my image is smaller than 640 by 640 pixels?

The API's documented floor is 640 by 640 pixels in JPEG, PNG or WebP; do not rely on a smaller image being accepted through the API. Ads Manager's own ad form suggests a looser 256 by 256 for best quality, so treat 640 as the real floor and upload larger where you can.

Does changing only the destination URL trigger a new review?

Editing the creative sends it back into review, and the destination URL is part of the ad's creative definition, so yes. Budget it into any redirect or landing page change: the ad will sit in in_review again until it is approved.

Can one ad group run more than one chat card?

Yes, an ad group can hold more than one ad, but a feed-based ad group carries at most one non-archived product ad template. There is no documented rotation or split-test control across multiple chat cards in one group, so compare variants across separate ad groups if you want a clean read on which one performs.

Can a chat card and a product ad template share an ad group?

The object model does not explicitly forbid it, but a feed ad group is built around a product set and a single product ad template, and its insights average every ad it holds. Keeping chat card creative in its own ad groups, separate from feed ad groups, keeps the two kinds of performance readable.

Adsonomy runs ads inside ChatGPT for shops and service businesses. Control edition: you run it with rules. Autopilot: the AI manager runs it inside your guardrails. Launching 1 October 2026.

Join the waitlist