logo
Kurashizu Blogwhere ideas flow
  • Home
  • News
  • Blog
  • About
  • Home
  • News
  • Blog
  • About

© 2026 Kurashizu. All rights reserved.

Admin·New Post·Service Status
Powered by Cloudflare·30.10.26
← Back to news

ChatGPT now knows what you do on other websites via ad collector

Original article
buchodi.com|115 points|51 comments|by lmbbuchodi|Sep 20, 2026

OpenAI's Cross-Site Tracking: The __obi Ad Collector

OpenAI has implemented a tracking mechanism via its ad platform (internally codenamed "Bazaar") that allows the company to monitor user activity across various third-party websites and link that data directly to a ChatGPT account.

The core of this system is a cookie named __obi, which is scoped to .openai.com. While this cookie is established while you are using ChatGPT, it is designed to be transmitted back to OpenAI whenever you visit an external site that has integrated OpenAI's advertising code.

🛠️ The Technical Mechanism

The process of linking a user's identity to the tracking cookie involves a specific handshake between the client and OpenAI's servers.

The Synchronization Flow

The Identity Token

The backend issues an RS256 JSON Web Token (JWT) to bind the account to the identifier. A typical token looks like this:

{ 
  "iss": "chatgpt-wadi", 
  "aud": "bzr.openai.com", 
  "purpose": "obi_sync", 
  "operation": "set", 
  "consent_decision": "analytics_allowed", 
  "consent_policy_version": "user_granular_consent_v1", 
  "sub": "«redacted: 64-hex account subject»", 
  "subject_type": "account_user", 
  "obi": "«redacted: 22-char identifier»", 
  "exp": "«iat + 60s»" 
}

Note: The sub field represents the user account, and the token expires in just 60 seconds.

📡 Data Exfiltration and Collection

The researcher verified this behavior using two independent capture methods, analyzing traffic across 1,029 hostnames and 936 unique advertiser pixels.

Request Analysis

When a user with the __obi cookie visits an advertiser's page, several requests are sent to OpenAI.

Request TypeURLCarried __obi?Notes
GETbzrcdn.openai.com/sdk/oaiq.min.jsYesThe script load itself leaks the ID
POSTbzr.openai.com/v1/sdk/eventsYesConversion events (with obref)
POSTbzr.openai.com/v1/sdk/eventsYes"No credentials" SDK path
GETbzrcdn.openai.com/pixel-config/...NoControl request

Crucially, the browser attaches the cookie to the initial script request before any of the SDK's internal logic runs, meaning the identifier is disclosed simply by loading the tag.

What is being harvested?

The SDK scrapes identity data from four distinct sources:

  • in: Data explicitly passed by the advertiser.
  • fm: Data scraped from form fields.
  • ht: Data scraped from rendered page text.
  • js: Data pulled from the tag-manager bus.

Findings: Scraped data was significantly more common than advertiser-supplied data (685 vs 255 events). The SDK actively monitors window.dataLayer.push, adobeDataLayer, and GTM layers.

Privacy Nuances:

  • Hashing: Sensitive fields like phone numbers and emails are processed via SHA-256\text{SHA-256}SHA-256 hashing.
  • URL Stripping: Query strings are removed, but paths are preserved.

Warning: Observed paths sent to the collector included sensitive information such as litigation intake forms, debt-solution funnels, and specific medical conditions.

  • Filtering: A denylist is used to ignore exclude passwords, SSNs, and credit card numbers.

🌐 Reach and Scope

The __obi cookie is specifically engineered to bypass modern browser restrictions that block third-party cookies.

Cookie NameOutcomeReason
oai-didBlockedSameSite=Lax
oaicom-stable-idBlockedSameSite=Lax
oai-client-auth-infoBlockedDomain mismatch
__obiSentSameSite=None + Secure

Observed Impact

On a single device, the __obi identifier was transmitted to OpenAI from 12 different commercial sites, including:

  • Coursera
  • Wayfair
  • HelloFresh
  • Chewy
  • Eventbrite
  • SeatGeek
  • ThriftBooks

This tracking persists even for users who are logged out. Out of 932 decoded tokens, 196 were marked as anonymous, yet these identifiers remain stable for at least 27 days.

⚖️ Policy and Consent

OpenAI's official documentation classifies __obi as an Analytics cookie with a one-year lifespan. However, there is a discrepancy in how consent is handled:

  • User grants oai_consent_analytics
  • User refuses oai_consent_marketing
  • Result: The __obi tracking cookie is still deployed.

When questioned via press@openai.com and privacy@openai.com regarding why a marketing-style tracker is classified as "analytics" and why it persists despite marketing opt-outs, OpenAI acknowledged the inquiry but provided no direct answers.

Buchodi's Threat Intel