AI Newsway

OpenAI's __obi Cookie Links ChatGPT Accounts to Advertiser Sites

The identifier is filed under analytics consent, which is where the dispute starts

|7 min read0
AI Summary
OpenAI files __obi, a cookie bound to a signed-in ChatGPT account, under analytics consent, yet a teardown published on 20 September shows it carrying that account identity onto advertisers' websites. All 932 decoded sync tokens recorded analytics consent and 736 named an account. Most personal data alongside it was scraped from the host page rather than supplied by the advertiser. OpenAI acknowledged the disclosure without answering the questions put to it.
A hand holding a smartphone running ChatGPT, the app whose account identifier the __obi cookie carries onto advertiser websites.
A hand holding a smartphone running ChatGPT, the app whose account identifier the __obi cookie carries onto advertiser websites.

The contested detail in this week's teardown of OpenAI's advertising pixel is not that a cookie follows people around the web β€” it is which consent box that cookie sits behind. A researcher publishing as Buchodi's Threat Intel reported on 20 September that OpenAI files __obi, an identifier bound to a signed-in ChatGPT account, under analytics cookies, while the identifier's observable job is to carry that account onto advertisers' websites. Someone who allows analytics and declines marketing gets it anyway.

Key takeaways

  • __obi is the only OpenAI cookie set with SameSite=None, the flag a browser requires before it will attach a cookie to a cross-site request, and it lasts a year on .openai.com.
  • Every one of the 932 sync tokens the researcher decoded carried the claim consent_decision: analytics_allowed, and 736 of them named an account subject.
  • Most of the personal data travelling alongside the cookie was scraped from the advertiser's own page rather than deliberately supplied by the advertiser, by 685 events to 255.

Why the label, not the mechanism, is the story

Cross-site pixels are ordinary. Meta assembled the same three ingredients years ago: a logged-in account, a third-party cookie riding on pixel fires, and off-site conversions resolved back to a profile. Judged as engineering, OpenAI's collector is unremarkable adtech.

What makes the classification load-bearing is that OpenAI runs two independent consent switches, oai_consent_analytics and oai_consent_marketing, and publishes a cookie policy in which __obi is the sole entry under analytics. Under consent regimes modelled on ePrivacy rules, the purpose a cookie actually serves governs the permission it needs β€” not the heading a vendor files it under. A cookie whose measured function is to attach an advertising identity to third-party page views is difficult to defend as a tool for understanding how a service performs.

The handshake, in three steps

ChatGPT's client generates 16 random bytes and exchanges them at /backend-api/bazaar/obi/sync-token for a 60-second RS256 JSON Web Token whose claims bind a 64-character account subject to a 22-character identifier. The client posts that token cross-site to bzr.openai.com/v1/obi/sync, and the response writes __obi with HttpOnly, Secure, SameSite=None and a one-year lifetime β€” the cookie value and the JWT's identifier being the same string. Thereafter any page carrying OpenAI's pixel returns it. In OpenAI's internal naming, bzr is short for bazaar, the ads platform itself.

One finding undercuts the SDK's own safeguard. The pixel has a code path that omits credentials, but the browser has already attached cookies to the <script src> request that fetches the SDK, before a line of OpenAI's code runs. Loading the tag is sufficient to disclose the identifier, which means the disclosure is not something an advertiser's integration choices can switch off.

The pixel's second job: reading the host page

OpenAI's payload labels four identity sources β€” in for what an advertiser passes on purpose, and fm, ht and js for what the SDK takes from form fields, rendered page text and the tag-manager bus. That last channel is the most aggressive: the SDK swaps out window.dataLayer.push, reads adobeDataLayer, and locates renamed Google Tag Manager containers by parsing the l= parameter from the gtm.js tag. Current builds lift email and phone this way; version 0.1.31 also took names and geography until the scope narrowed on 27 August.

The hashing story is partial. Email, phone and names are SHA-256 hashed, but country, region, city and postal code travel in the clear β€” and postal code was the single most-harvested form field, in 100 events across 28 sites. Hashed identifiers combined with a clear-text postal code are a weaker privacy boundary than hashing alone suggests. Full URLs are reduced to origin plus path, with none of 23,929 observations carrying a query string, yet paths are often descriptive enough on their own: those reaching the collector included a medical condition, a debt-solutions funnel and a litigation intake form. Automatic matching was enabled on 638 of the 881 pixels whose setting was visible, every credit and lending advertiser among them.

Advertisers are not well placed to audit any of this. __obi lives on a domain their scripts cannot read, so a merchant running the tag has no way to inspect what identity its own visitors are disclosing. Since the web scraping channel dominates the deliberate one by nearly three to one, the party that legally owes visitors a consent notice is frequently not the party deciding what gets collected.

Where the evidence stops

The report is explicit about its ceiling. An HTTP 202 shows the collector accepted an event with the cookie attached; it does not show OpenAI resolving that event to an account in its own systems. The researcher describes the server-side join as following from the design rather than as something observed.

Reach is uneven, too. The behaviour was captured on Chrome for Android; Safari blocks third-party cookies outright and Chrome on iOS runs on WebKit, so no iOS browser exercises the mechanism, and desktop Chrome went untested. Roughly one ChatGPT session in five produced a sync token at all. The practical effect is that exposure is concentrated on Android users rather than spread evenly, and that the measured prevalence reads as a floor rather than a full accounting.

What the traffic does establish is persistence. On the researcher's own handset one __obi value reached OpenAI from 12 commercial sites under 13 pixel IDs β€” Chewy, Wayfair, ThriftBooks, Eventbrite, HelloFresh, Coursera and SeatGeek among them β€” and in the broader capture 12 of 30 distinct values surfaced under more than one advertiser, one under ten. Signing out is no escape: 196 tokens carried an anonymous subject that stayed fixed to a device for at least 27 days.

What happens next

OpenAI was asked directly. The researcher wrote to press@openai.com and privacy@openai.com on 14 September with two questions β€” why the cookie is classified as analytics, and whether refusing marketing consent stops it β€” and received an acknowledgement from OpenAI Support saying the observations would be shared internally, with neither question answered.

That silence sits awkwardly against how fast OpenAI is building the business the pixel serves, from sponsored agents that hold sales conversations inside ChatGPT to the Ads Manager console where the automatic-matching switch lives. The uncomfortable part is what people tell an AI assistant versus what they post publicly, and the teardown's 379 points and 188 comments on Hacker News within a day suggest developers grasped that distinction immediately. The consent classification is the thread most likely to be pulled first, because it is the one place where a company statement and a measurement plainly disagree.

FAQ

Can ChatGPT users turn off the __obi cookie?

The report identified no setting that disables it, and refusing marketing consent does not, because OpenAI treats it as analytics. It survives for a year on .openai.com. Clearing cookies removes it until the next sync, and browsers that block third-party cookies β€” Safari and every browser on iOS β€” prevent the cross-site step entirely.

Can advertisers see the ChatGPT identity attached to their visitors?

No, and that is part of the problem. __obi sits on a domain an advertiser's scripts cannot read, so merchants running the tag cannot audit it. The pixel's other cookie, __obref, is written on the advertiser's own domain and stays unique per site: 2,828 of 2,860 observed values appeared under exactly one advertiser.

Does this prove OpenAI links browsing history to named accounts?

Not conclusively. The account binding is visible inside the JWT claims, and the identifier demonstrably travels to OpenAI and is accepted. The final resolution step happens on OpenAI's servers, where the researcher could not observe it, so that part is inferred from the architecture rather than measured.

How do you feel about this article?

SJ

Discussion

Sign in to post
Loading...

Related articles

OpenAI Is Testing Ads You Can Argue With
Tech & Business

OpenAI Is Testing Ads You Can Argue With

OpenAI began testing Sponsored Agents on Wednesday, a format that lets a ChatGPT user who clicks an ad open a separate, clearly labeled conversation with an age...

Seung Jung4 days ago
OpenAI Says Its Own Models Helped Tape Out JalapeΓ±o in Nine Months
Tech & Business

OpenAI Says Its Own Models Helped Tape Out JalapeΓ±o in Nine Months

AI-generated kernels beat OpenAI expert-written versions by up to 1.8x, as JalapeΓ±o posts its first InferenceX benchmark results.

Seung Jung26 days ago
Judge Voids Pentagon Supply Chain Risk Label on Anthropic as Unlawful Retaliation
Tech & Business

Judge Voids Pentagon Supply Chain Risk Label on Anthropic as Unlawful Retaliation

A 59-page order found the Pentagon retaliated against Anthropic for criticizing the government, violating the First and Fifth Amendments.

Seung Jung24 days ago
Washington's $1 ChatGPT Deal Expires. Its Replacement Bills by the Token.
Tech & Business

Washington's $1 ChatGPT Deal Expires. Its Replacement Bills by the Token.

OpenAI's new 27-month GSA deal waives a $15 per-seat license and halves token rates, but replaces a $1-a-year flat fee with metered billing from October 1.

Seung Jung8 days ago
New Mexico's Top Court Fines a Lawyer $5,000 Over ChatGPT's Fake Witnesses
Tech & Business

New Mexico's Top Court Fines a Lawyer $5,000 Over ChatGPT's Fake Witnesses

New Mexico's Supreme Court fined attorney Stephen Aarons $5,000 and held him in contempt after ChatGPT invented witnesses and police testimony in an appeal.

Seung Jung9 days ago
Altman Rules Out an OpenAI IPO in 2026 Even With a Confidential S-1 on File
Tech & Business

Altman Rules Out an OpenAI IPO in 2026 Even With a Confidential S-1 on File

OpenAI will not complete an initial public offering this year, chief executive Sam Altman said in an interview with Fortune editor in chief Alyson Shontell, ans...

Seung Jung8 days ago