55Digital logo
Book a Free Call
PPC Guides

How to Bulk Upload ChatGPT Ads

Published September 5, 2026 · 4 min read

Quick answer

OpenAI Ads Manager Beta lets you create campaigns at scale via Create → Upload bulk instead of the step-by-step flow. You fill in one workbook with three tabs - campaigns, ad groups, and ads - and OpenAI publishes a checklist to catch formatting errors before you upload. Grab our pre-filled ads-tab template below and skip the blank-file guesswork.

Free ChatGPT Ads bulk upload template The exact "ads" tab schema - 9 columns, ready to fill and upload.
Download CSV

The 3-tab structure

Every bulk upload workbook mirrors the same structure Ads Manager uses everywhere else: a campaign defines objective, budget, dates, and targeting; ad groups sit underneath it; ads sit underneath their ad group. Keep the tab names exactly as-is - OpenAI's checklist explicitly fails files where tabs or column headers have been renamed.

Campaigns

One row per campaign. Objective must be Views or Clicks, dates in YYYY-MM-DD, budget filled in, country as JSON.

Ad groups

One row per ad group, linked to a campaign by exact name. Targeting "context hints" go in as a JSON array, e.g. ["running shoes","marathon training"].

Ads

The template above: ad_id, ad_group_id, adgroup_name, ad_name, title, copy, link, image_url, image_file_id.

Filling in the ads tab

title is capped at 50 characters, copy at 100, and link (your landing page URL) can run up to 2,048 characters. For the creative, provide either image_url (a public link) or image_file_id for an image already uploaded to your account - you don't need both. Images currently max out at 1200 × 1200px, and must be hosted via a Google Drive link, an AWS-hosted link (S3 or CloudFront), or a URL on your own domain or CDN.

The checklist before you upload
  • Tabs are still named campaigns, ad groups, and ads, and no column headers have been renamed.
  • Campaign and ad group names are unique, and match exactly wherever they're referenced across tabs.
  • Every required field is filled in - objective, budget, dates, and country (JSON) on campaigns; context hints (JSON) on ad groups.
  • Images meet the size/format requirements and are hosted somewhere OpenAI can actually fetch them from.
  • You're under the account caps - 5,000 non-archived campaigns, 5,000 ad groups, 5,000 active/paused ads.
Frequently asked questions

No. A full workbook has three tabs, and every ad row must reference a valid ad_group_id from the ad groups tab. Uploading only an ads sheet works only if those ad groups already exist in your account.

No - OpenAI's checklist calls this out specifically. Renamed tabs or headers fail validation.

Google Drive links, AWS-hosted links (S3 or CloudFront), or a self-hosted URL on your own domain or CDN, up to 1200 × 1200px.

Source: Bulk Upload Campaign Schema Checklist, OpenAI Help Center.

Want your ChatGPT Ads account built out for you?

Book a free strategy call

We'll set up your campaign structure and bulk upload file so you launch clean the first time.

Book a Free Call