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 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 model | OpenAI (Bazaar) | Meta Pixel | Google tag |
|---|---|---|---|
| Install method | oaiq.min.js + optional server API | JS pixel + server Conversions API | JS tag + server-side tagging |
| Hashed PII matching | Yes: email, phone, name via SHA-256 | Yes, same model | Yes, same model |
| Unhashed location fields | Yes: country, region, city, postal code | Not detailed here | Not detailed here |
| Third-party cookie tied to login | __obi on .openai.com, absent from OpenAI's docs | Long-standing pattern, not this story's subject | Long-standing pattern, not this story's subject |
| User opt-out | Settings > Data Controls > Marketing Privacy | Platform ad-preference settings | Platform 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
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.
- 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.
- ResearchBuchodi: ChatGPT now knows what you do on other websites original writeup
- OfficialOpenAI: Ads Measurement Pixel docs the pixel, events, cookies
- OfficialOpenAI Ads developer hub ads platform overview
- DiscussionHacker News thread front-page discussion
Original analysis by GenZTech. Source: Buchodi.
