Campaign builder & pre-flight
A ChatGPT campaign is a tree: campaign, ad groups, ads — each ad a chat card with a title, a line of copy, an image and a link. We build the whole tree from your brand profile, and then we try to break it before OpenAI's review can.
Everything arrives finished, nothing arrives final
Generation produces a complete plan: one campaign per offer, ad groups split by intent, 5–8 hints each, two to three chat cards per group — which doubles as your A/B test, since the platform doesn't run those for you. Cards are previewed exactly as ChatGPT renders them, down to where the real unit truncates your title (around 35 characters, well before the API's official limit — we learned that one so you don't have to).
Every piece is editable — inline, or by telling the chat what you want ("make these hints broader", "rewrite this card around the fixed price"). New campaigns land as proposals: clearly separated, approved or discarded by you, never pushed and never spending until you say so. If the defaults are right, approving everything untouched is two clicks.
Budgets that actually deliver
This auction clears higher than search veterans expect — the platform's own suggested bid is around $3.00 per click, and accounts that bid like it's 2015 Google bought precisely nothing. Our defaults start where delivery actually happens, scaled to your currency, and the editor explains why. A bid that silently never serves is the worst kind of failure: it looks like the channel doesn't work.
Pre-flight: the review before the review
OpenAI reviews every ad, and beta accounts report it can take up to a day. Getting rejected means losing that day. So before anything can launch or export, pre-flight checks the things reviews actually fail on:
- Missing images, and images smaller than the 256 × 256 the platform accepts
- The same picture on two cards in one ad group
- Landing pages that 404, redirect wrong, or block OpenAI's crawler
- Claims your landing page can't back up
- Weak copy that will run but shouldn't
Hard failures block launch until fixed. Judgment calls — "this copy is weak" — can be consciously accepted, and the acceptance is stored, so a re-check doesn't nag you about a decision you already made.
- Every card has an image (256 × 256 or larger)
- No picture repeated inside an ad group
- Landing pages load and allow OpenAI's crawler
- No claims the landing page can't back up
- Titles fit before the card truncates them
One card links to /services/emergency-plumber — that page returns 404 and would be rejected in review.
All checks pass. Ready to launch.
Images included — even when your site has none
Chat cards need pictures, and plenty of good businesses have websites with none worth using. We harvest what your site has (with your recorded permission — it's your site, your images, your call), you can upload your own, and when the library is thin, one click drafts four different AI-generated photographic options from everything we know about the offer. Keep the ones you like; they're yours.
Launch through your key, or leave with the export
Connect your ChatGPT Ads API key and we push the plan: created paused, activated only once every piece exists, review status watched so you hear about approval — or get a concrete fix for a rejection — without refreshing anything. Prefer to run it yourself? The export is a first-class citizen: JSON that pastes into the API, a CSV, or a step-by-step checklist for Ads Manager. Your work leaves with you.
Build the whole plan free
You don't need an Ads account to build — only to launch. Start from your domain and see the plan it produces.