Log in / Create free account🌐 ES☀️

User manuals · Module 9 — Suite para ChatGPT Ads

ChatGPT Ads manual · Real measurement: conversions, leads and traffic quality

⏱️ 9 min read · 🤖 ChatGPT Ads · updated on 2026-09-27

📗 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.

Without measurement, «maximise conversions» has nothing to maximise and cost per conversion is a decorative number. This is the part that takes the most work and the part that changes results the most.

The two keys, again

They aren't the same and they always get confused:

Key What for Where it's created
Ads API Reading the account and applying changes Settings → API Keys
Conversions Sending conversions from the server Tools → Conversions → key icon 🔑 (top right, no label)

The 🎯 Conversions screen carries a diagram pointing at exactly where that icon is, with a direct link to that screen in your account. You'll also need the pixel ID, which sits just under the data source name, on the Data Source tab. Don't go by how it starts: some begin with Fp… and some don't.

🚩 Sending isn't measuring: the actions must be created by hand

This is the most expensive thing to learn the hard way, and we learned it in our own account:

OpenAI does not create conversion actions for you. You can be sending events for days, get a 200 OK on every one, and still see zero in the report because no action exists with that event type. And there is no warning telling you.

It happened to us: 46 events accepted over several days and not one conversion counted. The moment the action was created, 22 conversions appeared at once.

Actions are created under Tools → Conversions → Conversion Events → + Create. You need: the data source, the base event (a closed list: that's what matches what you send), a name (yours, it's only a label) and the attribution windows.

A trick to save time: Event Stream tells you in ten seconds whether it's «not arriving» or «arriving and nobody counting it».

The tool can't create those actions for you because OpenAI's API doesn't allow it. What it does do is show you, on the screen itself, the exact name you have to use for each one, with a copy button, and each one's real status based on what has already been sent: «already arrived (n)», «pending», «couldn't be sent» or «none yet».

One event per campaign

The most important rule in the whole measurement setup, and the one that messes up the most money when broken:

One campaign, one event. The other actions keep being measured on their own in OpenAI's own report; what they must not be is attached to the campaign.

And since there's no value-based bidding on this platform, choosing which event the campaign counts is the only quality lever there is: if it counts the raw lead, «maximise conversions» chases volume; if it counts the qualified one, it chases quality. That said: qualified leads are always far fewer, and with low volume the campaign is left without a signal to learn from. The sensible minimum is 30 in 30 days, and 💡 Recommendations tells you when you reach it.

⚠️ Changing the event is not changing the objective, and it's worth not mixing them up. The event a campaign counts is changed in the ads manager (the tool can't: the API won't even list the events). The objective —clicks or conversions— can never be changed once the campaign exists: that's what 🧬 Clone is for, in section 14. If your campaign was created for clicks, attaching the qualified event to it will not make it bid for conversions.

🎯 Sending the Ninja Leads stages

If you have Ninja Leads (Lead Rating), the tool can send OpenAI the lead's four stages — raw, qualified, opportunity and sale with its amount — so the campaign learns from quality rather than volume.

How it works, every 30 minutes:

Two platform limits worth knowing: an event older than 7 days is rejected (OpenAI's window), and what's been sent cannot be withdrawn — unlike Google Ads, there are no adjustments or retractions here.

💰 The 7 days apply to the stages too. If you tick the month's sales all at once at month end, the ones older than a week never get sent and the campaign never learns from them. Tick milestones as they happen: that's the difference between «maximise conversions» chasing quality or never finding out.

🩺 Why each lead is sent — or isn't

Below the send figures there's a block answering exactly that question, with figures taken from the database (not from the last pass). It exists because the most common case is the hardest to diagnose: a table of zeros that looks like «nobody came» when it's actually blocked.

If none of your leads can be sent, it says so at the top and in red, with the cause in plain words. The two causes of being blocked:

And the ones that were attempted but didn't make it are broken down by their real reason —expired past the 7 days, the source page was missing, conversions key rejected— instead of being a lone number.

🛡️ Visits · each ad's traffic quality

If you have Ninja Shield, this screen tells you how many of each ad's visits are people: measured visits against the clicks OpenAI counts, % bots, % with no interaction, duration and forms submitted.

It's the counterpart to cost per lead: a cheap ad with junk traffic stops looking cheap. Ads pointing at pages without the tracking are flagged as «not measured», with the reason, rather than showing up as zero.

This screen's thresholds (when a visit counts as a bot) are calibrated with Google Ads traffic and are provisional for ChatGPT: the ChatGPT app opens websites in its in-app browser, and that produces quick bounces that aren't robots. They'll be recalibrated with our own data.

📎 Sources and further reading

⚠️ Free training with no support. Ninja Scripts support channels (email and Telegram) are only for the use of the scripts, not for Google Ads questions or questions about this training.

Pick up here

← BeforeChatGPT Ads manual · Bids, budgets, ad scheduling and bulk changesSuite para ChatGPT AdsAfter →ChatGPT Ads manual · Integrations, locks and who pays for the AISuite para ChatGPT AdsRelatedChatGPT Ads manual · What the tool is and what ChatGPT Ads allowsSuite para ChatGPT AdsRelatedChatGPT Ads manual · Connecting your account: the key, the pixel and the hourly readSuite para ChatGPT AdsRelatedChatGPT Ads manual · Getting around: menu, date ranges and chartsSuite para ChatGPT AdsRelatedChatGPT Ads manual · Overview: your account's numbers at a glanceSuite para ChatGPT Ads

See the full syllabus

🎓
You're reading the Ninja Academy in the open

Create your free account (no card) to save your progress, take the graded quizzes, earn the Basic level certificate and unlock part of the Intermediate and Advanced training.

Create my free account →
🥷

Subscriber feature

This option is part of Ninja Scripts’ paid subscriptions.

See the subscription →