← 全部技能
多平台比价15 积分/次

谷歌购物比价

yasina-google-shopping

一次看到同款商品在多个商家的报价,判断全网最低价。

这个技能能做什么

在谷歌购物的聚合结果里做跨零售商比价 —— 定价前要知道全网价格分布,单看亚马逊会漏掉品牌官网与商超渠道,而那些往往才是价格地板。每条结果都带零售商名称(亚马逊、沃尔玛、Target、Best Buy、品牌官网等),这是本技能最核心的字段:价格必须和渠道一起看。另返回现价与划线价(都是数值可直接排序)、店铺评分与店铺评论数(低评分小店的低价没有参考意义)、商品评分与评论数、配送政策文案(影响真实到手成本)、促销角标、商品链接。支持指定国家与界面语言、谷歌域名、价格区间过滤、结果偏移翻页、设备类型,一次最多 100 条。用具体型号搜比用品类词搜有用得多 —— 品类词会返回上百个不同产品,而比价要比的是同一个东西。当用户提到比价、全网比价、跨平台比价、哪里买最便宜、市场价多少、同款多少钱、全网最低价、渠道价格对比、品牌官网价、定价多少合适、有没有低价冲击、串货、谷歌购物、google shopping、price comparison, compare prices, cheapest price, market price, multi-retailer, retailer price 时触发此技能。即使用户未明确提及“比价”,只要其需求涉及一个商品在全网的价格分布、自己该定多少钱、有没有渠道在低价冲击自己的价格,也应触发。不适用于:单一平台的完整搜索结果与排名(用 yasina-amazon-search、yasina-walmart-search、yasina-ebay-search)、亚马逊单品的历史价格曲线(用 yasina-keepa-asin-history)、亚马逊当下正在降价的清单(用 yasina-keepa-deal-radar)。

怎么用

复制下面这句话,发给你的 AI 助手(WorkBuddy、Claude Code、Codex 都可以):

下载 https://plusskill.oss-cn-guangzhou.aliyuncs.com/skills/yasina-google-shopping.zip 并安装这个 skill,然后阅读这个 skill 告诉我如何使用

助手会自动下载安装并读懂用法,然后告诉你能问它什么。 首次使用它会引导你用手机号注册,赠送 50 积分。

入参

本技能覆盖 3 个端点,参数各不相同,按各自的表来传。

谷歌购物比价

POST /v2/google/shopping
参数类型必填说明默认
qstring否

搜索关键词。有 shoprs 时可省

—
shoprsstring否

筛选 token(由谷歌购物筛选项端点产出),多个用 || 连接。翻页与筛选都靠它 —— 本接口没有 num/start

—
glstring否

两位国家码,如 us / de

—
hlstring否

语言码,如 en / zh-CN

—
google_domainstring否

谷歌域名

google.com
min_pricenumber否

最低价

—
max_pricenumber否

最高价

—
sort_bystring否

1 = 价格升,2 = 价格降

—
free_shippingbool否

只看包邮

—
on_salebool否

只看打折

—
small_businessbool否

只看小商家

—
locationstring否

城市级地名。与 uule 互斥

—
uulestring否

谷歌编码位置。与 location 互斥

—
devicestring否

desktop / tablet / mobile

desktop

同款跨商家报价(含到手价)

--storesPOST /v2/google/immersive-product
参数类型必填说明默认
page_tokenstring是

页面 token,取谷歌购物 shopping_results[].immersive_product_page_token。⚠️ 这个值实测 1679 字符,必须原样整串传,截断即失效 —— 截断后报的是 UPSTREAM_ERROR:上游数据源查询失败,看起来像上游挂了,其实是参数被自己截短了。实跑踩过:为了打印好看写了 r.get('immersive_product_page_token','')[:40],再把这 40 个字符当参数传回去,连试 6 次全失败。打印可以截断,传参不能 —— 用 json.load 从落盘文件里取完整值,不要从概览或自己的打印结果里复制

—
more_storesbool否

带回更多商家(实测 3 家 → 13 家,且 13 家全部带到手价)。⚠️ 两个坑:①它会改变同一商家的运费 —— 实测 SwagBranders 同一条 link、同一时刻,默认调用 +$25.71(到手 $42.24),加了本参数 +$31.66(到手 $48.19),两种调用各自复测都稳定,不是时间波动。要落价格证据必须记下用的是哪种调用,否则同一份证据自相矛盾;②不是每个品都能扩 —— 实测 Crocs Classic Clog 加了也还是 3 家、Instant Pot / Hydro Flask 只有 1 家

false
next_page_tokenstring否

商家列表翻页 token

—

可用筛选项(拿 shoprs 回填主命令)

--filtersPOST /v2/google/shopping-filters
参数类型必填说明默认
qstring是

搜索关键词

—
glstring否

两位国家码

us
hlstring否

语言码

en
google_domainstring否

谷歌域名

google.com
shoprsstring否

已有筛选 token,用于层层下钻

—

返回值

谷歌购物比价

POST /v2/google/shopping
字段怎么用
shopping_results[]

商品结果原样(title / link / source / price / extracted_price / rating / reviews / delivery / immersive_product_page_token / thumbnail 等)

shopping_results[].delivery

⚠️ 这是文案不是金额("Free delivery" / "Free delivery on $250+"),而且实测 40 行里只有 12~21 行有值。本端点算不出到手价 —— 要到手价必须拿 immersive_product_page_token 去调 google/immersive-product,用那里的 stores[].total

shopping_results[].source

渠道名。⚠️ 不要用它盯某个指定渠道 —— 实测 site:walmart.com 上游直接拒(Google hasn't returned any results),关键词里带渠道名(Hydro Flask 32 oz Walmart)也只回 8 行、其中 Walmart 仅 2 行。盯渠道要用那个渠道自己的端点(如 walmart/search)

search_information

结果总数

filters

筛选项,其中 shoprs 可回填

categorized_shopping_results[]

谷歌另起的主题分组板块,每项是 {title, shopping_results[]},行结构与顶层同款。

⚠️ 不要 append 到顶层 `shopping_results` 里做统计,两处会串:① 商品与顶层重叠(实测 stanley tumbler 两组 5/6 行,各有 1 / 3 行的 product_id 已在顶层 40 行里)—— 直接合并是重复计数;② position 每组都从 1 重新开始,合并后同一个 position 有好几行,按它排名会乱。

要用就单独分析(它代表谷歌认定的关联主题),或按 product_id 去重后丢掉 position

同款跨商家报价(含到手价)

--storesPOST /v2/google/immersive-product
字段怎么用
product_results

商品原样:title / brand / price_range / rating / stores(各商家报价) / about_the_product / user_reviews / stores_next_page_token

product_results.stores[]

到手价就在这里,每家给 price / shipping / total 三件套(对应 extracted_price / shipping_extracted / extracted_total)+ name / link / title / details_and_offers。必须用 `total` 排序,不要用 `price` —— 实测 SwagBranders 商品价 $16.53 是全场最低,到手 $42.24 却是最贵,差 2.1 倍,按商品价排会把它误判成「竞品在低价倾销」。⚠️ shipping 不是每家都有(实测 13 家里 6 家有金额),没有不代表包邮

product_results.stores[] 的去重

报「有几家在卖」必须按 `link` 去重,不能按 `name`,更不能直接数行数。实测同一次返回的 13 行:按 name 去重剩 9、按 link 去重剩 11。差异要分清:SwagBranders 那 3 行是同一条 link 完全重复(价格运费全同)→ 真重复要去掉;而 eBay - pickwisco 2 行是不同 item ID、ScoutTech 2 行是不同 variant ID → 是真实的不同报价,不该合并

可用筛选项(拿 shoprs 回填主命令)

--filtersPOST /v2/google/shopping-filters
字段怎么用
filters[]

筛选项原样:type / input_type(radio / checkbox / price_range 等 7 种,决定单选还是多选,不要归一化)/ options(其中的 shoprs 回填给购物搜索)

search_information.filters_results_state

结果状态

积分收费规则

15 积分/次,一次看到多个商家的报价。

调用失败(参数错误、数据源不可用)不扣积分。

对应的 API 端点

  • POST/v2/google/shopping
  • POST/v2/google/immersive-product
  • POST/v2/google/shopping-filters

同类技能