用户购物时,插件在商家页右侧贴边展示一个红底 Coupert Logo 小球。围绕它共有 5 种独立的悬浮 UI 元素(全部用 Shadow DOM 挂到 <html> 根节点,避免被商家页 overflow 截断),以及 4 类视觉形态。
| 元素 | 长什么样 | 位置 | 持续时间 | 作用 |
|---|---|---|---|---|
| 小球本体 | 红底 Coupert Logo 圆球 | 右侧贴边 | 全程驻留 | 常驻入口,可拖拽 Y 轴吸附 |
| 角标 | 小球左上角彩色 Icon(券/CB/礼品卡) | 小球左上角 | 触发后一直保留 | 像红点持续提醒"这里有东西" |
| 气泡卡片 | 小球左侧浮出的胶囊形提示卡 | 小球左侧 | 2~5 秒自动收回 | 主动抓注意力,弹一会儿就收 |
| 横幅 Banner | 比气泡更宽的卡片 | 替换小球位置 | 3 秒自动收回 | 仅"比价分析"场景,视觉最强 |
| Shadow 名 | 组件 | 场景 | 关系 |
|---|---|---|---|
| floating_win | 主 XF 球 | 商家页通用,承载 CB/AT/CC/礼品卡/提现 | 核心,本报告主角 |
| doordash_floating_win | 数字商品比价悬浮 | PCP 数字卡规则命中 | 独立位置存储 |
| fab_bar | 结账页聚合栏 | AT 结果后聚合按钮 | 与主球互斥 |
| price_parity_popover | 价格比较弹窗 | 商品比价 | 优先级高于主球,它出主球不出 |
| travel_vio_floating_win | 酒店/Vio 比价气泡 | OTA 页面 | 独立位置存储 |
代码来源:ext-global / src/extension/content/shadow/FloatingWin.js · constant/shadow/names.js · 飞书 PRD「悬浮球气泡-产品视角说明」
围绕主小球,目前共设计了 7 种气泡,按业务优先级从高到低排列。当用户同时满足多个条件时,一次访问只显示优先级最高的那一个,避免视觉打架。
来源:飞书 PRD「悬浮球气泡-产品视角说明」三、七种气泡详解
用户进入商家页后,先等 3 秒(避免数据未就绪误判),等业务数据全部到位,再按优先级依次判断。代码层在 core/FloatingWin.js::isEnabled() 有 12 步短路判定控制小球本体是否出现。
| 步骤 | 判定条件 | 控制项 |
|---|---|---|
| ① | 用户级悬浮球开关 | notify · ext_xf_ball |
| ② | 提现独立开关满足 → 直接出(短路) | lever · wd_floatwin |
| ③ | 无券 + 不支持 CB → 不出 | — |
| ④ | 商家 icon 总开关 | lever · icon |
| ⑤ | 商家悬浮球总开关 | lever · xf |
| ⑥ | SEVS 规则双检(AT+CB),关→打 NOTSHOW 埋点 | 后端下发 |
| ⑦ | AT/CB 规则 4 种组合判断 | workflows |
| ⑧ | 联盟出站覆盖中 → 不出 | — |
| ⑨ | 比价弹窗已出 → 不出(防竞速) | — |
| ⑩ | FAB_BAR 已存在 → 不出 | — |
| ⑪ | 非规则页 + 开关关 → 不出 | lever · xf_not_rule_page(默认 Off) |
| ⑫ | 非规则页 URL 不在正则白名单 → 不出 | 后端 workflows regexp |
来源:飞书 PRD 七、互斥与优先级 + ext-global core/FloatingWin.js:124-357
悬浮球的行为由「用户级开关 + 商家级 lever + 全局后台参数 + 本地状态」四层配置控制。以下大多可通过商家配置或 AB 后台调整,无需发版。
| key | 默认 | 含义 |
|---|---|---|
| xf | On | 悬浮球总开关 |
| xf_not_rule_page | Off | 非规则页是否出球 |
| cb_item_xf | On | 商品页 CB 专属悬浮 |
| wd_floatwin | Off | 提现走悬浮球入口 |
| icon | On | 角标 / icon 总开关 |
落点:MySQL store_service_switch_new → Redis cp:core:store:id:{id}:string
| 配置 | 层级 | 调控目标 |
|---|---|---|
| ext_xf_ball | 用户 | 用户级悬浮球开关(snooze 写此) |
| black_url_list | 用户 | 命中则整个插件不启动 |
| bannerComparePromptShowCount | 全局 | PCP 横幅 60 天次数上限 |
| 比价横幅总开关 | 全局 | 是否走 5 阶段动画 |
| CJ 比价豁免名单 | 商家 | 特殊联盟商家不展示 PCP |
| 支付页强提醒开关 | 商家 | 重点商家加强转化 |
用户级落点:MySQL user_notification_setting.info(JSON) → Redis cp:cb:user:notify_setting:config:{uid}:
悬浮球(XF FloatWin)整体曝光持平、点击微升、CTR 稳定,呈强工作日周期性。6 月初点击有一次明显台阶式跳升。
| 指标 | 当前 30 天 | 前 30 天 | 环比 |
|---|---|---|---|
| 曝光 PV | 23,960,197 | 24,165,993 | -0.9% |
| 曝光 UV(guid 去重) | 2,717,785 | 2,729,062 | -0.4% |
| 点击 PV | 821,743 | 796,197 | +3.2% |
| 点击 UV | 363,359 | 358,745 | +1.3% |
| 整体 CTR(UV 口径) | 13.4% | 13.2% | +0.2pp |
悬浮球承载多个服务入口,转化效率差异巨大:AT 气泡点击意愿最强,返利气泡最弱。(口径:rpt_cp_store_service_performance_daily_d,7 天汇总)
| 服务 | 曝光 UV | 点击 UV | CTR(UV) | CTR(次数) |
|---|---|---|---|---|
| AT_XF 自动用券 | 56,865 | 37,679 | 66.3% | 54.5% |
| CC_XF 优惠券 | 116,851 | 51,012 | 43.7% | 17.0% |
| CB_XF 返利 | 42,013 | 6,524 | 15.5% | 10.3% |
⚠️ 口径说明:WD(礼品卡)/ 新用户欢迎 / 比价反馈 / 支付页返利补提醒 4 种气泡未在该 rpt 表单独落表;PCP 通过悬浮球的曝光当前为 0(pcp_xf_impre_user_cnt=0),入口尚未开启或无数据落表。
下表为最近 7 天(06-04~06-10)的真实埋点抽样——"某 guid 在某商家页曝光了悬浮球 N 次、点击 M 次"。来源 dws_log_domain_guid_extension_impress/click_kpis_d,guid 已截断为 16 位展示。
| guid(截断) | 商家页 domain | 曝光次数 | 点击次数 | 日期 | 典型特征 |
|---|---|---|---|---|---|
| 19f43c5b46e55529 | shopee.vn | 185 | 0 | 06-06 | 极重度曝光 0 点击 |
| 836a7c918fcf6e67 | sellpy.de | 159 | 0 | 06-06 | 重度曝光无点击 |
| d741790baef757bb | mediaworld.it | 157 | 0 | 06-05 | IT 商家重度 |
| 222d5893cb0949c5 | shopee.tw | 150 | 0 | 06-05 | Shopee TW 重度 |
| e044dc73f7e07c24 | legami.com | 143 | 0 | 06-08 | 重度曝光无点击 |
| 63310899487cbf9e | woolworths.com.au | 132 | 0 | 06-04 | AU 商家 |
| cfcb64a7a369e914 | street-one.de | 130 | 0 | 06-04 | DE 商家 |
| 207696b2cb5fa38a | shopee.com.br | 128 | 0 | 06-04 | BR Shopee |
| e94fbbe536cdf3e4 | privatesportshop.fr | 126 | 6 | 06-09 | ✅ 有点击的重度用户 |
| 6efbd7235bce7860 | footlocker.com | 125 | 1 | 06-07 | ✅ 有点击重度用户 |
| 71053c27a64db796 | shopee.tw | 124 | 0 | 06-05 | — |
| 8b12d8626eee84ff | lego.com | 123 | 0 | 06-08 | LEGO 高曝光无点击 |
| 4f051fa92170bcf5 | privatesportshop.fr | 122 | 0 | 06-04 | 同商家不同用户无点击 |
| 0a3770a777ca2f58 | cvs.com | 120 | 0 | 06-08 | 药房 CB 商家 |
| e0a07d2688991c25 | ocado.com | 117 | 0 | 06-06 | UK 商家 |
| 60b9ceb97857cf53 | craghoppers.com | 117 | 8 | 06-06 | ✅ 有点击高频用户(8 次) |
| df320b1b4d7ee03d | fashionnova.com | 114 | 0 | 06-10 | 快时尚 |
| 7c2beba211ca4a3a | carters.com | 113 | 0 | 06-09 | 童装 |
| 37093bd569a6b3ce | sellpy.de | 112 | 0 | 06-05 | sellpy 另一用户 |
| ab3edba62cd533fb | gymboree.com | 111 | 0 | 06-10 | — |
| 49820c5f35151c0b | cvs.com | 110 | 0 | 06-09 | cvs 另一用户 |
| 18c6f23f36374580 | clearly.ca | 109 | 0 | 06-07 | CA 商家 |
| b70901b9f8a5eea9 | shein.com | 100 | 0 | 06-08 | 重度 Shein 用户 |
| eb66c66a2fc006f9 | 24bottles.com | — | 3 | 06-10 | ✅ 点击样本 |
| a73dcebd9aefebbd | 123roulement.com | — | 3 | 06-10 | ✅ 点击样本 |
注:impress_cnt 为该 guid×domain 当天累计曝光次数(每天一条记录),非跨天汇总。
悬浮球的关闭埋点落在 dwd_trd_log_click_other_log_snooze_di(事件级)和 rpt_coupert_guid_snooze_sp_out_kpis_d(日聚合),两表数字吻合。结论:关闭率极低。
| 关闭类型 (label) | 关闭 UV | 含义 |
|---|---|---|
| floating_win | 350 | 直接点 X 关掉悬浮球 |
| snooze_all_service_for_2hrs | 2 | 关闭全部服务 2h |
| snooze_this_service_for_2hrs | 1 | 关闭该商家服务 2h |
用户更倾向"针对当前商家临时关 2h"(79K)而非永久/全局关闭,说明并非反感悬浮球本身,只是临时不需要。
| 日期 | 06-04 | 06-05 | 06-06 | 06-07 | 06-08 | 06-09 | 06-10 | 日均 |
|---|---|---|---|---|---|---|---|---|
| 关闭 UV | 48 | 55 | 56 | 51 | 51 | 46 | 45 | ~50 |
PRD 规定气泡每商家 2h 弹 1 次。从 impress_cnt 分布(每用户每商家每天曝光次数)侧面验证:86% 的用户×商家组合每天仅曝光 1 次。
极端值最高 185 次(shopee.vn),疑似频繁刷新/tab 切换触发多个频控窗口,或测试账号。