📗 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.
Two tools under 🧰 Tools: ✨ Create campaigns and ✨ Create ad groups. Both propose structure from evidence, and both create paused unless you tick otherwise.
The three routes to a campaign
| Source | When | Where the settings come from |
|---|---|---|
| 📋 From a campaign of mine | You already have campaigns in ChatGPT Ads | Copied from that campaign, read live: country, platforms, bid type and conversion events |
| 🔎 From a Google Ads campaign | New account, or you want to start from something that already works | From one of your search campaigns: its geography resolves to a country and its budget serves as a reference |
| ✍️ From scratch | Neither of the above | You set them: country, budget, platforms and landing page |
The template campaign may be paused: only settings are copied from it, not its status. Archived won't do.
Starting from Google Ads
The list shows your search campaigns with their budget and their conversions over the last 30 days, so you can choose sensibly. Two things it gets right:
- A campaign targeting Barcelona is «Spain» as far as ChatGPT Ads is concerned, since it only targets by country. The tool does the conversion.
- The proposed budget is a quarter of the Google one, with a floor and a ceiling. Copying €520/day from a seasoned campaign to a channel that's just starting would be reckless. You edit the figure.
From scratch
You set country, budget, platforms and page, and optionally describe what you sell. The AI reads the page and designs ONE campaign with its groups, its hints and its ad. One on purpose: with no data, opening four fronts is splitting a budget that doesn't exist.
What gets created, and what's left to do
The campaign is created, with its ad groups, their hints and a starter ad — carrying its own utm_content tag, so it's measurable from day one. All paused.
⚠️ The conversion event cannot be brought over. OpenAI's API doesn't allow listing or creating conversion events, so it has to be attached once by hand in the Ads Manager. The screen reminds you, and the 🩺 Audit opens a finding if a campaign is left without one.
The minimum budget is 15 a day in the account's currency: OpenAI requires it.
And a limit worth bearing in mind when creating: a campaign's objective (clicks or conversions) is set at creation and cannot be changed afterwards. If you plan to bid for conversions later, decide it here.
✨ Create ad groups by intent
The same idea one level down: the AI groups by intent the converting terms your account isn't covering, and proposes up to 8 new groups with their name, their intent, their destination campaign, 4 to 16 hints, a starter ad and the terms that justify it.
A new group hangs off an active campaign. If they're all paused (or the ⏰ Schedule has them paused outside their window), the screen says so with the figure and points you to activating one.
🧬 Cloning a campaign with a different setup
The third route, and the one that solves the platform's most annoying limit: a campaign's objective cannot be changed. If you built a clicks campaign and now want it to bid for conversions, there is no setting to change — you have to create another one.
The 🧬 Clone button sits on every row of 🏗️ Campaigns (and it also shows up in the note in 🧩 Ad groups and 🎛️ Bids when they tell you «maximise conversions isn't available»). The form comes pre-filled with the current setup and you change only what you want:
| You can change | |
|---|---|
| The name | and the objective: clicks or conversions |
| The daily budget | with its real minimum |
| Countries and platforms | from the account's catalogue |
| The ad groups' strategy | and whether the copy brings the ads or just the structure |
| Whether it starts paused or active | and whether the original gets paused when it's done |
On create, the engine re-reads the original campaign live and checks everything before writing. The copy is created paused unless you tick otherwise, and pausing the original is a checkbox: that way the handover happens without the two competing for the same budget.
The guardrails, in all of them
- Nothing is written without the button, and with confirmation.
- One live proposal per account or per group: asking for another discards the previous one.
- At most 2 campaigns or 3 groups at a time.
- The API is not atomic: if something fails halfway, you're told what did get created (all paused) rather than left in the dark.
- Never in the demo account.
- Anything repeating the name of something that already exists is dropped, as are groups with fewer than 4 hints.
And afterwards
What's created enters the tables and 🕰️ Changes immediately. The natural order for launching it: review the proposal → create paused → check the group's 📐 relevance index → refine the 🧭 hints if needed → activate.