📗 This is the user manual for the Suite for ChatGPT Ads, the tool in the Ninja Scripts panel. Here you can search it, listen to it, highlight it and save it to favourites. It is updated with every release of the tool.
The four screens that change the account. They all share the same engine, so they all inherit the same guarantees: the value is re-read live before writing, confirmed by reading afterwards, logged in the history and undoable.
🎛️ Bids · the target judge
The first thing on this screen isn't a button: it's a verdict per ad group. Does it meet your target cost per conversion?
How it's worked out, so you can trust it:
- The last 14 complete days, dropping its campaign's anomalous days (a day that spent less than 20 % of the median or more than three times it: a half pause, an odd spike).
- Preferred source: your own leads from Ninja Leads (with at least 5). If you don't measure them, OpenAI's conversions. The screen tells you which one it's judging with (👤 or 🤖): they aren't the same and it's worth knowing.
- Verdicts: meets · borderline (up to 20 % over) · doesn't meet · no data · no target.
That cross-reference — judging a ChatGPT Ads bid with the real leads from your CRM — is one of the things no tool that only sees ChatGPT can do.
The three levers
| Lever | What it changes |
|---|---|
| Fixed bid | The ad group's maximum bid |
| Strategy | Fixed bid ↔ maximise clicks ↔ maximise conversions |
| Budget | The campaign's daily budget (minimum 15) |
⚠️ An ad group can only bid for conversions if its campaign was created with that objective. A campaign's objective is immutable after creation, so in a clicks campaign that strategy will never be available, whether or not a conversion event is attached. The screen stops it before calling OpenAI and explains it — with a link to 🧬 Clone, which recreates the same campaign with the other objective — rather than handing you their error.
Caps and quarantine: who they protect
This changed recently and is worth reading carefully, because it's the difference between a tool that helps you and one that gets in your way:
| A change YOU make by hand | A change the panel decides (applying a recommendation, a bulk batch) | |
|---|---|---|
| Caps per move (−30 % / +20 %) | Don't apply: you set whatever figure you want | Yes: never more than a 30 % drop or a 20 % rise at once |
| Quarantine | Doesn't apply: you can touch the same lever again straight away | Yes: 7 days for strategy, 5 for the bid, 3 for the budget |
Quarantine exists because changing and un-changing is the fastest way to wreck a campaign: while it lasts, that lever isn't touched again automatically and the judge withholds its opinion. But your judgement doesn't need protecting: if you want to halve the bid, it gets halved.
Pausing and activating has no quarantine at all. It used to have two days, and it was absurd: the ⏰ Schedule itself activates and pauses those very campaigns twice a day.
⏰ Schedule · the scheduling the platform lacks
ChatGPT Ads doesn't schedule by hour, so our server does: you set the windows and a pass activates and pauses the campaigns at those times.
- It's checked every 5 minutes, but OpenAI is only asked when necessary: when what we want doesn't match what the panel knows, near a switching hour, or when more than half an hour has passed without confirmation. That cut the calls by 83 % without losing a single change.
- A transient OpenAI failure is retried within the same pass, so the schedule hits its hour on time. You only get an email if the failure persists for a quarter of an hour.
- While the schedule governs a campaign, the 🩺 Audit does not count it as a problem that it's paused outside its window.
🧰 Bulk · changing many things at once
This is a global screen, not per account: it lists the campaigns and ad groups of all your accounts with their status, budget, bid and 30-day metrics.
The flow has one step you shouldn't skip:
- Filter and tick the rows (by account, type, status or name; or «all visible»).
- Choose the action: pause, activate, budget ±% or fixed, bid ±% or fixed, strategy.
- Simulate — and here's the value: row by row, «now → after», with ✂️ on whatever gets capped and the reason for every row that's skipped: already like that, in quarantine until day X, not on fixed bid, below the minimum…
- Apply N changes, with confirmation. It runs in the background with a progress bar.
- Undo the whole batch, in reverse order.
Guardrails: at most 100 changes per batch, one batch at a time, and it stops at the first real OpenAI failure so as not to leave the account half done without telling you. Accounts without a licence and the demo account appear 🔒 read-only.
🕰️ Changes · the timeline
Everything above leaves a trace here: hints applied, campaigns and groups created, ads fixed, statuses changed, bids, budgets, undos. With the chart behind it, so you can see whether the change on the 12th moved anything.
It's also where to check who did what when a figure doesn't match what you expected.