跳转到主要内容
用 Product Lookup 以购物者看到的方式查看一个商品在 AI 购物引擎中的样子。发送商品名称和市场,querying.ai 就会向每个引擎询问这个商品。对每个引擎,你会知道回答是否展示了该商品、展示了哪些商家的商品条目(商家、目录、价格、库存、评分和评论数),以及回答引用了哪些页面。最多可加入 5 个竞品,逐个引擎比较;也可加入最多 3 个购物提示词,例如 best moisturizing eye cream,查看每个引擎会向购物者展示其中哪些商品。 一次查询可以回答这些问题:
  • 询问 ChatGPT、Google AI 概览、AI 模式或 Copilot 时,它们会展示这个商品吗?
  • 每个引擎通过哪些商家和目录记录展示它,价格多少,评分和评论数如何?
  • ChatGPT 的回答模型读到了关于这个商品的哪些信息?
  • 在每个引擎上,这个商品与竞品相比如何?
  • 面对一个购物问题,每个引擎会展示其中哪些商品?

提交查询

查询会拆成多次提问:每次提问都是就一个商品或一个提示词向一个引擎发问。每次提问都作为普通任务排队,响应会把它们列出来。下面只保留了 23 次提问中的 3 次:
  • lookup.id 是你的 idempotencyKey;不传时由服务器生成一个 UUID。读取查询时要用它。
  • asks[] 的每一项包含 role(product、competitor 或 prompt)、写在 prompt 或 query 中的提问文本,以及对应的 task。被拒绝的提问没有 task,而是带有 success: false 和 error。见错误。
  • credits.creditsToCharge 是响应中各次提问价格的总和,在每次提问结束前从余额中冻结。creditsCharged 是这些提问已经扣除的积分。
用 GET /v1/product-lookup/{id} 读取查询,直到 lookup.status 变为 COMPLETED。这次查询用了大约两分钟;查询在最慢的引擎回答后结束。设置 webhook.url 后,每次提问的任务结束时都会推送给你,task.idempotencyKey 中是这次提问的键,以查询 id 开头。没有覆盖整个查询的 webhook,所以每次收到推送时,请读取查询并检查 lookup.status。Schema 见 API 参考:Product Lookup 和获取 Product Lookup 结果。

请求字段

引擎与提问

商品和每个竞品得到相同的提问: “按需”指只有在 engines 中列出该引擎时才会询问它。不传 engines 时,US 查询询问 ChatGPT、AI 概览、AI 模式和 Copilot,每个商品 5 次提问;KR 查询询问 Naver AI 标签页、ChatGPT 和 AI 模式,每个商品 4 次提问。购物提示词向每个引擎各问一次:使用 US 默认引擎时 4 次,使用 KR 默认引擎时 3 次。上面的查询共有 3 × 5 + 2 × 4 = 23 次提问。 ChatGPT 问两次,是因为一次提问只对大约一半的商品展示商品记录,而同一提问重复时常常命中另一半。其他默认引擎是在 2026-10-20 对 50 个商品的测试中展示了商品的引擎: ChatGPT 一行来自 12 个 US 商品和 10 个 KR 商品,每个商品查询两次。在两个市场的 115 次提问中,Gemini 没有展示任何商品记录。

读取查询

结果分为五部分:
  • lookup:问了什么、status,以及目前已扣除的 credits。
  • summary 和 engines[]:关于该商品的回答,先跨引擎汇总,再逐个引擎列出。
  • competitors[]:每个竞品同样的 summary 和 engines[]。
  • comparison[]:逐个引擎并排列出商品和竞品。
  • prompts[]:每个引擎对每个购物提示词的回答。
在任何提问开始前,lookup.status 为 QUEUED;只要还有提问未结束,就是 PROCESSING。所有提问都结束且至少一次完成后变为 COMPLETED,全部失败时为 FAILED。各项会随提问结束陆续填入,所以查询完成前也可以读取。 下面是上述查询的 lookup、summary 和 engines[],只保留四个引擎中的两个,每个列表只留几项:
四个引擎都展示了该商品。ChatGPT 展示了 Ulta Beauty 的一条商家数据源记录,它的回答模型读到这条记录的评分为 4.5,来自 105 条评论。ChatGPT 还为三家店铺写了小组件卡片,其中包括 Amazon。AI 模式展示了一个商家的商品条目和一个标为 variant 的棒状版本,并把同品牌的眼部凝胶放进了 otherListings。

summary

engines[]

每个被询问的引擎一项:

商品条目字段

一个商品条目是引擎中某个商家对该商品的记录,只包含引擎提供的字段。 source 表示条目来自哪个目录:

ChatGPT 小组件卡片

ChatGPT 回答购物问题时常用卡片,每张卡片写着一家店铺和它从店铺页面读到的价格,背后没有目录记录。查询会在回答中的记录之后,把每张卡片读成一条 chatgpt_widget 条目,并计入 found。
  • merchant 是卡片写明的店铺,或其购买链接的域名。description 是卡片的描述行。
  • 卡片没有 rating、reviewCount、available、ids 或 modelSees。价格是 $40–$62 这样的区间时,不填 price。
  • 既没有购买链接、也没有卖家行的卡片不会被读取。
  • 店铺和价格都与该商品的某条记录或之前某张卡片相同的卡片不计入。名称或链接的网站相同,或一方以另一方开头时,视为同一店铺,例如 Ulta、Ulta Beauty 和 ulta.com。
只看目录记录时,去掉 source 为 chatgpt_widget 的条目即可。

与竞品比较

关于一个商品的提问很少展示其他品牌的商品,在 50 个商品的测试中一次也没有。所以竞品要由你指定,每个竞品都会得到与商品相同的提问。competitors[] 的每一项包含竞品的 product、summary 和 engines[],读法与商品相同。 comparison[] 把商品和竞品排在一起:每个商品一行,每个引擎一项。下面来自上述查询,只保留 Copilot,商品另加 ChatGPT:
三个商品在四个引擎上都被找到了。在 Copilot 上,该商品评论最多的条目有 2,942 条评论,两个竞品分别为 85,773 条和 117,193 条。在 8 个购物提示词回答中,CeraVe Eye Repair Cream 出现在 5 个回答里,该商品和 Clinique All About Eyes 各出现在 2 个回答里。

购物提示词

prompts[] 的每一项包含 prompt,以及 engines[] 中每个引擎一项: 购物提示词的回答会展示许多品牌的商品,所以只有包含品牌(即商品名称的第一个词)的记录,才算作本次查询的商品。正文中的名称按照 GEO 监测器统计品牌提及的方式计数,以商品全名作为检索词。 下面是上述查询中 AI 概览和 Copilot 对 best moisturizing eye cream 的回答,条目只保留本次查询的商品:
AI 概览在正文中提到了该商品,但只展示了两个竞品的记录。Copilot 通过三个商家展示了该商品。匹配基于名称,所以名称多出一个词的版本(例如 Clinique All About Eyes Rich)也会算作对应的商品。

再次发送

每次提问都有自己的键,由查询 id 构成:
  • 商品的提问:<id>:<engine>:<ask>,例如 eye-bomb-us:CHATGPT:buy。ChatGPT 的提问是 buy 和 price,其他引擎的提问是 name。
  • 第 n 个竞品的提问在末尾加上 :c<n>,例如 eye-bomb-us:CHATGPT:buy:c1。
  • 第 n 个提示词的提问:<id>:<engine>:p<n>,例如 eye-bomb-us:AIMODE:p1。
用同一个 idempotencyKey 再次发送查询,会返回已有的提问,只添加缺少的提问,也只对新添加的提问收费。可以用它补完因积分或并发被拒绝的提问,或在列表末尾添加竞品或提示词。再次发送时省略的竞品或提示词仍保留在查询中。 如果再次发送时改了商品或国家,或在已有竞品或提示词的位置放了另一个竞品或提示词,会返回 409 RESOURCE_ALREADY_EXISTS,且不写入任何内容。失败的提问在再次发送时原样返回。要让引擎重新回答,请用新的 idempotencyKey 发送查询。

价格

商品和每个竞品各 10 积分,每个购物提示词 5 积分,与询问哪些引擎无关。
  • 上面的查询是 3 × 10 + 2 × 5 = 40 积分。最大的查询(一个商品加 5 个竞品和 3 个提示词)是 75 积分。
  • 一个商品或提示词的积分分摊到它的各次提问上。使用 US 默认引擎时,商品的每次提问 2 积分,提示词的每次提问 1.25 积分。使用 KR 默认引擎时,商品的每次提问 2.5 积分,提示词的三次提问分别为 1.67、1.67 和 1.66 积分。少问几个引擎不会降低价格:只问 ChatGPT 时,商品的两次提问各 5 积分。
  • 和其他任务一样,每次提问在提交时冻结,完成时扣除。失败的提问不扣费。
  • 按套餐价格计算,一个商品在 Basic 上为 $0.025,在 Max 上为 $0.010。
冻结和套餐见积分与限制。

正确解读结果

  • 一次查询是一次快照。 每个引擎只回答一两次提问。根据单个差异采取行动前,请用新的 idempotencyKey 再跑一次查询。
  • 记录的值稳定,被选中的记录会变。 同一查询跑了四次,同一商家记录的价格、评分和评论数在 316 个值中有 307 个保持不变。每次运行会变的是回答展示哪些记录,因此 found(以 ChatGPT 最常见)、商家、mostReviewed、priceRange 以及提示词的 shown 和 named 都可能不同。
  • 相隔几分钟与相隔几小时变化一样大。 ChatGPT、AI 模式和 Copilot 的回答,相隔三分钟与相隔十一小时的差异一样大。AI 概览在几秒内重问可能返回同一个回答,所以在它上面快速重复不算新的样本。
  • 汇总比单个回答更稳定。 四次运行中,单个购物提示词的回答各有变化,但出现在最多回答中的商品每次都领先。要长期跟踪提示词,请使用 GEO 监测器。
  • found: false 只描述这些回答。 它表示本次运行的提问没有展示该商品,并不表示引擎的目录里没有它。
  • 匹配基于名称。 没有引擎返回 GTIN。改名或翻译过的商品可能落在 otherListings 中,名称上区分不出的版本也可能算作该商品。条目看起来不对时,请检查 match。

限制

  • 输入是商品名称,不支持商品页 URL 和 GTIN。
  • 市场为 US 和 KR。
  • 一次查询最多包含 5 个竞品和 3 个购物提示词。使用 US 默认引擎时,最大的查询有 42 次提问。
  • 竞品由你指定,查询不会替你寻找竞品;购物提示词能显示引擎把哪些商品摆在购物者面前。
  • 读取 ChatGPT 的记录和小组件卡片,不读取它在回答正文或表格中写出的店铺和价格。
  • 每个回答最多贡献 60 个商品条目和 20 个引用页面。
  • 只要查询的提问任务还能读取,就能读取查询,即完成后 24 小时内。见异步任务。

错误

提交时被拒绝

被拒绝的提问

每次提问都像单个任务一样接受准入检查,所以可能因余额(402 INSUFFICIENT_CREDITS)、套餐并发(429 PLAN_CONCURRENCY_LIMIT)、密钥的每日积分上限(429 KEY_DAILY_CREDIT_LIMIT),或密钥只允许其他引擎而被拒绝。被拒绝的提问以 success: false 和对应的 error 留在 asks[] 中,其他提问照常进行。 提问逐个接受准入:先是每个引擎对每个商品的第一次提问以及每个提示词,然后才是任何第二次提问。因此,当套餐只容得下部分提问时,被接受的提问会尽量覆盖更多引擎和商品。如果商品的第一次提问一个都没被接受,就不会再发出任何提问,响应就是第一个拒绝及其状态码,例如 402 INSUFFICIENT_CREDITS。在 Free 套餐的 2 个并发任务下,US 查询会接受商品在 ChatGPT 和 AI 概览上的第一次提问;等它们结束后再次发送,即可添加其余提问。最大的 US 查询有 42 次提问,在没有其他任务排队时,可以放进 Basic 套餐的 50 个并发任务。 认证错误与其他请求相同。见错误。

失败的提问与读取

  • 失败的提问在 via[] 中为 status: "FAILED" 并带有 error,不扣费。提问全部失败的引擎为 status: "FAILED" 和 found: null,并列在 summary.failed 中。
  • 如果你的账户下没有该 id 的查询,包括任务已超出读取期限的查询,GET /v1/product-lookup/{id} 返回 404 RESOURCE_NOT_FOUND。

后续步骤

GEO 监测

按计划在各 AI 引擎上跟踪购物提示词。

Prompt Research

找出人们围绕某个品类提出的购物问题。