OpenAI 广告追踪:__obi Cookie 如何将 ChatGPT 账户与外部网页活动关联
OpenAI 实施第三方追踪,将 ChatGPT 账户与外部网页活动关联
OpenAI 部署了一套广告追踪机制,允许其将用户在第三方网站上的活动与其特定的 ChatGPT 账户关联起来。通过使用一种名为 __obi 的专用 Cookie,OpenAI 可以追踪用户在任何安装了 OpenAI 测量像素(measurement pixel)的网站上搜索的产品、阅读的文章以及购买行为。
技术机制:__obi Cookie 的生命周期
OpenAI 的追踪系统通过一个三步流程运行,将用户身份绑定到一个跨站标识符上。
1. 身份绑定与令牌生成
当用户访问 chatgpt.com 时,客户端会生成 16 个随机字节,并通过 /backend-api/bazaar/obi/sync-token 向后端请求同步令牌。服务器返回一个 RS256 JWT(JSON Web Token),将用户的账户主体(sub)绑定到一个唯一标识符(obi)上。该令牌生命周期较短,60 秒后过期。
2. 跨站 Cookie 部署
随后,客户端将此 JWT 发送到 bzr.openai.com/v1/obi/sync。服务器通过设置一个作用域为 .openai.com 域名的名为 __obi 的 Cookie 进行响应。关键在于,该 Cookie 配置了 SameSite=none 和 Secure,这是浏览器在跨站请求(第三方请求)期间发送 Cookie 所需的特定设置。
3. 第三方数据传输
当用户访问安装了 OpenAI SDK(测量像素)的广告商网站时,浏览器会自动将 __obi Cookie 附加到发送给 OpenAI 主机(如 bzrcdn.openai.com 或 bzr.openai.com)的请求中。即使在 SDK 的初始脚本加载期间也会发生这种情况,这意味着在 SDK 的任何内部代码执行之前,用户的身份就已经向 OpenAI 披露了。
数据收集与身份抓取
除了 __obi 标识符外,OpenAI SDK 还通过多种方法直接从广告商页面收集身份数据:
- 抓取的身份信息: SDK 从表单字段、渲染的页面文本以及标签管理总线(例如
window.dataLayer.push或adobeDataLayer)中抓取数据。在观察到的流量中,抓取的身份事件数量是广告商提供的身份事件的 685 比 255。 - 哈希处理的 PII: 电子邮件地址、电话号码和姓名在传输前会进行 SHA-256 哈希处理。
- 明文数据: 地理位置数据(包括国家、地区、城市和邮政编码)以明文形式发送。邮政编码是采集频率最高的表单字段之一。
- 行为数据: URL 以源地址加路径的形式发送。观察到的路径包含敏感信息,如医疗状况、债务解决方案渠道和诉讼受理表格。
范围与限制
浏览器兼容性
该追踪机制依赖于第三方 Cookie。因此,它在默认阻止此类 Cookie 的浏览器(如通过智能追踪预防功能的 Safari,或 iOS 上的任何浏览器)上无法工作。它主要在 Android 版 Chrome 上被观察到。
同意与政策
OpenAI 的 Cookie 政策将 __obi 分类为“分析”类 Cookie。然而,即使是那些授予了分析同意但拒绝了营销同意的用户,追踪行为依然会发生,因为 __obi Cookie 与同步令牌中的 analytics_allowed 决策相关联。
用户可见性
广告商无法看到 __obi Cookie,因为它属于 .openai.com 域名,对于广告商网站而言属于第三方。广告商只能看到转化事件;他们不知道是哪位特定的 ChatGPT 用户在访问他们的网站。
社区观点与隐私担忧
Hacker News 上的技术讨论突显了标准广告技术实践与 AI 产品性质之间的重大矛盾。
"这种机制是标准的广告技术。但前所未有的是将其运行在 AI 聊天产品上。人们会告诉这些产品他们不会放在社交网络上的事情,而这些产品正越来越多地代表他们行事。" — @handle
批评者认为,人们对对话式 AI 的隐私期望与 Facebook 等社交网络有着本质区别。一些用户表示担心,这种数据收集可能导致旨在销售产品而非提供中立信息的“极其偏颇”的 AI 回应。
其他用户指出,对于使用具有严格 Cookie 分区功能的浏览器(如 Firefox 或 Brave)的用户来说,隐私担忧在很大程度上得到了缓解,因为 Cookie 存储空间是分开的,从而防止了账户与第三方广告浏览记录关联。
Sources
相关
- Dispatch
- Dispatch
- Dispatch
- 项目
- Dispatch