当前位置: 首页 > news >正文

2026年ChatGPT广告投放全解析:归因循环、选广逻辑与商家端闭环揭秘

ChatGPT广告投放全解析:完整归因循环、选广逻辑与商家端闭环揭秘

2026年4月28日,下面来深度解析OpenAI的ChatGPT广告投放机制,其广告平台由两部分构成。在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": "gAAAAABp6Js_<...redacted...>",
"preamble": "",
"advertiser_brand": {
"name": "Grubhub",
"url": "www.grubhub.com",
"favicon_url": "https://bzrcdn.openai.com/cabfae7ead26b03d.png",
"id": "adacct_6984ed0ba55481a29894bb192f7773b4"
},
"carousel_cards": [{
"title": "Get Chinese Food Delivered",
"body": "Satisfy Your Cravings with Grubhub Delivery.",
"image_url": "https://bzrcdn.openai.com/cabfae7ead26b03d.png",
"target": {
"type": "url",
"value": "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` 的格式为 `adacct_<32位十六进制数>`,是每个商家账户的稳定标识符。
- 品牌图标和广告图片均从 `bzrcdn.openai.com` 加载,这表明是OpenAI托管广告素材,而非商家自己。
- `target.open_externally: false` 意味着链接将在ChatGPT的应用内网页视图中打开,这样OpenAI除了能获取像素信号外,还能观察到点击后的导航情况。
- 每个广告有四个Fernet令牌:`ads_spam_integrity_payload`、`oppref`、`olref` 和一个经过Base64编码的 `ad_data_token`。每个令牌都使用仅服务器端拥有的密钥进行AES - 128 - CBC加密,并通过HMAC - SHA256保证完整性。

广告如何被选中

面板中的一个账户在六次不同主题的对话中收到了六个不同的广告。广告投放是基于聊天内容进行上下文定位的:
| 对话主题 | 投放的广告商 |
| --- | --- |
| 北京旅行规划(长城、故宫) | Grubhub — “Get Chinese Food Delivered” |
| 北京旅游预订 | GetYourGuide — 长城旅游,`ad_id=beijing003` |
| 北京航班 | Axel — `utm_term=vflight_beijing_03` |
| NBA季后赛 | Gametime — `utm_campaign=nba&utm_content=playoffs` |
| 春季时尚/潮流 | Aritzia — `utm_campaign=chatgptpilot_trav3` |
| 生产力/幻灯片 | Canva — `utm_campaign=…link - clicks_products` |
同一个账户,不同的主题会匹配不同的品牌。目前尚未找到证据表明广告定位是否也会结合之前的对话历史。

四令牌归因链

每个广告都附带四个不同的Fernet加密数据块。根据它们出现的位置,其作用如下:
1. **`ads_spam_integrity_payload`**:发送在SSE数据内,不会出现在点击URL中。用于服务器端对伪造广告点击进行完整性检查。
2. **`oppref`**:出现在点击URL中,并由OAIQ像素原封不动地复制到cookie `__oppref` 中(TTL为720小时/30天)。这是正向归因令牌,会随后续每个商家像素事件一同传递。
3. **`olref`**:与 `oppref` 一起出现在点击URL中,但观察到的SDK并未存储它。可能用于OpenAI服务器端的展示端/出站链接引用记录。
4. **`ad_data_token`**:是经过Base64编码的JSON,其中包含另一个Fernet令牌。它包含在SSE有效负载中,推测在点击时会在服务器端进行核对。
Fernet的前九个字节是公开的:版本字节 `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
捕获的家得宝(The Home Depot)点击URL的生成时间是11:30:08,浏览器在11:31:43访问了商家页面,点击延迟为95秒。

商家端的循环如何闭合

用户点击卡片后,浏览器会打开以下链接:
https://www.grubhub.com/?utm_source=chatgptpilot&...
&oppref=gAAAA<...>
&olref=gAAAA<...>
商家页面会加载OAIQ SDK:


`oaiq.min.js` 的版本是0.1.3。初始化时,它会从 `window.location` 读取 `?oppref=`,将其写入第一方cookie `__oppref` 中,TTL为720小时,并设置一个探测cookie `__oaiq_domain_probe`。后续的每个 `measure` 调用都会将JSON数据POST到:
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`。

http://www.jsqmd.com/news/723997/

相关文章:

  • 讲讲2026年好用的高纯氦气品牌,上海地区的推荐 - 工业品网
  • 3. AI大模型架构图和盈利模式
  • biliTickerBuy深度解析:高并发抢票系统架构设计与HTTP 429错误处理实战
  • 如果临近上线,你的组员说有风险,你作为组长应该怎么处理
  • Godot游戏资源解包终极指南:3分钟提取所有素材
  • Flutter for OpenHarmony:使用 pool 库优雅管理并发资源,打造稳定后端架构
  • 救命!全网最通俗易懂Milvus部署教程,小白10分钟无痛上手(附Python完整代码)
  • 哪些公司做的防伪标签质量好?从材质、加密到抗复制能力逐项拆解 - 品牌排行榜
  • biliTickerBuy项目中的HTTP 429错误处理优化:3大策略提升抢票成功率
  • 探讨做角钢的企业哪家口碑好,全国范围内的优质之选 - 工业设备
  • 别再让服务器背锅了!前端直传阿里云OSS保姆级避坑指南(Java STS后端 + Vue el-upload前端)
  • 告别JSON臃肿:用Apache Avro为你的Kafka或Hudi数据瘦身(附实战代码)
  • 2026实力派专业产品包装设计公司深度测评及品牌选型推荐 - 设计调研者
  • 从BERT到GPT:一文理清‘双向编码’和‘单向自回归’损失函数的设计哲学与演进
  • 如何在Blender中导入MMD模型:MMD Tools插件完整教程
  • NSK滚珠丝杠选型中的三个易忽略参数:预压方式(双螺母/偏移预紧)、动额定载荷与理论寿命计算 - 品牌排行榜
  • 基于Redis Zset 实现延迟队列
  • 2026年钢铁槽钢公司Top10,探讨永洋钢铁槽钢有实力吗 - 工业设备
  • 目标检测YOLOv5前,别忘了用OpenCV给图像做个‘光照SPA’:预处理实战
  • 2026年内蒙古靠谱的玻璃钢化粪池定制厂家排名Top10 - 工业设备
  • 告别纸上谈兵:用Vector Davinci Configurator手把手配置Autosar DCM模块(实战避坑)
  • 深度学习篇---匈牙利算法与OC-SORT
  • 2026年北京口碑好的AI全域全网搜索服务公司推荐,专业解决方案全解析 - 工业品牌热点
  • 3分钟免费解密网易云音乐NCM文件:ncmdump完整使用指南
  • GitHub中文界面终极汉化指南:3分钟告别英文困扰,提升30%开发效率
  • DLSS Swapper完全指南:3分钟免费提升游戏画质与性能的终极方案
  • 57-0000-13 X 射线管 10KV,1.5mA,15 W,Fe 靶
  • 超越基础教程:用VPI+Matlab实现高阶QAM相干光通信系统的DSP算法实战
  • NVMe 2.3协议学习
  • 详解C++编程中数组的基本用法