OpenAI's ad platform sets a year long cookie tied to ChatGPT accounts, one that survives cookie clears, sign outs, and even switching browsers.
Open ChatGPT. Ask it something. Close the tab. That session is now being linked, not to an anonymous browser, but to your account, with the products you search for, the articles you read, and the purchases you make on retailer sites that run a small piece of OpenAI's code.
The mechanism is the same one retailers have been installing from Meta and Google for years. This version runs through an AI chat product, and the identifier it sets is bound to a signed-in ChatGPT account, not just to a browser. An independent researcher walked through the deployed flow this week in a technical reproduction, and a Hacker News thread filled in the consumer-side reading.
The researcher counted 936 distinct advertiser pixels reaching 1,029 hostnames, captured with two independent methods on their own phone. That count is not an industry disclosure. It is one observer watching the deployed mechanism attach itself to the rest of the web's adtech the same way a Meta Pixel or a Google Ads tag would.
When you load chatgpt.com, the client generates 16 random bytes and calls a backend endpoint that returns a signed token (an RS256 JWT). That token binds a 22-character identifier to your account subject and is then sent to bzr.openai.com, OpenAI's ad platform, which sets a cookie named __obi on the .openai.com domain. The cookie is configured with SameSite=none, Secure, HttpOnly, and a one-year Max-Age. Because the cookie lives on the openai.com domain and is flagged SameSite=none, the browser sends it from any other website that loads the bzr script. The cookie persists for a year; the token expires in sixty seconds. The result is a long-lived cross-site identifier that travels with the user from any advertiser page that runs the bzr tag.
The identifier is tied to the account before the cookie is ever set, and the same identifier can be re-derived from the account at any time. Clearing cookies does not unlink the account. Signing out does not unlink the account. Using a different browser on the same ChatGPT account does not unlink the account. The link survives every move a user can make on the consumer surface.
The token itself records a consent decision the product does not visibly expose. The walkthrough shows fields named consent_decision: "analytics_allowed" and consent_policy_version: "user_granular_consent_v1". The mechanism is labeled standard adtech, but running it on an AI chat product has no precedent, and a granular consent policy that does not surface in the product is a fair question to put to OpenAI. The same gap is flagged in the community discussion: a control the token references, that the public product does not obviously expose.
The bzr.openai.com and bzrcdn.openai.com hosts can be blocked at the network layer, which fully severs the cross-site send. The user_granular_consent_v1 field the token references implies a control the public product does not visibly expose, and that is the right question to send OpenAI's way. The mechanism is also the exact pattern EU and UK regulators have been pushing on for cross-site tracking, so the reader does not have to imagine what comes next.