How ChatGPT serves ads
ChatGPT 如何投放广告。这是完整的归因循环。 OpenAI 的广告平台有两部分。在 ChatGPT 端,后端在模型响应时将结构化的 single_advertiser_ad_unit 对象注入会话 SSE 流中。在商家方面,名为 OA

先看结论:ChatGPT 如何投放广告。
ChatGPT 如何投放广告。这是完整的归因循环。
核心内容
OpenAI 的广告平台有两部分。在 ChatGPT 端,后端在模型响应时将结构化的 single_advertiser_ad_unit 对象注入会话 SSE 流中。在商家方面,名为 OAIQ 的跟踪 SDK 在访问者的浏览器中运行,并将产品视图报告回 OpenAI。两者通过 Fernet 加密的点击令牌联系在一起,每个广告有四个点击令牌。我在经过同意的移动交通研究车队中拍摄了这两个部分。以下所有内容均来自观察到的流量。广告如何进入对话 当您向 ChatGPT 发送消息时,后端会在 chatgpt.com/backend-api/f/conversation 上打开 SSE 响应。该流中的大多数事件都是模型输出。有些是广告单元。它们看起来像这样: event: delta data: { "type": "single_advertiser_ad_unit", "ads_request_id": "069e89b3-c038-7764-8000-6e5a193e5f69", "ads_spam_integrity_payload": "gAAAABp6Js_", “序言”:“”,“advertiser_brand”:{“名称”:“Grubhub”,“url”:“www.grubhub.com”,“favicon_url”:“https://bzrcdn.openai.com/cabfae7ead26b03d.png”,“id”: "adacct_6984ed0ba55481a29894bb192f7773b4" }, "carousel_cards": [{ "title": "中餐外卖", "body": "Grubhub 外卖满足你的口腹之欲。", "image_url": "https://bzrcdn.openai.com/cabfae7ead26b03d.png", "目标": { "类型": "url", "值": "https://www.grubhub.com/?utm_source=chatgptpilot&utm_medium=paid&utm_campaign=diner_gh_search_chatgpt_kw_traffic_nb_x_nat_x&utm_content=nbchinese&oppref=gAAAA&olref=gAAAA", "open_externally": false }, "ad_data_token": "eyJwYXlsb2" }] } 注意: single_advertiser_ad_unit 是类型化架构。命名意味着兄弟(多广告商等)。advertiser_brand.id isadacct_ - 稳定的每个商户帐户标识符。- 品牌图标和广告图像均从 bzrcdn.openai.com 加载。
OpenAI 托管的是广告商的创意,而不是商家的创意。
target.open_externally: false 在 ChatGPT 的应用内 Web 视图中打开链接,因此 OpenAI 会观察任何像素信号之上的点击后导航。
- 每个广告有四个 Fernet 令牌: ads_spam_integrity_payload 、oppref 、olref 和一个 base64-wrappedad_data_token 。每个都是 AES-128-CBC,采用仅服务器密钥,具有 HMAC-SHA256 完整性。如何选择广告 面板中的一个帐户在六个不同主题的六个对话中收到了六个不同的广告。定位与聊天相关:相同帐户、不同主题、不同品牌。我没有找到任何证据来证明定位是否也包含之前的对话历史记录。四令牌归因链 每个广告都附带四个不同的 Fernet 加密 blob。
它们的角色取决于它们出现的位置:ads_spam_integrity_payload 在 SSE 数据内发送,而不是在点击 URL 上发送。服务器端完整性检查,针对点击 URL 上存在的伪造广告 clicks.oppref,并通过 OAIQ 像素逐字复制到 cookie__oppref(TTL 720 小时/30 天)。前向归因标记。与点击 URL 上的 oppref 配对的每个后续商家像素 event.olref 一起传输,但我们观察到的 SDK 并未存储该事件。可能是 OpenAI 服务器上的印象端/出站链接引用日志记录。ad_data_token 采用 base64 封装的 JSON,其中包含另一个 Fernet 令牌。包含在 SSE 负载中,大概在点击时在服务器端进行了协调。
Fernet 的前 9 个字节是公共的:版本字节 0x80 加上 8 字节大端 Unix 时间戳。因此,无需 OpenAI 密钥即可恢复任何这些代币的铸造时间: import base64, struct, datetime b = base64.urlsafe_b64decode("gAAAAABp7fdA" + "==") print(datetime.datetime.utcfromtimestamp(struct.unpack(">Q", b[1:9])[0])) # → 2026-04-26 11:30:08 UTC 我捕获的 Home Depot 点击 URL 是在 11:30:08 创建的;浏览器在 11:31:43 获取商家页面。点击延迟:95 秒。商户端如何关闭循环 用户点击卡。浏览器打开:https://www.grubhub.com/?utm_source=chatgptpilot&...
&oppref=gAAAA &olref=gAAAA 商户页面加载 OAIQ SDK: oaiq('init', { pid: '' }); oaiq('测量', 'contents_viewed', { ...}); oaiq.min.js 版本为 0.1.3。在 init 时,它从 window.location 读取 ?oppref= ,将其写入具有 720 小时 TTL 的第一方 cookie __oppref ,并设置探测 cookie __oaiq_domain_probe 。每个后续措施都会调用 POST JSON 到: POST https://bzr.openai.com/v1/sdk/events?pid=&st=oaiq-web&sv=0.1.3 如果您想阻止 ChatGPT 广告事件,则需要添加两个域到您的过滤器列表:bzrcdn.openai.com 、bzr.openai.com 。在任何 ChatGPT 推荐的点击后要检查的两个 cookie 名称:__oppref 、__oaiq_domain_probe 。
延伸阅读:如果你想继续找可转化的工具入口,可以去工具合集和赚钱专题继续看。