尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

ChatGPT中的广告:逆向工程分析哪些广告实际会显示

ChatGPT中的广告:逆向工程分析哪些广告实际会显示 最新内容请微.信搜索公.众.号阅读内容总结ChatGPT 中的广告会正常投放存在于result.ads[]数组中但界面最多只会显示一次—— 在 300 多万次回复中约 87% 的带广告回复会显示可见的广告卡片约 13% 的广告虽然投放了但从未展示。在实际展示层面该界面本质上是单广告位的仅约 4.2% 的广告响应会同时服务于多个广告商极少出现三个广告商四个几乎不存在。而在返回两个广告商的响应中83% 显示一张卡片13% 不显示任何卡片约 4% 会同时显示两张卡片。当两个广告商发生竞争时界面倾向于展示品牌名称出现在 ChatGPT 生成答案中的那个广告答案中提到的品牌最终展示概率为 61%而未提到的被丢弃概率为 4%广告的返回顺序adsResponseIndex预测获胜者的准确率约为 90%但这仅仅是一个代理指标而非底层逻辑。5.1% 的响应会在不同的ads_response_index值中重复发送同一个广告。因此如果解析器直接以索引作为唯一键名就会错误地将“用户看了一次广告”报告为“看了三次”。被标记为hidden隐藏的广告实际上并未出现在广告数据流中60 天内的 8,590 个广告中无一例外。因此已投放但未显示的广告数量差额完全取决于前端的渲染决策而非可见性过滤标志。OpenAI 的广告有效载荷Payload回答了一个问题 —— ChatGPT投放了什么却悄悄隐藏了另一个关键问题 ——用户实际看到了什么这两个数字并不等同。在 ChatGPT 中广告以候选列表的形式存在于result.ads[]数组中但聊天界面在每个回复下方最多只会渲染一张广告卡片。其余的广告均处于“已投放但未显示”的状态这些付费广告位在被大模型评估后、呈现在屏幕上之前就被丢弃了。本文通过分析关于 ChatGPT 广告的数据反向推导并填补了这一认知差距。我们测量了广告实际被渲染的频率、“多个广告”实际上是同一广告重复播放的频率、OpenAI 隐藏广告的频率以及 —— 当两个广告商真正竞争时 —— 前端界面最终会选择展示哪一个。对于最后一个问题数据给出了一个基于内容的清晰答案。注这些数据来自对数百万条 ChatGPT 回复的测量采样而非针对整个 ChatGPT 平台的普查。采样广告主要集中在美国、加拿大、澳大利亚和日本且提示词组合偏向商业意图。“已投放但未显示”究竟是什么样的ChatGPT 的回复中包含的付费广告位可能远多于用户在屏幕上实际看到的数量。API 返回的result.ads[]数组代表 OpenAI 的投放决策 —— 即竞价系统针对该提示词Prompt返回的广告候选列表。而答案下方可见的卡片则代表展示决策 —— 即前端客户端根据渲染逻辑最多只保留一个广告并将其余广告丢弃。对于任何想要衡量 ChatGPT 广告效果的人来说这一点至关重要。如果你直接统计result.ads[]中的广告投放数量你统计的只是广告的“出货量”而非实际的“曝光量”Impressions。广告主真正关心的曝光加权数据需要依据“展示决策”而该决策并不存在于广告有效载荷的字段中。你必须从渲染后的 DOM网页文档对象模型中提取该字段。“已投放”与“已显示”在数据上的区别假设你向 ChatGPT 提问“如何在不损坏耐克 Air Max 运动鞋的前提下清洗它们”API 返回的响应中包含一个非空的result.ads[]数组 —— OpenAI 向你推送了一个鞋类护理品牌的广告ads: [ { brand: { name: Wolf Shepherd, url: https://wolfandshepherd.com/?utm_sourcechatgpt.com }, cards: [ { title: Sneaker Shoe Care Kit, image: https://bzrcdn.openai.com/…webp } ], visibility: allowed, adsResponseIndex: 0, rendered: false } ]广告确实存在于数据有效载荷中。但是当你阅读用户屏幕上实际看到的答案时下方并没有任何“赞助”卡片 —— 无论是 Wolf Shepherd 还是其他品牌的。数据中的rendered: false字段清晰表明OpenAI 投放了该广告但前端界面并未将其渲染出来。因此此响应只能计为“广告投放”而不能计为“广告曝光”。即便广告内容与用户提问完全契合这种情况依然会发生。例如鞋类护理广告与“清洗鞋子”的提示词高度匹配但它依然没有被展示。是否投放广告由竞价系统决定而是否展示则是前端界面在构建最终答案时做出的另一个独立决策。再来看相反的例子。当你提问“目前最好的外呼销售平台是什么”得到的答案推荐了 JustCall —— 这次答案下方成功渲染出了它的赞助卡片因此该广告带有赞助标识且状态为rendered: true。同样的result.ads[]数据结构用户端却呈现出了截然相反的结果。区分两者的唯一标准就是rendered字段……我们如何解读visibility与rendered字段每条广告数据中的这两个字段讲述着不同的故事且它们来自于完全不同的数据源visibility可见性这是 OpenAI 官方返回的判断直接传递。在 SSE服务器发送事件数据流中投放的每条广告都带有visibility.status字段其值为allowed允许或hidden隐藏表示未能通过 OpenAI 的合规完整性检查。Cloro 会原样复制该值并不对其做加工。在实际数据中该状态几乎无一例外都是allowed。rendered已渲染这是 Cloro 自身的测量指标。因为原始有效载荷本身不会透露页面最终加载了哪条广告。Cloro 会通过读取渲染后的 HTML 中是否存在data-testidimage-card-v2-elevated-brand元素来做判断 —— 该元素仅存在于真正渲染成功的赞助卡片上而不会出现在页面其他地方嵌入的已投放广告 JSON 中。该元素包含了可见标签如“赞助”或广告商名称。当广告商名称与卡片匹配时标记为rendered: true否则标记为false。该读取过程设有超时限制避免因页面加载缓慢而导致抓取卡死此时会直接标记为未渲染。因此visibilityOpenAI 是否允许投放该广告与rendered用户是否真正看到了该广告回答的是两个不同的问题。这就是为什么一条广告可以同时处于allowed: true且rendered: false的状态。发现 1 广告被投放了但不一定会被展示在 325 万次包含广告的回复响应中约 87% 的响应会渲染出可见的广告卡片约 13% 的响应虽然投放了广告但用户从未看到过。大多数情况下单个广告被投放后约有 87% 的概率会在屏幕上显示剩下的 13% 则意味着用户根本没有看到它。这约 13% 的差距是评估 ChatGPT 广告真实效果时最重要的修正项大约每 8 个被成功投放的广告中就有 1 个从未触达用户的眼睛。发现 2界面本质上是单广告位的但并非绝对ChatGPT 的广告版面被设计为单一广告位数据也证实了这一点只有约 4.2%的广告响应会同时服务于多个不同的广告商。大约每 4000 个响应中才会出现一次包含 3 个广告商的情况而包含 4 个广告商的情形则极为罕见我们在整整一周的流量监控中仅捕获到 4 次。“最多展示一个”虽然符合直觉但不够严谨。在返回了两个广告商的响应中广告卡片渲染情况在双广告商响应中的占比渲染 1 张卡片82.9%渲染 0 张卡片12.7%渲染 2 张卡片4.4%因此前端界面通常显示一个广告偶尔不显示极少数情况下会同时渲染两个。如果直接将result.ads[]数组中的广告数量等同于曝光次数不仅会因为“已投放未显示”而高估还会在极少数“同时渲染两张卡片”的情况下造成低估。发现 3同一条广告可能会被多次计数这也是简单粗暴的广告计数逻辑极易出错的地方。ChatGPT 会在响应流中多次重复发送同一个广告每次重播都会赋予一个新的事件标识ads_response_index。因此一个只展示了单张广告卡片的回复其底层可能包含三个完全相同的type: ads事件其索引分别为 0、1 和 2。根据数据有5.1% 的广告响应会以这种方式重复发送同一个广告商的信息。如果你仅根据ads_response_index进行去重或计数就会保留所有 3 个副本从而将用户仅看到一次广告的事实错误地报告为看了三次。这是一个常见的解析陷阱。如果不做内容去重解析器就会将同一个广告位里的重复重播误判为多次不同的广告投放。正确的做法是基于广告商和素材内容品牌及其卡片信息进行去重并将ads_response_index的递增视为重播计数器而非新广告的标识符。同一个广告播放多次它依然只是那同一个广告。发现 4数据流中几乎不存在hidden状态的隐藏广告每一个被投放的广告都带有visibility.status字段。直觉上人们可能会认为hidden被 OpenAI 完整性检查过滤掉的广告可以解释“已投放但未显示”的数量差距。但事实并非如此。在 Cloro 连续 60 天监控的 8,590 个包含广告的响应中没有出现过任何一个被标记为hidden的广告事件。我们观测到的每一个被投放的广告其状态均为allowed。这是一个关键的否定性结论。“已投放”与“已显示”之间的差距并非因为 OpenAI 在有效载荷中将广告标记为了不合格 —— 因为这类广告根本不会被推进数据流中。这一差距完全取决于广告被标记为allowed之后前端界面所做出的渲染决策。因此不要试图通过visibility.status来推算真实的曝光量。发现 5被展示的广告正是 ChatGPT 在回答中提到的那个现在来看一个非常有趣的现象当 ChatGPT 的有效载荷中同时包含两个不同的广告商但前端最终只打算展示其中一个时它是如何做出选择的我们测试了有效载荷中的各个字段 —— 广告格式image_card_v2与product_card_v2、卡片数量、图片是否存在、visibility状态以及adsResponseIndex等结果发现预测性最强的信号根本不在广告有效载荷本身而在于 ChatGPT 生成的文本回答之中。如果某个广告商的品牌名称出现在了 ChatGPT 生成的回答文本中该广告被最终渲染展示的概率高达 61%而未在文本中被提到的品牌其展示概率仅为 4%。前端界面会优先渲染大模型在正文中实际提及的那个品牌。已投放的广告是否在生成答案中被提及最终成功渲染的广告61%最终被丢弃未展示的广告4%这可以简化为一条包含两部分的判定规则1. 当回答文本恰好提到了两个广告商中的某一个时占双广告商响应的 60%被提到的那个广告有96% 的概率会被渲染展示45 次测试中成功了 43 次。2. 当两个广告商均未在回答文本中被提到时占 39%前端界面会退而求其次按照投放顺序渲染后被投放的广告即具有较高adsResponseIndex的广告有86% 的概率会被渲染。而那些打破了简单排序规则的例外情况恰恰揭示了背后的真相在约 10% 的响应中先被投放的广告最终反败为胜且这些广告无一例外都与回答上下文高度相关。例如在搜索“西雅图的星巴克”时Expedia 的广告压制了一个跑鞋品牌在搜索“最佳销售拓展工具”时Gong.io 的广告压制了一个潜在客户开发工具。这表明广告的选择过程是基于广告素材与生成的答案之间的上下文语义匹配而非固定的位置排序。adsResponseIndex之所以能达到 90% 左右的预测准确率仅仅是因为 OpenAI 的后端倾向于把与答案更相关的广告放在后面投放 —— 它只是一个代理指标而非根本机制。渲染后的 DOM 才是检验真相的唯一标准。这对 ChatGPT 中的广告效果衡量意味着什么广告效果测量的三条黄金法则对于任何在 ChatGPT 生态中追踪广告效果的人来说以下是三条切实的建议1. 不能简单用ads[].length来代表曝光量。约 87% 的广告响应会展示广告卡片直接统计已投放的广告列表会高估用户实际看到的广告数量约 13%。请务必测量实际渲染的卡片而非仅仅统计数据包里的广告列表。2. 去重必须基于广告商数据而非索引标识。5.1% 的响应存在重复投放现象。如果把ads_response_index当成唯一标识就会严重夸大计数。无论重播多少次一个广告位只对应一个广告商和一套素材。3. 最终展示的广告是文本回答中提到的那个。在占比约 4% 的双广告商回复中只要回答中提到了某个品牌该品牌对应的广告就有 96% 的概率会被渲染展示。广告格式、卡片数量等均无影响广告投放顺序adsResponseIndex也仅仅是底层语义匹配结果的一种体现。为什么这对广告商至关重要对广告主而言这直接关系到预算与投入产出比。result.ads[]代表的是赢得了广告竞价的品牌而只有成功渲染的卡片才代表真正被用户看到的品牌。当两个广告主共享一个广告位时约 90% 的情况下先被投放的那个广告会被前端直接丢弃。如果你的曝光量统计止步于竞价成功的数据包就会严重高估那些从未在屏幕上展现过的广告曝光。Cloro 在对 ChatGPT 广告效果进行监测时全面融入了这三项校正机制首先基于广告商和广告素材对数据进行去重其次保留每条广告自身的visibility和adsResponseIndex原始标记最后通过读取 DOM 注入rendered标记明确指示前端界面实际绘制了哪一条广告。只有这样才能将“投放了多少”准确转化为“看了多少” —— 这才是广告曝光衡量的核心指标。如何在 ChatGPT 中赢得广告位如果最终展示的广告是 ChatGPT 在回答中提到的那个那么广告主的营销策略就非常明确了成为 ChatGPT 在回答特定搜索词时主动引用的品牌。两个广告主可能会赢得同一个搜索词的竞价但只有被大模型文本提到的那个广告才会被真正渲染出来。因此在 ChatGPT 中广告的最终转化不仅取决于竞价出价更取决于品牌在模型心中的“权威度与曝光度”。对于广告主来说有三件事至关重要成为值得被搜索查询引用的品牌。那些最终能在回答中被提到并成功展示广告的品牌都是模型已经认定为优质答案的选项 —— 这些品牌在其领域内拥有真正的权威性并且在公网上提供了能被 AI 搜索引擎轻松抓取和引用的结构化、高质量内容。如果 ChatGPT 在正文中从不主动推荐你那么单靠购买广告位在竞争中就只能任由排序机制摆布。将产品与用户意图相匹配而非仅仅匹配关键词。例如如果用户的搜索词是“最佳乡村运营商”此时展示一个充电器品牌的广告其效果远不如回答正文中实际提及的任何相关品牌广告。系统是根据生成答案的上下文来判断相关性的而答案的语义范围往往比原始搜索词更具体、更狭窄。衡量真实曝光量而非仅看投放数据。追踪用户侧真实的rendered已渲染次数而非仅仅看result.ads[]中的停留数据同时观察你的品牌名称是否频繁出现在广告卡片旁边的回复正文中。这种“正文提及 赞助卡片”的重叠正是 ChatGPT 广告被用户高效接收的早期征兆。这些关键信息都不会直接显示在普通的广告投放报告中。只有将广告有效载荷与生成回复的内容关联起来才能还原真实图景这正是评估 ChatGPT 广告效果时必须从渲染后的回复内容而不是广告投放列表入手的根本原因。深入了解飞马世界上最臭名昭著的间谍软件系统的演变
返回列表