// how-to

How to Structure a ChatGPT Ads Account: Campaigns to Ads

One campaign per objective, one ad group per intent family, one ad per angle. Naming rules, intent families and a complete example for a B2B SaaS.

Hiints team · Published 25 October 2026

A ChatGPT Ads account has three levels: one campaign per business objective, one ad group per intent family, one ad per angle. The rule holds as of 25 October 2026 and follows directly from what each level controls in Ads Manager. This guide walks through it, with a complete example for a fictional B2B prospecting SaaS.

What does each level of the account control?

The campaign holds the objective, budget and countries; the ad group holds the context hints and the bid; the ad holds the message and the page.

In practice, a campaign picks an objective (Views, Clicks or Conversions), a daily budget of at least $25 and the target countries. Hence the rule: one campaign, one business objective. The ad group contains the list of context hints and the maximum bid, and covers one coherent intent family. The ad, finally, carries a title of up to 24 characters, a body of up to 48 characters, a UTM link and a square image of 640 to 1200 px, all built around a single angle.

Each setting lives at exactly one level. A campaign cannot have two budgets, and an ad group cannot have two bids. If two intents deserve two bids, they need two ad groups; if two objectives deserve two budgets, they need two campaigns.

Naming matters more than it seems: it keeps the structure readable in the report and in the UTM. We use UK | Conversions | Demo for a campaign, for example, Comparison | prospecting tools for an ad group and Pricing angle | comparison LP for an ad.

Nine intent families

Nine families cover almost every commercial conversation: problem, comparison, alternative, purchase, setup, pricing, urgency, integration, trust.

Family What the user asks ChatGPT What the ad must bring
Problem “How do I solve…” A named solution
Comparison “What is the best tool for…” A decision criterion
Alternative “An alternative to…” A gain from switching
Purchase “Where do I buy…”, “which one should I pick” An offer and a next step
Setup “How do I configure…” A simple path
Pricing “How much does… cost” A clear price grid
Urgency “I need… today” Immediate availability
Integration “Does it work with…” Proof of compatibility
Trust “Is it reliable…”, “reviews of…” Evidence

Every family is a potential ad group. Keep it if the offer genuinely answers it and a landing page exists for it. Drop it otherwise.

How do Google search terms become intents?

You translate, you do not copy: a search term is a fragment, whereas a context hint is a sentence describing who is talking, in what situation, with what need.

The method takes three moves, no exceptions. Export the search terms that convert, put each one into an intent family, then rewrite every group as natural sentences, never as a list of words.

The term b2b prospecting software becomes, in the comparison family, “sales manager comparing B2B prospecting tools for a small team”. The term email sequencing tool alternative becomes, in the alternative family, “team that wants to leave its current email sequencing tool without losing campaigns in progress”. The keyword disappears. The intent stays, and it is the intent you are buying.

A hint is not a targeting rule: “only show in London” is an instruction, it does not work, and it has no place in that list. The exact format is covered in our article on context hints, and the generator produces a first list from an offer.

The right moment to split two ad groups

When the message changes or the page changes. Otherwise, a single ad group is enough.

Two intents that call for the same ad and the same landing page live together, because splitting them dilutes budget and multiplies the rows you have to read without teaching you anything new about the market. Two intents that call for different promises or different pages live apart: it is the only way to read a CPL per intent and set each bid.

A quick test, which settles most cases. If you cannot write a 24-character title that serves both intents, you have two ad groups.

A complete example for a prospecting SaaS

Take a fictional B2B prospecting SaaS, which we will call Cadence, selling email and LinkedIn sequences to sales teams and whose only aim here is to fill a calendar with demos in the United Kingdom.

Campaign Ad group Three context hints Ad angle Landing page
UK / Conversions / Demo Problem / forgotten follow-ups “salesperson who forgets to follow up with prospects and loses deals” · “team lead looking to automate follow-ups without sounding robotic” · “founder prospecting alone who cannot keep track of conversations” Never lose a deal to a missed follow-up /automated-follow-ups
UK / Conversions / Demo Comparison / prospecting tools “sales manager comparing B2B prospecting tools for a small team” · “sales team deciding between several email and LinkedIn sequencing tools” · “sales director who wants a comparison of outbound tools” Compare on one page /comparison
UK / Conversions / Demo Alternative / current tool too expensive “sales team that wants to replace an overpriced prospecting tool without losing its sequences” · “startup trying to cut the cost of its prospecting software” · “salesperson frustrated by an outbound tool that became too complex” Switch without losing anything /migration
UK / Conversions / Demo Integration / CRM “team that wants to connect its prospecting tool to its CRM without double entry” · “ops lead checking whether an outbound tool syncs with the existing CRM” · “salesperson who wants to see sequences directly inside the CRM” Your sequences inside the CRM /integrations
UK / Clicks / Pricing Pricing / team budget “founder looking for the price of a prospecting tool for a small sales team” · “sales manager comparing the pricing of outbound software” · “team that wants the per-user cost of a sequencing tool” One price per seat, no surprises /pricing

Two campaigns, then, because there are two objectives. The pricing family qualifies traffic, so it runs on CPC. The four demo families share one campaign and one budget. Each keeps its own ad group, bid and page. Every ad group gets at least two ads, to compare angles at equal intent.

How does the structure load in bulk?

In a workbook with three sheets, campaigns, adgroups and ads, where each row references its parent row in the previous sheet by name.

The campaigns sheet lists the name, objective, daily budget and countries. The adgroups sheet gives the parent campaign, name, hints and maximum bid, and the ads sheet then picks up the parent ad group, title, body, URL with UTMs and image, which is everything needed to rebuild the account from scratch.

This is the workbook we prepare before every launch. It forces consistent naming, makes UTMs predictable and lets you proofread the whole account at a glance before going live. KPIs are then read in exactly this grid, as our article on KPIs explains.

We go through the workbook with the advertiser before launch, and the account that comes out of it always belongs to the advertiser.

// shall we talk?

Want to see these numbers on your own account?

Free setup, done in under 48h. We read your first results against the Hiints Index.

Book a call

30 minutes · no commitment · zero pitch