Log in / Create free account🌐 ES☀️

Advanced training · Module 18 — ChatGPT Ads — measurement and traffic quality

Setting up conversions in Ads Manager, step by step

⏱️ 7 min read · 🤖 ChatGPT Ads 📐 Measurement · updated on 2026-09-23

The previous lesson covers what to measure and with what. This is the other half, the one no guide includes: where each screw is tightened in Ads Manager, and in what order.

It isn't paperwork. We did it "right" and still spent days sending conversions the platform received and counted as none. By the end of this lesson you'll know why, and how to see it in two clicks.

The map: everything hangs off Tools → Conversions

The Conversions screen in Ads Manager: Tools in the left-hand column with Conversions below it; the Data Source, Conversion Events and Event Stream tabs; the pixel ID under the data source name; and top right, the unlabelled key icon that opens the conversions keys.

Three tabs and one hidden icon:

Where What you find
Data Source Your data source and, under its name, the pixel ID (it starts with Fp)
Conversion Events The conversion actions: the ones you create
Event Stream What is arriving, event by event
Key icon, top right The "Conversion keys" panel: the key for sending from your server

The key icon has no label and sits between the ? and "Warnings". It's the one nobody finds first time. Open it, click "+ Create new key", give it a name and copy it right then: it's shown only once.

⚠️ Trap: that key is not the account management one (in the Ads Manager settings). Two different keys for two different doors, and mixing them up gives you an error that explains nothing. Both live on your server, never in your website's code.

Sending isn't measuring

Here's the big trap, and it's counter-intuitive:

The platform does not create conversion actions for you. If your server sends an event and no action exists with that base event, the event goes through fine —your developer sees a good response— and nobody counts it. It appears in no report. No warning tells you the action is missing.

Our own case, measured in September 2026: for days we sent the sign-up event and the platform accepted it without a single complaint. When we finally created the action, 22 conversions appeared at once that had been there the whole time. Meanwhile the report said zero.

💡 Ninja trick: the Event Stream tab settles it in ten seconds. If you can see your events arriving there but the report says zero, you don't have a sending problem: you're missing the action.

Creating the conversion action

In Conversion Events+ CreateConversion Event:

The Create custom conversion dialog: you pick the data source, the base event from the list of standard events, you type a name for reporting and you leave the attribution windows.

Four fields, and a couple of things worth understanding:

Repeat this once for every distinct event you send. Send four, and you need four actions.

A campaign gets ONE event

The Conversion Events tab with four actions: each with its base event, the Used by column showing how many campaigns it's attached to, identifier coverage and events received. Only one is attached to a campaign.

The "Used by" column tells you how many campaigns each action is attached to, and that's where two expensive mistakes happen:

  1. Attaching two actions that describe the same thing. If you measure the sign-up by two routes and attach both, the campaign's "Conversions" column adds them up: one person, two conversions.
  2. Attaching the stages as well. Attach sign-up, qualified, opportunity and sale to the same campaign and a customer who walks the whole funnel counts four times. The column stops meaning anything.

The right answer is one action per campaign: the one that represents the result you're chasing. The rest keep being measured —each with its own count in this table— but they don't enter the campaign's column.

And since ChatGPT Ads has no value-based bidding, choosing which of your events the campaign counts is the only lever you have to ask the bidding for quality. Optimising towards "sign-up" brings volume; optimising towards "customer who actually used the product" brings quality, if you get enough of them per month for it to learn.

Reading the table without fooling yourself

⚠️ Trap: a conversion action isn't deleted, it's archived ("archiving hides it from future campaign configuration"). Think about the name before you create it.

What to remember

📎 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

← BeforeAdvanced measurement in ChatGPT Ads: sending the conversion from your server without losing the trailChatGPT Ads — measurement and traffic qualityAfter →Reporting and diagnostics in ChatGPT Ads: what you can measure, when the data arrives and why your ad isn't showingChatGPT Ads — measurement and traffic qualityRelatedWhere does your ad send people? The link that breaks most campaignsAdvertising in ChatGPT: first stepsRelatedWhy your clicks and your visits never match (and when to worry)Advertising in ChatGPT: first stepsRelatedChatGPT Ads case study: late-night mobile traffic, and how to move to office hours and desktop onlyChatGPT Ads in depth — ads, bidding and optimisationRelatedDiary of our campaign, day by dayChatGPT Ads — the platform, the market and our diary

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 the Ninja Scripts Suite subscription.

See the subscription →