OpenAI's ad platform drops a cookie called __obi on .openai.com, and it does not stay on openai.com. Independent research published September 20, 2026 shows the cookie riding along to hundreds of advertiser sites and tying what you do there back to your logged-in ChatGPT account, a design OpenAI's own developer documentation never mentions.

  • Researcher Jamie Larson of Buchodi traced OpenAI's ad collector to bzr.openai.com, part of a system called Bazaar, which sets a cookie named __obi on .openai.com with SameSite=None, Secure, and a one-year Max-Age.
  • Advertisers run OpenAI's pixel, oaiq.min.js. When it fires, the browser sends __obi along with the page's URL and, when supplied, hashed email, phone and name, plus unhashed country, region, city and postal code.
  • Larson reproduced the behavior with two capture methods and analyzed 936 advertiser pixels across 1,029 hostnames, including Chewy, Wayfair, ThriftBooks, Eventbrite, HelloFresh, Coursera and SeatGeek.
  • OpenAI's cookie policy files __obi under 'analytics cookies.' Its pixel documentation describes two different, first-party cookies and never names __obi.
How the __obi cookie becomes a cross-site identifierAn advertiser's page loads OpenAI's pixel, which sends __obi to bzr.openai.com with hashed contact fields and unhashed location data, matching it to a ChatGPT account.Advertiser pageloads oaiq.min.jsPixel callsbzr.openai.comSends __obi +hashed & geo dataMatched to yourChatGPT account__obi · .openai.com · SameSite=None; Secure · Max-Age 31536000sDOCUMENTED (DEV DOCS)__oppref (30d) + __obref (365d)first-party, advertiser's own domainOBSERVED (INDEPENDENT RESEARCH)__obi (365d)third-party cookie on .openai.comNot named anywhere in OpenAI's pixel documentationgenztech.blog
Fig 1 An advertiser's pixel calls bzr.openai.com and hands over __obi with hashed and location data. Since __obi lives on .openai.com, the same domain as a ChatGPT login, it can be matched to that account. OpenAI's pixel docs describe different, first-party cookies and never mention __obi.

How does a cookie on openai.com end up tracking you on Chewy?

__obi is scoped to .openai.com, so any request to that domain carries it, whichever site triggered the request. SameSite=None; Secure is what makes that legal: the flag exists to let a cookie travel with cross-site requests. Advertisers embed oaiq.min.js on checkout pages and lead forms for measurement. When it fires, it calls bzr.openai.com, and the browser attaches every cookie matching that domain, __obi included. A ChatGPT session lives on the same registrable domain, so the identifier on Chewy's checkout page is not an anonymous ad ID. It can be tied back to the account someone uses to talk to ChatGPT. No fingerprinting required: it is an ordinary third-party cookie doing what SameSite=None is built to do, attached to a company whose other product is a login people use daily.

RelatedPayPal Stock Drops 13% as Stripe-Advent's $50B Bid Collapses

What do OpenAI's own docs describe, and what do they leave out?

OpenAI's developer documentation for the Ads Measurement Pixel is detailed. The SDK, oaiq.min.js, ships from bzrcdn.openai.com; events post to bzr.openai.com via fetch, sendBeacon, or an image fallback, alongside a server-to-server Conversions API, all reporting to one Pixel ID. Standard events cover the usual funnel: page_viewed, checkout_started, order_created, lead_created, registration_completed, subscription_created and more. The docs describe two first-party cookies set only with consent: __oppref, 30 days, storing landing-page attribution, and __obref, 365 days, a browser reference identifier. Consent defaults to true, and setting the SDK's consent flag to false stops event pings and removes both. __obi is not in it anywhere. The gap between what's documented, first-party cookies respecting a consent flag, and what Larson found in the wild, a third-party .openai.com cookie the docs never mention, is the actual story. OpenAI's docs do not hide __obi so much as simply not describe it.

Pixel modelOpenAI (Bazaar)Meta PixelGoogle tag
Install methodoaiq.min.js + optional server APIJS pixel + server Conversions APIJS tag + server-side tagging
Hashed PII matchingYes: email, phone, name via SHA-256Yes, same modelYes, same model
Unhashed location fieldsYes: country, region, city, postal codeNot detailed hereNot detailed here
Third-party cookie tied to login__obi on .openai.com, absent from OpenAI's docsLong-standing pattern, not this story's subjectLong-standing pattern, not this story's subject
User opt-outSettings > Data Controls > Marketing PrivacyPlatform ad-preference settingsPlatform ad-preference settings

Why doesn't a hashed email make this safe?

Hashing does make direct matching harder. SHA-256 applied to a normalized email is not something you casually reverse. But OpenAI's documentation lists country, region, city and postal code as unhashed fields the pixel can send automatically. Pair an exact postal code with the URL path that triggered the pixel, and you get a specific profile without any name attached. Larson's dataset included paths for medical-condition pages, debt-solution funnels and litigation intake forms, next to raw postal codes tied to a persistent cookie. Postal code was the single most-harvested field: 100 events across 28 sites. A hashed email protects one field; it does nothing for the rest, and does not stop a plain-text zip code sitting next to a medical-condition page.

Is filing this under 'analytics cookies' a compliance problem?

Under GDPR and the ePrivacy Directive, the label matters less than what a cookie does, but it still signals what consent flow a company thinks it needs. OpenAI's cookie policy lists __obi under analytics cookies, described as helping understand service performance and usage. A cross-site identifier tying browsing on someone else's site to a logged-in account is a different animal from a page-view counter, and EU regulators have spent years drawing that line for other ad-tech cookies. Larson asked OpenAI's support team about classification and consent; they acknowledged the inquiry and answered neither question, which should worry anyone relying on the documentation. Meanwhile: free-tier ChatGPT has marketing cookies on by default, but ad personalization can be turned off under Settings, Data Controls, Marketing Privacy, and blocking bzr.openai.com and bzrcdn.openai.com removes __obi with it.

RelatedChrome's Device-Bound Sessions Go Live to Kill Cookie Theft

Scale of the __obi pixel network, per independent researchBuchodi counted 936 advertiser pixels across 1,029 hostnames, with 100 unhashed postal-code events across 28 sites.9361,02910028PixelsHostnamesPostal eventsPostal sitesgenztech.blog
Fig 2 · research scale Buchodi analyzed 936 advertiser pixels across 1,029 hostnames. Within that set, 100 events carried an unhashed postal code across 28 sites, the most-harvested field in the research.

What it means for the market

OpenAI is private, so there is no ticker to move directly, but Bazaar is the measurement layer under a real ad business, and measurement is what advertisers pay for. Hashed matching plus a persistent identifier is OpenAI building the plumbing that already anchors Meta's and Google's ad revenue. The signal for investors is less about OpenAI and more about where budgets go next: Meta (META) and Alphabet (GOOGL) depend on being the default place advertisers measure results, and a credible third stack is somewhere that money could move, if advertisers trust a pixel already under scrutiny.

What to watch · 2026-2027
  • Documentation update. Does OpenAI name __obi in the pixel docs and cookie policy, and how does it classify it.
  • Regulator inquiry. An analytics label on a cross-site identifier tied to a login is a gap EU authorities have pursued before.
  • Advertiser behavior. Whether sites keep sending unhashed postal codes once the practice is public.
  • Default settings. Whether ChatGPT's ad personalization moves from opt-out to opt-in for free-tier users.

Our take

OpenAI wrote a pixel doc that reads like a careful, consent-respecting, first-party system: two named cookies, a consent flag that actually removes them. A researcher looked at what advertiser sites actually send and found a third cookie, scoped to the domain holding a ChatGPT login, doing the one thing the documented design was built to avoid: crossing from someone else's website back to a real account, undocumented. That gap is worse than if OpenAI had just admitted this is how the ad business works, because the disclosure people trust does not describe the product as built. Hashed emails, a year-long cookie, an unhashed postal code: Meta and Google normalized all of it years ago. Doing the same thing quietly at a company whose product is a chat window people confide in deserves more scrutiny than 'ChatGPT has ads now' got at launch.

Primary sources

Original analysis by GenZTech. Source: Buchodi.