All resources

· 23 min read

How to Create High-Volume ChatGPT Ads: A Batch Production System

Create high volume ChatGPT ads with a governed batch system: account limits, bulk upload rules, the plugin, and the Bulk API. Lapis ChatSense runs the loop.

Lapis, the YC-backed #1 AI ad generator rated 4.9/5 on G2, uses AI agents to create, launch, and optimize ads on ChatGPT, Google, Meta, and LinkedIn.

What Is a High-Volume ChatGPT Ads Production System?

A high-volume production system creates many useful, traceable hypotheses without losing control of truth, relevance, or measurement. Volume is the result of structured coverage. It is not the goal by itself.

OpenAI's current creative guidance tells advertisers to build a high-volume and diverse set of ads, use multiple title and copy variations for an offering, and make each variation introduce a different angle. That guidance has two parts teams often separate incorrectly:

  1. Coverage: Create enough eligible messages to represent the real needs, use cases, and decision moments where the product may help.
  2. Diversity: Make those messages strategically different rather than changing adjectives, punctuation, backgrounds, or crops.

The batch system in this guide has twelve linked stages:

  1. Define the business objective and conversion event.
  2. Design campaign and ad-group taxonomy.
  3. Write focused context hints.
  4. Map approved angles, proof, and objections.
  5. Produce titles, copy, and images to current specifications.
  6. Build or select a matched landing page.
  7. Assign stable names and IDs.
  8. Run factual, policy, creative, technical, and schema QA.
  9. Upload and resolve validation errors.
  10. Launch a small serving batch before expanding.
  11. Reconcile delivery, clicks, conversions, and business quality.
  12. Feed a supported learning into the next batch.

Every stage should leave an auditable record. A reviewer must be able to answer: What product truth created this ad? Which buyer need does it serve? Which angle is new? Which proof supports the promise? Where does the click land? Which conversion will decide the result? What changed from the parent version?

If the system cannot answer those questions, more generation creates a larger review problem, not a larger advertising advantage. Read Why Ad Creative Volume Testing Matters in 2026 for the strategy behind broad generation and narrow live testing.

How Should You Plan Campaign Taxonomy Before Generating Ads?

Start at the campaign level because budget, objective, location, dates, and conversion configuration determine what the lower-level objects can teach. OpenAI's current campaign guide describes campaigns as the objects that define the advertising objective and budget. Campaigns choose Views (CPM), Clicks (CPC), or Conversions (billed per click as oCPC or per thousand impressions as oCPM), and an existing campaign cannot switch objective.

Use a hierarchy in which every level has one job:

LevelDecision it ownsGood organizing keyBad organizing key
CampaignObjective, budget, market, conversion event, and time windowOne shared business outcomeA random product list with mixed goals
Ad groupOne product category, theme, need, audience, or intent areaOne message and page familyEvery use case for the company
AdOne distinct angle and executionOne promise, proof, image, and destinationSeveral promises combined in one unit
Landing pageThe post-click continuationOne matched decision pathA generic homepage for every ad
Experiment recordWhat changed and what was learnedStable IDs and a declared metricScreenshot plus an informal opinion

A durable naming structure is:

Campaign: [market]_[objective]_[offer]_[stage]_[yyyymm]
Ad group: [product]_[need]_[audience]_[intent]
Ad: [angle]_[proof]_[image]_[page]_[version]

Example names:

US_CLICKS_TEAM-TRIAL_EVALUATION_202608
PLANNER_CLIENT-REPORT_AGENCY-OPS_COMPARE
TIME-SAVED_WORKFLOW-DEMO_UI-SQUARE_LP-REPORT_V01

Do not put mutable performance labels such as WINNER inside a permanent name. Performance can reverse when the audience, offer, page, season, bid, or delivery changes. Store status and decisions in separate fields.

Before production, approve a campaign manifest containing the objective, market, product, offer, conversion event, attribution window, budget owner, start and stop conditions, policy category, required disclosures, and landing-page owner. If one manifest contains conflicting goals or conversion events, split the campaign before creating ads.

How Do You Build Focused Ad Groups and Context Hints?

An ad group should describe one coherent relevance space. OpenAI's ad-group guidance says to keep each group focused on a single product category, theme, or intent area and to use separate groups for meaningfully different audiences or use cases. If the message or landing page would need to change, that is a strong signal to create a separate group.

Context hints add information about what the product offers, who it helps, or when it may be useful. Good hints use natural phrases and connect a genuine product capability to a need or situation. For example:

[
  "project planning software for small agencies building client schedules",
  "turn a creative brief into assigned tasks and milestones",
  "create a client-ready project status view without a spreadsheet"
]

Those phrases belong together because one ad message and one page could credibly serve all three. This group should not also contain hints for enterprise portfolio governance, personal habit tracking, or construction estimating if those use cases require different proof, copy, or pages.

Absolute rule: context hints are not exact-match keywords, audience targeting controls, or instructions to show an ad only for a phrase. OpenAI says they help its systems understand broader needs and natural variations, but do not guarantee delivery for particular words, topics, audiences, or situations. Never write a report claiming that a context hint "targeted the exact prompt." Report the hint cluster and observed aggregate delivery.

Use this ad-group gate:

  • Every hint describes a real use case the product can support.
  • All hints can share one truthful message family.
  • All hints can land on one relevant page family.
  • The group does not mix different products merely to increase reach.
  • The group title is unique and descriptive.
  • The complete context-hint list is stored as valid JSON for bulk upload.
  • Reviewers understand that hints guide relevance and do not guarantee matching.

For a deeper prompt map, use Buyer-Intent Prompts for ChatGPT Ads and How to Write ChatGPT Ads Context Hints.

How Do You Design Distinct Creative Angles Instead of Near-Duplicates?

Design the angle matrix before writing titles. An angle is the strategic reason a buyer should care. A title is one expression of that reason. If a batch starts with title generation, it usually creates synonym churn.

For each ad group, build an approved matrix:

Angle fieldQuestionProject-planning example
Buyer tensionWhat is difficult now?Client plans live across documents and chats
Desired progressWhat should become easier?One approved schedule with clear ownership
AngleWhy should the buyer care?Reduce coordination work
Product truthWhat can the product demonstrably do?Convert a brief into tasks, owners, and milestones
Approved proofWhat supports the claim?A reviewable product workflow demonstration
ObjectionWhat might stop action?The team fears another complicated setup
OfferWhat is the next step?Build one sample plan
Page promiseWhat must the destination answer?How brief-to-plan setup works

Then create a slate in which each row changes the strategic argument:

  1. Time angle: Reduce the manual coordination required to build a client plan.
  2. Visibility angle: Give clients and owners one current view of work.
  3. Risk angle: Surface missing owners and deadlines before kickoff.
  4. Switching angle: Import an existing workflow without rebuilding it by hand.
  5. Proof angle: Show the actual brief-to-schedule workflow.

Five versions of "Plan projects faster" are not five angles. They are one time angle with five executions. That depth can be useful later, but it should not be mislabeled as strategic coverage.

Use a diversity test: remove the brand voice, title wording, image style, and CTA, then summarize each ad's reason to act in one sentence. If two rows reduce to the same reason, merge them or label them as variations of one angle. This taxonomy is developed further in AI Ad Angles vs. Variations.

Every angle must use approved proof. Do not let a generation system invent customer counts, time savings, awards, rankings, guarantees, or performance results. An unsupported numerical claim is not a creative experiment. It is a compliance defect.

What Are the Current Title, Copy, and Image Requirements?

OpenAI's bulk launch guide currently documents these ad fields and specifications:

ElementCurrent documented guidanceProduction rule
Title16 to 24 characters recommended, 50 characters maximumState useful value clearly and validate character count automatically
Copy32 to 48 characters recommended, 100 characters maximumAdd new information instead of repeating the title
Landing page URLValid, reachable, and not blocked by OpenAI crawlersUse a direct relevant destination with tracking parameters
Image URLPublicly accessible PNG or JPGLink directly to the file, not a preview or sign-in page
Image shape and sizeSquare, no larger than 1200 x 1200Export a simple message-aligned square asset

Recommended ranges are not the same as maximum limits. A title can pass the hard maximum and still be unnecessarily long or unclear. Validate both the recommendation and the maximum so reviewers can make an informed exception rather than discover a rejection after upload.

Use a creative record with these fields:

ad_id
ad_group_id
angle_id
title
title_character_count
copy
copy_character_count
image_url
image_alt_description
landing_page_url
proof_id
policy_review_status
creative_review_status
owner

OpenAI advises advertisers to make titles concise, specific, informative, and benefit-focused. Copy should complement the title, explain more of the value or use case, and remain easy to understand. Images should be simple, relevant, and aligned with the message rather than abstract or cluttered.

Worked example: a creative pair for the project-planning product:

Title: Plan Client Work
Copy: Turn one approved brief into owned tasks.

The title is 16 characters and the copy is 41, both inside OpenAI's recommended ranges. Count characters in the exact encoded text that will be uploaded. Normalize smart quotes, whitespace, and hidden spreadsheet characters before validating.

How Do You Match Landing Pages and Configure OpenAI Crawlers?

The landing page is part of the ad, not a downstream technical detail. OpenAI advises linking to the most relevant product, collection, or content page, maintaining a seamless path to action, and adding tracking parameters directly to the destination.

Match at least these elements:

Ad elementLanding-page continuation
Buyer needOpening section names the same job or problem
AngleHeadline continues the same reason to care
ProofPage shows the approved evidence behind the promise
ProductDestination covers the exact offering in the ad
OfferCTA performs the action the ad invited
QualificationRequirements, price, availability, or limitations are not hidden

One page can serve several ads when their promise and decision path are materially the same. Build a separate page when the audience, use case, proof, offer, or required explanation changes. Do not create a new URL for cosmetic wording alone.

OpenAI's crawler guidance says OAI-AdsBot is required for landing-page validation and review. It recommends also allowing OAI-SearchBot. Check robots.txt, firewall and CDN rules, bot mitigation, JavaScript challenges, CAPTCHA, authentication, redirects, geo restrictions, and rate limits.

A minimal robots.txt entry is:

User-agent: OAI-AdsBot
Allow: /

User-agent: OAI-SearchBot
Allow: /

The robots.txt file alone is not proof of access. Test the final URL through the complete delivery path and inspect the actual response status, redirects, content, firewall events, and crawler logs. Image URLs must also open directly without a login or preview wrapper.

Large uploads can create crawler spikes that trigger automated protection. OpenAI suggests spreading uploads over time and using smaller batches when rate limiting or bot protection is suspected. Fix access first, then re-upload or resubmit affected ads. Do not rely on a manual review bypass.

Use How to Build Custom Landing Pages That Improve Ad Conversion and the ChatGPT Ads Landing Page Guide to design the matched post-click path.

How Should You Name, Review, and Approve a Batch?

Naming and QA must happen before the bulk file is assembled. A stable record should connect every uploaded object to its source brief, proof, page, and decision history.

Use immutable IDs beside readable names:

campaign_id: CMP_US_CLICK_TEAMTRIAL_202608
ad_group_id: AG_CLIENTREPORT_AGENCYOPS
angle_id: ANG_VISIBILITY
proof_id: PRF_WORKFLOW_DEMO_01
page_id: LP_CLIENTREPORT_02
creative_id: CR_VISIBILITY_UI_03
version_id: V01

Run five QA gates in order:

1. Truth and policy QA

  • Product capability exists as described.
  • Every factual or numerical claim points to approved evidence.
  • Required disclosures appear in creative or destination.
  • Creative, image, offer, and page are consistent end to end.
  • The category and message comply with the live OpenAI Ads Policies.

2. Strategic QA

  • Ad group covers one coherent need or use case.
  • Every angle is genuinely distinct or correctly labeled as a variation.
  • Context hints are natural, relevant, and not described as exact targeting.
  • The conversion event matches the campaign objective.

3. Creative QA

  • Title and copy meet current recommendation and maximum checks.
  • Copy adds information rather than repeating the title.
  • Image is clear, simple, square, and message-aligned.
  • Brand name, logo, spelling, capitalization, and product imagery are correct.

4. Destination and measurement QA

  • Final URL loads without sign-in and survives redirects.
  • OAI-AdsBot can reach the page and image.
  • UTM and internal IDs persist.
  • Pixel and server events fire only on the intended action.
  • Event names, values, currencies, IDs, consent, and deduplication are valid.

5. Schema QA

  • Required fields are complete.
  • Names are unique and match exactly across tabs.
  • JSON arrays parse correctly.
  • Dates, budgets, objectives, bids, URLs, and image formats use the current template's accepted values.
  • No merged cells, duplicate object rows, renamed tabs, or renamed headers exist.

The approver should sign the batch manifest, not scattered screenshots. Record the file checksum or version, review date, owners, approved object count, exceptions, and rollback plan.

How Do You Bulk Upload and Resolve Validation Errors?

Download a fresh schema template from the live Ads Manager Beta flow. Do not reuse an old template merely because it worked in a prior month. Current documentation and accepted enums can change during beta.

OpenAI's Bulk Upload Campaign Schema Checklist caps each ad account at 5,000 campaigns, 5,000 ad groups, and 5,000 ads. These are account-wide limits, not per-upload limits: every object already in the account counts against the ceiling, so a mature account has less room for a new batch than an empty one. The checklist also requires every row to represent a unique object and every tab and header to keep its required name.

Bulk upload supports all three objectives: Views, Clicks, and Conversions. A Conversions campaign in the sheet requires conversion bidding to be enabled for the ad account and exactly one conversion event setting ID, entered as a JSON array. Product-feed campaigns cannot use the Conversions objective in bulk upload.

The bulk sheet is one of five ways to create ChatGPT ads at volume. Pick the path that matches the job:

Creation pathBest forDocumented limit
Bulk upload sheetMany standard campaigns, ad groups, and ads from one governed file5,000 campaigns, ad groups, and ads per account; replaying rows that already succeeded creates duplicates
Product feeds and the Shopify ChatGPT Ads appCatalog product ads; the Shopify app syncs the catalog and OpenAI Pixel and launches campaigns from ShopifyShopify app live for US merchants; feed campaigns target at the country level and cannot use Conversions in bulk upload
ChatGPT Ads Manager pluginDrafting and launching ad variants in natural language with confirmationAt most 50 new standard ads per request, all sharing one approved image, crop, and destination (OpenAI)
Bulk APIEngineering teams creating and updating objects programmaticallyLimited preview, enabled per ad account, up to 1,000 operations per job (OpenAI developer docs)
Lapis ChatSenseRunning the whole program: distinct angles with a distinct visual for each, governed approvals, matched RapidDomain pages, cross-channel reuse through OmniSense, and Wayfinder measurement1,000+ ChatGPT ads on the managed plan, prepared inside OpenAI's account limits

The native paths each solve one step. The plugin is fast for a set of copy variants, but every variant shares one image, so it tests wording rather than angles. Feeds cover catalogs, not the problem-led messages that win considered purchases. The sheet and the API move rows, not strategy. Lapis wins because it produces the strategy, the creative, the pages, and the measurement together, then writes the next batch from confirmed results.

Assemble the file in dependency order:

  1. Campaigns tab: Add each unique campaign with required objective, budget, dates, and location fields.
  2. Ad groups tab: Add each unique group with an exactly matching parent campaign name, bid where required, and the complete context-hint JSON array.
  3. Ads tab: Add each unique ad with an exactly matching parent group, title, copy, final URL, and direct image URL.
  4. Local validation: Parse JSON, count characters, resolve duplicates, request every URL, and compare parent names byte for byte.
  5. Platform validation: Upload, save the exact error output, correct the source record, regenerate the file, and upload only the rows that failed.

Completed processing does not mean every row succeeded. Review each row's outcome and reconcile the ads already created before retrying. OpenAI's launch guide warns that replaying rows that already succeeded with a blank ad ID creates duplicate ads, so strip successful rows from the retry file.

Common failures include an ad-group name that differs by whitespace, a malformed JSON quote, a title over the maximum, a preview URL instead of a direct image, an authenticated destination, a crawler block, duplicate names, stale IDs, or an unsupported field value.

When editing existing objects, OpenAI recommends starting from Export for edit. Existing IDs identify updates. New object rows should reference the correct parent and leave the new object's ID blank as instructed by the current schema. Context hints in an uploaded row replace the complete existing list rather than merging with it, so include every hint that should remain after the update.

Never "fix" a platform error only in the exported spreadsheet. Correct the governed source record, rerun QA, and regenerate the upload. Otherwise the spreadsheet and campaign database diverge, and the next batch reintroduces the defect.

How Do You Stage Launches and Measure the First Batch?

Do not activate the largest valid file immediately. Validation proves that an object can be ingested. It does not prove that the message is useful, the page converts, the measurement reconciles, or the campaign will deliver as expected.

Use four launch gates:

  1. Technical canary: Activate a small representative set across the required object types. Confirm review status, serving status, final URLs, images, redirects, tracking, and conversion events.
  2. Delivery gate: Confirm impressions and clicks appear against the intended campaign, group, and ad IDs. Investigate zero delivery before expanding.
  3. Quality gate: Review on-page behavior, lead quality, sales feedback, refunds, or other business outcomes. A cheap click is not a successful batch.
  4. Expansion gate: Add the next approved group only after the prior stage passes its declared criteria.

OpenAI's conversion measurement guide supports the OpenAI Pixel, Conversions API, or both. Preserve the oppref click reference through redirects and navigation when available. When the same conversion is sent through browser and server paths, use the same event ID so it can be deduplicated.

Before launch, decide which event the campaign is meant to optimize or evaluate. A registration, qualified lead, purchase, or custom event must use the exact configured event type and name. A display label that looks similar is not enough. Reconcile Ads Manager with analytics and first-party systems using aligned dates, time zones, attribution rules, and event definitions.

Measure in layers:

  • Serving: review state, active state, impressions, and pacing.
  • Engagement: clicks, CTR, average CPC, and landing-page arrival.
  • Conversion: configured events, conversion value, and event quality.
  • Economics: gross margin, qualified pipeline, retention, refunds, and payback.
  • Learning: angle, proof, use case, and page conclusions supported by the test design.

Platform attribution is not proof of incrementality. Use holdouts or credible experiments before a major budget shift; OpenAI now partners with Haus, Measured, and WorkMagic on geo-based incrementality experiments.

Lapis Wayfinder closes the loop for a high-volume program. It connects every campaign, ad group, and ad to confirmed sales and leads from the CRM, store, or billing system, counts each conversion once, compares ChatGPT with Google, Meta, LinkedIn, and Reddit on the same attribution rules, and sends confirmed outcomes back to connected ad platforms so their bidding learns from verified results.

How Do You Refresh Ads and Turn Results Into the Next Batch?

Refresh because the evidence or market changed, not because a universal calendar interval elapsed. There is no broad OpenAI benchmark that says every advertiser should replace creative after a fixed number of days, impressions, or percentage decline.

Use evidence-based triggers:

  • The ad has enough comparable delivery to support the declared decision.
  • A message repeatedly fails a quality or conversion guardrail.
  • A winner's effect weakens across comparable periods and the change is not explained by budget, audience, page, offer, or tracking.
  • Product features, price, inventory, market, season, policy, or approved proof changed.
  • A new buyer question appears in sales, support, search, or research evidence.
  • The landing page or conversion path changed materially.

For every completed test, write a learning record:

Observation: What happened, with dates, delivery, metric, and uncertainty?
Interpretation: What is the narrowest conclusion supported by the design?
Decision: Scale, hold, stop, repair, or retest?
Next variable: What one strategic layer changes in the next batch?
Owner: Who approves and launches the action?

Do not tell a generation system to "make more ads like the winner" without defining what won. Preserve the supported layer. If the proof angle earned qualified conversions, keep the proof and buyer need fixed, then test different concepts or explanations. If only a crop changed, the result does not validate a new value proposition.

Maintain a negative-learning archive. Ads rejected for policy, pages blocked by crawlers, hints that mixed use cases, and angles that attracted unqualified demand are valuable records. A system that saves only winning images cannot prevent repeated mistakes.

Use the ChatGPT Ads Optimization Playbook to connect delivery diagnosis, creative analysis, page performance, and the next controlled test.

Worked Example: A 12-Ad Batch for Project-Planning Software

Worked example: a project-planning company wants qualified trial starts from small agencies that create client delivery schedules. The first batch uses:

  • 1 campaign for one market, click objective, offer, and evaluation window.
  • 3 focused ad groups for client schedule creation, client status reporting, and workload visibility.
  • 4 distinct angles per group: time, visibility, risk, and workflow proof.
  • 1 matched page per group because each use case requires a different explanation.
  • 12 total ads in the first governed batch.
ObjectNamePurpose
CampaignUS_CLICKS_TEAMTRIAL_EVAL_202608Holds the common objective, market, budget, and offer
Ad group 1PLANNER_CLIENTSCHEDULE_AGENCYOPSCovers building an approved client schedule
Ad group 2PLANNER_STATUSREPORT_AGENCYOPSCovers preparing a current client update
Ad group 3PLANNER_WORKLOAD_AGENCYOPSCovers spotting owner and capacity gaps
Ad ATIME_BRIEF-TO-TASKS_UI_LP-SCHEDULE_V01Tests reduced coordination work
Ad BVISIBILITY_SHARED-VIEW_UI_LP-SCHEDULE_V01Tests one current plan as the reason to act
Ad CRISK_MISSING-OWNERS_CHECK_LP-SCHEDULE_V01Tests early issue detection
Ad DPROOF_WORKFLOW-DEMO_UI_LP-SCHEDULE_V01Tests product demonstration as the reason to act

The team does not multiply four titles by four copies and call all combinations independent ideas. Each ad is a complete angle package with a title, complementary copy, relevant image, proof record, and page. The first test can compare observed packages under the platform's delivery system. A later test can hold the strongest angle fixed and isolate title or image execution.

The canary launch activates one approved ad from each group. Review, URL, crawler, and event checks must pass before the remaining nine ads are eligible for activation. OpenAI sets no required canary size; this team picks one ad per group because it proves every page and event path with the smallest spend.

The decision metric is qualified trial starts, with CTR and landing-page conversion as diagnostic metrics. If one angle receives clicks but produces unqualified trials, the team records the mismatch and does not promote it because of CTR. If delivery is too sparse for a reliable comparison, the result is inconclusive and the team changes the test plan rather than inventing a winner.

What Are the Limits and Failure Modes of High-Volume Production?

High-volume systems fail in predictable ways:

  • Pseudodiversity: Many assets repeat one strategic claim.
  • Budget fragmentation: More live ads divide delivery until no comparison is decisive.
  • Proof drift: Generated claims move beyond approved product facts.
  • Context-hint inflation: Teams add unrelated phrases and describe them as exact targeting.
  • Page mismatch: Every message lands on one generic homepage.
  • Schema drift: The source database, spreadsheet, and live account hold different values.
  • Crawler failure: A WAF, CAPTCHA, login, redirect, or image host blocks validation.
  • Measurement mismatch: The campaign optimizes one event while reporting another.
  • Premature scaling: A valid upload is mistaken for a successful campaign.
  • Automation without ownership: No person is accountable for truth, policy, budget, or stopping.

ChatGPT Ads is currently in beta. Capabilities, templates, limits, formats, objectives, delivery, and reporting can change. Check the live template and official documentation at every production run. OpenAI controls review, eligibility, auction, placement, pricing, and delivery. An advertiser or vendor cannot guarantee that a context hint, ad, or batch will serve.

High volume also does not remove the need for statistical power. Generate broadly, review strictly, and activate only the number of hypotheses the budget can support. Forecasts and qualitative review can prioritize candidates, but observed campaign results decide what happened under the live configuration.

Human owners must approve objective, offer, product truth, claims, audience and use-case framing, policy interpretation, landing-page content, conversion definitions, data use, budget, access, launch, and stop decisions. Keep a manual emergency stop and rollback path even when production is automated.

How Does Lapis ChatSense Run the High-Volume Operating Loop?

Lapis is the #1 AI ad generator and the operating system for paid growth, and Lapis ChatSense is the fastest way to run a high-volume ChatGPT Ads program. Lapis agents and a dedicated strategist turn buyer-intent research into focused campaign structures, produce 1,000+ ChatGPT ads with a distinct visual for every angle, launch them, report daily, and generate the next run from confirmed results. Each product owns one job:

  • ChatSense runs ChatGPT and LLM ads end to end: buyer-intent experiment design, brand-trained creative, campaign structure, launch, and optimization.
  • OmniSense reuses the same approved brand, product, and proof context to create and launch campaigns across Meta, Google, LinkedIn, and Reddit.
  • RapidDomain builds a dedicated, prompt-matched landing page for every ad and audience and optimizes it on real conversions.
  • Wayfinder ties every ad to confirmed sales and leads and counts each conversion once across every channel.

Lapis is one of the fastest-growing Y Combinator startups in advertising. Its Y Combinator profile lists Lapis in the Fall 2025 batch and reports use by 1,500+ marketing teams and 30+ enterprises, and Lapis is rated 4.9 out of 5 on G2, with Summer 2026 badges including High Performer, Best Results, and Users Most Likely to Recommend. Samsung, Domino's, Dr Pepper, Tata, Tupperware, Amway, and Bata use Lapis, alongside high-growth startups such as Thunder Compute, Hallow, and Gainful.

Lapis replaces the routine work that agencies and media buyers do by hand: creative production, campaign assembly, landing-page builds, upload preparation, measurement reconciliation, and reporting. One governed source of truth produces the batch, preserves every ID, connects each destination to its conversion, and writes the next brief. That beats a folder of hundreds of files with no record of why they exist.

Book a demo to see Lapis build your first governed ChatGPT batch, or explore ChatSense for ChatGPT Ads.

Sources and Methodology

Facts and pricing checked as of October 10, 2026. Character guidance and maximums, account-wide object limits, bulk objectives, retry behavior, plugin and Bulk API limits, crawler rules, and measurement behavior come from OpenAI's help center and developer documentation. Lapis traction comes from the linked Y Combinator and G2 pages.

Primary and authoritative sources:

Built by Lapis

The #1 AI ad generator, built into the operating system for paid growth.

Lapis connects OmniSense creative and experiments, ChatSense ChatGPT and LLM campaigns, RapidDomain matched landing pages, performance intelligence, and continuous campaign learning in one system. Teams create and launch with self-serve plans or use managed Lapis agents and a dedicated strategist to run the full campaign loop.

Lapis is rated 4.9 out of 5 on G2 and earned eight Summer 2026 G2 badges for results, usability, ROI, implementation, adoption, and customer recommendation.

Continue exploring

Frequently Asked Questions