Bulk upload and campaign structure

How the platform thinks in three levels, the field rules that matter, and the validation gotchas that get a launch bounced, taught in plain terms.

Guilherme Hortinha · 23 July 2026 · 6 min read

ChatGPT Ads guides

A ChatGPT ads campaign is built in three levels: the campaign sets the objective, budget and target countries; ad groups sit under it, each carrying its own bid and context hints; and ads sit under each group with the title, copy, image and landing URL. Uploading a launch in bulk is just filling those three levels out correctly and validating them before you submit. Get the structure right and the rest is careful data entry.

The three levels of a campaign

Everything maps to a hierarchy, and keeping it clean is what makes a hundred-ad launch manageable rather than chaotic.

  • +Campaign: objective (views or clicks), budget, and the countries you target. This is the top-level container.
  • +Ad group: sits under a campaign, holds the max bid and the context hints that define one buyer situation.
  • +Ad: sits under an ad group, holds the title, copy, square image and the landing URL for that specific message.

Because context hints live at the ad-group level, group your ads by intent, not by product. That single habit keeps the structure coherent and your situation targeting sharp.

The field rules that matter

Each level has fields that have to be right, and the ones that bounce a launch are predictable. Budgets are set daily. Bids are set per ad group. Target countries must come from the markets you are actually eligible to serve. Ads have to respect the character and image limits, and the landing URL has to belong to the verified business, with any tracking written in as static UTMs.

Validation gotchas

Most rejections come from a short list of avoidable mistakes:

  • +A title or description over the character limit, even by one character.
  • +An image outside the square 640-to-1200-pixel rule, or a logo used as the primary image.
  • +A landing URL that does not match the verified business domain.
  • +Context hints that are too broad, or that describe a product or claim the ad policies do not allow.
  • +Target countries that include a market you are not eligible to serve.

Review before you upload

Run a human pass before submitting: check every ad against the limits, confirm each group's hints all point at one situation, and dedupe the near-identical ads that always creep into a large batch. A launch that validates on the first try saves days, because a bounced upload goes back into a review queue that is slower than usual right now. When you would rather hand the whole build over, we structure, validate and upload it for you.

Quick answers

How is a ChatGPT ads campaign structured?+

In three levels: the campaign sets the objective, budget and target countries; ad groups sit under it with their bid and context hints; ads sit under each ad group with the title, copy, image and landing URL.

What gets a ChatGPT ads upload rejected?+

The common causes are ads over the character limits, an image outside the size rules, a landing URL that does not match the verified business, and context hints that are too broad or off-policy. Validate before you upload.

Where do context hints go in the structure?+

At the ad-group level, so every ad in that group shares the same situation targeting. That is why grouping ads by intent, not by product, keeps the structure clean.

Guilherme Hortinha

Guilherme Hortinha

Co-founder & Head of AI Innovation, Index Lab

Guilherme co-founded Index Lab, an AEO/GEO agency that makes brands the answer AI gives across ChatGPT, Gemini and Perplexity, taking clients from zero AI visibility to top recommendations.

Eligible and ready? We take it from here.

Start my campaign →