The launch of ChatGPT’s ad-supported tiers was pitched as a routine monetization play, but under the hood, OpenAI has quietly deployed an aggressive cross-site tracking system that should make every privacy team shudder. At the heart of this mechanism is a persistent, one-year cookie named
__obi. Placed on user devices under the .openai.com domain with a SameSite=None flag, __obi acts as a cross-context ad pixel that automatically attaches itself to subresource requests across third-party merchant sites. What makes this setup particularly insidious is its explicit identity binding: OpenAI generates a signed JSON Web Token on chatgpt.com that directly links this random tracking string to a user’s permanent internal ChatGPT account ID. By leveraging third-party e-commerce sites running OpenAI’s tracking SDK, the company gains the architectural capability to resolve off-site browsing habits—from specific products viewed to medical or debt-relief intake funnels—straight back to individual AI user profiles.From a regulatory and corporate risk perspective, this architecture is a walking liability minefield. By misclassifying
__obi as a standard “Analytics” cookie in its official policies, OpenAI forces the identifier onto users who explicitly reject marketing tracking—a blatant violation of GDPR purpose limitation rules and ePrivacy consent mandates that invalidates user consent across the board. For the e-commerce merchants unwittingly deploying OpenAI’s pixel tag (oaiq.min.js), the legal fallout is equally severe. Under CJEU precedent, embedding scripts that capture data-layer variables and transmit cleartext location or hashed personal data instantly exposes merchants to joint controller liability under GDPR Article 26, alongside steep exposure to California invasion-of-privacy (CIPA) wiretapping claims.The technical deep dive below breaks down how this tracking pipeline operates and what organizations must do to mitigate their exposure.
OpenAI’s launch of ChatGPT Ads on Free and Go tiers introduced an ad-measurement ecosystem powered by an internal ads platform code-named Bazaar (
bzr.openai.com).When a user accesses ChatGPT while logged into an account, the browser issues a signed JSON Web Token (JWT) binding a random session identifier to the user’s permanent internal account ID (
sub). That token is posted cross-site to set a persistent tracking cookie named __obi under the .openai.com domain.[ChatGPT User Account] ──(JWT Binding)──> [__obi Cookie (.openai.com)]
│
▼ (SameSite=None Cross-Site Request)
[Third-Party Merchant Page] ──(Loads SDK)──> [OpenAI Ad Collector: bzr.openai.com]
Cookie Configuration Details
| Attribute | Observed Setting | Risk & Operational Impact |
| Domain Scope | .openai.com |
Shared across all OpenAI properties and third-party script loads. |
| SameSite | None (Secure) |
Instructs the browser to attach __obi on cross-site subresource requests. |
| Lifespan | 31,536,000 seconds (1 Year) | Persists tracking across sessions without requiring active login states. |
| Script Execution | Pre-execution loading | Transmitted automatically on <script src> tags prior to JS execution. |
When an advertiser installs OpenAI’s JavaScript SDK (
oaiq.min.js), the user’s browser automatically attaches the __obi cookie to the script load request. The SDK then inspects the host page for context, scraping values from form fields, rendered DOM text, and tag manager buses (window.dataLayer or adobeDataLayer). While names, emails, and phone numbers are SHA-256 hashed, geographic identifiers (such as postal codes) and full URL paths—which can expose sensitive funnels like debt relief, litigation intake, or health conditions—are transmitted in cleartext.Regulatory and Litigation Exposure for OpenAI
The current deployment model creates legal risk under international privacy frameworks and state wiretapping statutes:
1. Misclassification Under GDPR Purpose Limitation (Article 5)
OpenAI classifies
__obi as an Analytics Cookie in its official cookie policy. Under European Data Protection Board (EDPB) guidance, cross-site ad-conversion attribution and persistent cross-merchant identity mapping do not constitute statistical first-party analytics.-
Consent Invalidation: In cookie consent CMPs, users who accept “Analytics” while toggling off “Marketing” still receive the
__obitoken sync (consent_decision: analytics_allowed). Processing ad-measurement data under an analytics consent grant violates GDPR Article 6 (Lawfulness of Processing) and Article 5(1)(b) (Purpose Limitation).
User Action: Selects "Analytics Only" (Rejects "Marketing")
│
▼
OpenAI Backend Issue Sync: consent_decision = analytics_allowed
│
▼
Result: __obi Persistent Cross-Site Tracking Enabled <-- [GDPR Violations]
2. Breach of ePrivacy Directive (Article 5(3))
The ePrivacy Directive strictly mandates prior, explicit opt-in consent before storing or reading non-essential identifiers on a terminal device. OpenAI’s SDK defaults to
consent = true upon initialization unless an advertiser writes custom code to override it.3. California Wiretapping and Statutory Claims (CIPA / CCPA)
In the US, transmitting URL paths and form inputs to third-party ad collectors without affirmative consent triggers exposure under the California Invasion of Privacy Act (CIPA) §§ 631/632, alongside California Consumer Privacy Act (CCPA) opt-out violations for “sharing” personal data for cross-context behavioral advertising.
The Advertiser’s Dilemma: Joint Controller Liability
Businesses that deploy OpenAI’s
oaiq.min.js pixel on their e-commerce or lead-generation pages expose themselves to legal risk:Joint Controller Exposure (GDPR Article 26)
Following CJEU precedents (Fashion ID and Wirtschaftsakademie), an entity embedding a third-party tracking tag that causes personal data to be transmitted to a vendor acts as a Joint Controller for the collection and transmission stage.
-
Lack of Transparency: E-commerce operators installing the pixel are often unaware that the SDK injects cross-site account identifiers (
__obi) or scrapes page layers. -
Shared Fines: Regulators can hold merchants liable for firing tracking pixels prior to obtaining valid CMP consent.
Unsanctioned Data Leakage
When the SDK scrapes data layers automatically, advertisers inadvertently expose hashed customer identifiers and cleartext basket/URL parameters to OpenAI’s ad backend without updated Data Processing Agreements (DPAs) or explicit user disclosure.
Mitigation Checklist for Privacy Teams & Web Operators
If your platform uses third-party marketing tags, take immediate steps to audit and contain tracking exposure:
[Merchant Website Audit]
│
┌─────────────────────┴─────────────────────┐
▼ ▼
[Client-Side Mitigation] [Server-Side Remediation]
├── Audit Script Execution Order ├── Migrate to Server-to-Server APIs
├── Strip SameSite=None Third-Party Tokens ├── Sanitize Sensitive Payload Paths
└── Mandate Strict Zero-Trust Tag Controls └── Configure CNAME First-Party Proxies
Immediate Action Plan
-
Conduct Automated Pixel Audits
-
Run a network trace on pages containing
<script src="*openai*">. Inspect outgoing payload bodies for cleartext postal codes, hashed emails, or scraped DOM variables.
-
-
Enforce CMP Tag Gating
-
Ensure that
oaiq.min.jsis strictly blocked by your Consent Management Platform (CMP) until the user explicitly opts into Marketing / Targeted Advertising categories. Do not allow the script to load on “Analytics” consent alone.
-
-
Neutralize Third-Party Script Defaults
-
Hardcode default consent parameters to false before invoking SDK initializations:JavaScript
window.oaiq = window.oaiq || function() { (window.oaiq.q = window.oaiq.q || []).push(arguments) }; window.oaiq('consent', 'revoke'); // Force strict opt-in gating
-
-
Update Privacy Policies and Vendor Lists
-
Disclose OpenAI as a third-party ad-measurement partner in your public Cookie Notice and privacy disclosures, clearly outlining the scope of cross-context data processing.
-
