Field note 40/ AI · Engineering

ChatGPT Ads Get Visual: What OpenAI's New Format and Conversions API Mean for Builders

OpenAI launched visual ChatGPT ads during image generation and expanded measurement with a server-side Conversions API. What builders need to wire up.

Fig. 01AI engineering · Note 40

On October 5, 2026, OpenAI announced a new visual ad format in ChatGPT and a broader measurement stack around it. The format starts in image generation. The measurement piece is the part builders will actually touch: pixel plus a server-side Conversions API, more attribution partners, early geo incrementality work, and brand-suitability pilots with DoubleVerify and IAS.

This is an ads and measurement update. It is not related to Dots, Astra Ultrafast, or the Sol and Luna model posts.

What shipped on the ads side

OpenAI will test image ads during ChatGPT image generation later this month in the US, with an initial group of advertisers. Per OpenAI and TechCrunch:

  • Ads are clearly labeled.
  • Ads stay separate from the image ChatGPT generates.
  • Advertising does not influence the answers ChatGPT provides.

Digiday notes that for the past seven months advertisers mostly worked with a simpler unit: advertiser name, logo, headline, description, landing page, and image. The new format is meant to show products and services more visually while someone is already generating images.

ChatGPT Ads have been live for free and lower-cost tiers since earlier this year (Digiday: OpenAI started selling ads in February), with an India expansion in August. OpenAI cites 1.2 billion weekly users. Global rollout of the visual format is not claimed yet. Treat the October test as US-only until OpenAI says otherwise.

Measurement expansion

OpenAI's announcement frames measurement as both in-house tools and partner-led solutions. The Oct 5 update expands that ecosystem:

  • Data pipelines: Hightouch, Tealium, and LiveRamp for sending conversion data from existing systems into ChatGPT Ads.
  • Attribution / Conversions API partners across web and app: AppsFlyer, Triple Whale, Adjust, DV Rockerbox, Northbeam, Branch, Singular, Kochava, Airbridge, and Tenjin.
  • Full-funnel and advanced measurement: Fospha, Measured, and INCRMNTAL.
  • Incrementality: still early. OpenAI is partnering with Haus, Measured, and WorkMagic on geo-based experiments.
  • Brand suitability: pilots with DoubleVerify (DV) and Integral Ad Science (IAS) in controlled environments, without giving those partners access to private user conversations.

Advertiser complaints Digiday reported earlier were measurement, formats, and inventory. This release addresses the first two. Inventory constraints are a separate problem and not part of this announcement.

Wiring the Conversions API

For builders, the actionable surface is the Conversions API. OpenAI positions it as a more reliable tracking source than the pixel alone. Send events from your server only.

Endpoint pattern from the docs:

POST https://bzr.openai.com/v1/events?pid=<PIXEL-ID>

Authorization: Bearer <API-KEY>

Content-Type: application/json

You provision a Pixel ID and Conversions API key from the conversions tab in Ads Manager. Request fields include pid (required), optional validate_only, optional integration_source, and events (required).

Pixel vs API, and oppref

The browser pixel can capture oppref for you. The Conversions API does not. If you send server events, capture oppref yourself when it is available and pass it on the event without modifying the string. That supports click matching. View-through attribution does not need a separate request or event field.

For hybrid setups, also pass user.obref from the pixel's __obref first-party cookie when consent allows. oppref is event-level. obref lives under user.

Deduplication

If the same conversion goes through both the pixel and the API, reuse one value as the API id and the pixel event_id. Use the same Pixel ID on both sides. For custom events, keep custom_event_name aligned too. OpenAI dedupes on Pixel ID, event_name, and id, keeps the first event for a matching key, and ignores later duplicates.

Batches and failure behavior

The API accepts batches of up to 1,000 events. If one event in the batch fails, the full batch fails. Validate carefully before you ship large batches. Use validate_only: true when you want schema checks without saving.

Event types and shape

Supported web-oriented types include appointment_scheduled, checkout_started, contents_viewed, custom, items_added, lead_created, order_created, page_viewed, registration_completed, subscription_created, and trial_started. Native app events also support app_installed and app_opened with action_source: mobile_app.

Each event needs at least id, type, timestamp_ms (Unix ms, within the last 7 days and no more than 10 minutes in the future), and a data object whose type matches the event. Web events with action_source: web also require source_url.

A minimal order sketch that matches the docs:

{"validate_only": false, "events": [{"id": "order_12345", "type": "order_created", "timestamp_ms": 1773892800000, "oppref": "oppref_abc", "source_url": "https://shop.example.com/checkout/confirmation", "action_source": "web", "data": {"type": "contents", "amount": 2599, "currency": "USD"}}]}

Replace timestamps, ids, and oppref with real values. Hash emails and other PII per the docs before you send them in user.

Click-through vs view-through

Web events support click-through attribution and, when available for the account, view-through attribution. Click-through uses the configured click window. View-through uses a fixed one-day window after an eligible impression. If both apply, the click wins.

View-through conversions show up as a separate campaign-level metric in Ads Manager. They are not included in Conversions. CPA, post-click CVR, bidding, billing, and conversion optimization stay click-through-based. App lifecycle events stay click-through-based too.

That matters for anyone wiring optimization or reporting: do not assume view-through feeds bidding.

Why agencies care (briefly)

Getting ChatGPT Ads conversions right on a client site is real engineering work: capture oppref, keep pixel and server ids aligned, batch safely, and report click-through separately from view-through. Measurement setup is often the bottleneck that keeps test budgets from growing, which matches what Digiday has been reporting from advertisers.

Builder takeaways

  1. Visual ads are a US image-generation test later in October. Labeled, separate from generated images, and they do not steer ChatGPT answers.
  2. Prefer the Conversions API over pixel-only. Capture and pass oppref yourself on server events.
  3. Dedupe with one shared id. Same value on API id and pixel event_id, same Pixel ID, first event wins.
  4. Batch carefully. Up to 1,000 events; one bad event fails the batch.
  5. Bidding stays click-through. One-day view-through is reported separately and is not counted in Conversions, CPA, or optimization.

Sources

Read next

Related by topic