diff --git a/haoxian_kataichi/skills/L1-geo-html-screen-diff/SKILL.md b/haoxian_kataichi/skills/L1-geo-html-screen-diff/SKILL.md index eb25f26..bb678fd 100644 --- a/haoxian_kataichi/skills/L1-geo-html-screen-diff/SKILL.md +++ b/haoxian_kataichi/skills/L1-geo-html-screen-diff/SKILL.md @@ -1,13 +1,14 @@ --- name: l1-geo-html-screen-diff description: >- - Compare an L1 project GEO HTML report with the haoxian geo-monitor page + Compare an L1 project GEO HTML report with the haoxian/hisense geo-monitor page (level=project) by on-screen names, percentages, copy, and source-title - order, then write a numbered test report. Supports one URL pair or a JSON - batch of project_id, html_url, and url. Use when the user asks for an L1 - or 项目级 diff of HTML vs 平台, geo-monitor, 露出率, 前三率, 中正面率, 分平台, - 露出排行, AI 认知词云, 信源内容类型, 信源发布时间, 媒体类型, 媒体名称, - 关联信源, 引用信源榜, 画面值, 批量, or a project-level numerical test report. + order, then write a numbered test report. Supports Katechi and Hisense KPI + profiles, one URL pair or a JSON batch of project_id, html_url, and url. Use + when the user asks for an L1 or 项目级 diff of HTML vs 平台, geo-monitor, + 海信, 卡泰驰, 露出率, 前三率, 中正面率, 分平台, 露出排行, AI 认知词云, + 信源内容类型, 信源发布时间, 媒体类型, 媒体名称, 关联信源, 引用信源榜, + 画面值, 批量, diagnosis, or a project-level numerical test report. --- # L1 HTML 与平台画面对照 @@ -16,6 +17,39 @@ description: >- 计算、接口、排序细则见 [reference.md](reference.md)。示例只说明参数怎么传,见 [examples.md](examples.md)。示例 JSON 见 [batch.example.json](batch.example.json)。不要把示例里的地址、日期、目录和 JSON 当成默认值。 +## 企业口径 + +不同企业监测 KPI 字段与画面规则不同。先按本次 `platform_url` / 登录企业判定口径,再跑 12 项。不要把卡泰驰的字段假设套到海信上。 + +| 判定 | 卡泰驰(默认) | 海信集团 | +|---|---|---| +| 识别 | `haoxian.cemeta.cn`,产线含卡泰驰等 | `geo.hisense.com`,或产线/line 含「海信」,或认证企业「海信」 | +| 常见 `reportType` | `monitor` | `diagnosis` 或 `monitor`(以 URL 为准) | +| 第 3 / 4 项 KPI | 3 卡:露出率、前三率、正面率 | **固定 5 卡**(见下「海信 L1 KPI 五卡」);第 4 项与第 3 项同五项、分平台。`diagnosis` 无多期趋势时用各平台 `self` 最新点 | +| 第 5 项排行 | 综合榜 = 本品 `summary.avg_exposure_rate` + `core_competitors` | 默认比 **品牌级**(有「品牌级/产品级」时)。平台 competitor 只取 `kind=brand`,禁止把 `kind=product` 机型行挤进 Top 10。HTML 按画面 `_buildLeaderboardRows`(本品 + `core_competitors`,`groupByBrand` 取最大露出率)。**并列露出率名次对调不算第 5.2 失败**,表里注明并列即可 | +| 第 9 项媒体类型 | HTML 去「其他/未知」后按剩余重算占比 | HTML `media_category.value` 常为**次数**(正值和 ≫100)。占比分母用**全部正值之和(含「其他」)**,再与平台已印百分数比;「其他」仍不进入 HTML 前 10 名单 | +| 批次号 | 从 batch 接口 `l1CrawlBatchIds` 解析 | batch 列表可能为空;可按 `HISENSE-HIST-{project}-{YYYYMMDD}-D`(电视诊断)等已验证模式解析,仍以接口返回为准 | + +### 海信 L1 KPI 五卡 + +海信集团 L1 **都会有品牌露出率**。第 3、4 项按这五张卡比,不要只比卡泰驰的三项。文案约定(写法不同不算失败): + +| # | 平台画面 | HTML 画面(常见) | HTML `DATA`(综合) | 平台 snapshot | +|---|---|---|---|---| +| 1 | 品牌露出率 | 品牌露出率(或 DATA 有值;模板未印卡时仍比数值) | `brand.overall.brand_level_exposure_rate`;分平台 `platforms.*.self.brand_exposure_rate` | `brand_exposure_rate` | +| 2 | 指定露出词露出率 | **露出率** | `brand.summary.avg_exposure_rate`;分平台 `self.exposure_rate` | `exposure_rate` | +| 3 | 首位率 / 前三率 / 前五率(产线不同) | 同左,由 `meta.position_metric` 决定 | `first`→`avg_first_position_rate`;`top3`→`avg_top3_rate`;`top5`→`avg_top5_rate`;分平台对应 `first_position_rate` / `top3_rate` / `top5_rate` | 同名字段;`first` 可用 `top1_rate` | +| 4 | 中正面率 | **中正面提及率** | `brand.summary.avg_positive_mention_rate`;分平台 `self.positive_mention_rate` | `positive_rate` | +| 5 | 商品链接露出率 | 商品链接露出率 | `brand.summary.product_link`(`!= null` 才出卡;有值必比) | `product_link_rate` | + +**品牌露出率圆整(海信)**:走「海信画面百分比」规则(1 位小数相等或差 0.1)。若画面印整数,按整数四舍五入后相等也通过。 + +**海信画面百分比(含 AI 露出情况监测 KPI 等)**:平台看板显示 **1 位小数**;与 HTML 数值先各自四舍五入到 1 位小数再比——**相等,或相差 0.1 个百分点,判定一致**。不要用更严的 0.05 去卡海信。卡泰驰仍按下文通用 0.05。 + +**指定露出词露出率 = HTML「露出率」= `avg_exposure_rate`**,不要和品牌露出率对倒。品牌露出率只用 `brand_level_exposure_rate` / `brand_exposure_rate`。 + +海信细则与接口字段见 [reference.md](reference.md)「海信集团」。卡泰驰示例见 [examples.md](examples.md);海信批量示例用 `batch_海信电视0905诊断.json`,不要把其中项目号当默认值。 + ## 参数 两种入口。共享参数缺了就停下来问。不要沿用上次对话、示例或本文件里的地址、日期和目录。用户同时给了单条地址和 JSON 时,以 JSON 为准,按数组逐项做,不要只做消息里那一条。 @@ -54,12 +88,25 @@ description: >- 用户原文,按这个对照,不要改映射: +**卡泰驰(默认 3 卡)** + - 露出率:HTML「平均露出率」= 平台「指定露出词露出率」 - 前三率:HTML「平均前三率」= 平台「前三率」 - 正面提及率:HTML「平均正面提及率」= 平台「中正面率」 - HTML「各平台核心指标趋势」露出率 = 平台「指定露出词露出率 · 分平台」 - HTML「各平台核心指标趋势」前三率 = 平台「前三率 · 分平台」 - HTML「各平台核心指标趋势」正面提及率 = 平台「中正面率 · 分平台」 + +**海信(固定 5 卡,见「海信 L1 KPI 五卡」)** + +- 品牌露出率:HTML `brand_level_exposure_rate` / 分平台 `brand_exposure_rate` = 平台「品牌露出率」(1 位小数四舍五入后相等或差 0.1 即通过;整数展示另按整数圆整) +- 指定露出词露出率:HTML「露出率」`avg_exposure_rate` = 平台「指定露出词露出率」 +- 首位率/前三率/前五率:按 `meta.position_metric` = 平台同名卡 +- 中正面率:HTML「中正面提及率」= 平台「中正面率」 +- 商品链接露出率:HTML「商品链接露出率」= 平台「商品链接露出率」 + +**共用板块** + - HTML「行业露出率排行榜」= 平台「露出排行 · 各平台明细」 - HTML「AI 回答关键词」= 平台「AI 认知词云」 - HTML「AI 回答正面关键词」= 平台「AI 认知词云」下的正面词 @@ -83,12 +130,12 @@ HTML「综合」= 平台「全平台」。这是约定,不算第 2 项失败 1. 确认两个 URL 能否打开,截图进报告。 2. 七个 AI 平台选项是否相同。HTML 里面综合 = 全平台,通义 = 通义千问,元宝 = 腾讯元宝,文心 = 百度文心 -3. 各选项的露出率、前三率、正面率是否相同。 -4. 各选项上,趋势露出率 / 前三率 / 正面提及率是否等于平台分平台三项。 -5. HTML「行业露出率排行榜」= 平台「露出排行 · 各平台明细」。平台这一张表同时列出各选项,不要切换平台选项。只比各自 Top 10。三步都要做,任一步不同则该项测试失败❌。 - 1. 综合的平均露出率 = 平台全平台列的平均露出率。 - 2. HTML 综合排名品牌 Top 10 = 平台全平台排名品牌 Top 10。名次和品牌名都要相同,名称逐字相同。第 11 名及以后不比。**两边都按平均露出率从高到低取 Top 10,不要用接口 `rank` 当名次**(`rank` 可能是灌数防撞号,画面实际按露出率排)。 - 3. 这 10 个品牌在 HTML 的 DeepSeek、豆包、通义、元宝、文心、Kimi 上的平均露出率,等于平台同一张表里对应列。列对应为通义=通义千问,元宝=腾讯元宝,文心=百度文心。未露出时 HTML 为空、平台为「-」,不算不同。差超过 0.05 算不同。 +3. 各选项的 KPI 卡是否相同。**卡泰驰**:露出率、前三率、正面率。**海信**:五卡(品牌露出率、指定露出词露出率↔HTML露出率、首位/前三/前五、中正面率↔中正面提及率、商品链接露出率),见「海信 L1 KPI 五卡」。 +4. 各选项上,分平台 KPI 是否等于平台分平台对应项。卡泰驰为趋势最后一点的三项;海信为与第 3 项相同的五卡(`diagnosis` 无多期时用 `self` 最新点)。 +5. HTML「行业露出率排行榜」= 平台「露出排行 · 各平台明细」。平台这一张表同时列出各选项,不要切换平台选项。只比各自 Top 10。三步都要做,任一步不同则该项测试失败❌。海信默认品牌级,平台只比 `kind=brand`(见「企业口径」)。 + 1. 综合的平均露出率 = 平台全平台列的平均露出率(**按 Top 10 同名比**,不要只按下标对齐)。 + 2. HTML 综合排名品牌 Top 10 = 平台全平台排名品牌 Top 10。名次和品牌名都要相同,名称逐字相同。第 11 名及以后不比。**两边都按平均露出率从高到低取 Top 10,不要用接口 `rank` 当名次**(`rank` 可能是灌数防撞号,画面实际按露出率排)。**海信:露出率并列时名次对调不算本步失败**。 + 3. 这 10 个品牌在 HTML 的 DeepSeek、豆包、通义、元宝、文心、Kimi 上的平均露出率,等于平台同一张表里对应列。列对应为通义=通义千问,元宝=腾讯元宝,文心=百度文心。未露出时 HTML 为空、平台为「-」,不算不同。卡泰驰差超过 0.05 算不同;**海信按 1 位小数四舍五入后相等或差 0.1 算相同**。 6. 正面关键词、负面关键词。词云不随 AI 平台切换,七个选项同一套。下面三组文案是约定,写法不同不算失败: 1. HTML「AI 回答关键词」= 平台「AI 认知词云」 2. HTML「AI 回答正面关键词」= 平台「正面词」 @@ -96,14 +143,16 @@ HTML「综合」= 平台「全平台」。这是约定,不算第 2 项失败 正面词还要比图片素材:HTML 词云图画出来的词,和平台正面词图画出来的词,词条相同才算相同。不比词的大小、颜色和摆放位置。有负面词时比词条,不比空态文案。 7. 各选项的信源内容类型是否相同。占比优先用接口/HTML 已印的百分数字段;仅当 `value` 明显是次数时才按正值之和重算。不要把已是百分比的 `value` 再除一次(会造 0.1 点假失败)。 8. 各选项的信源发布时间是否相同。占比口径与第 7 项相同。 -9. 各选项的媒体类型:占比和展示名称,只取前 10。 +9. 各选项的媒体类型:占比和展示名称,只取前 10。海信 HTML 为次数时,分母含「其他」(见「企业口径」)。 10. 各选项的媒体名称:占比和展示名称,只取前 10。 11. 各选项的关联信源:标题、渠道、被引次数,只取前 30。不比序号。 12. 各选项的关联信源:标题内容,以及序号上展示的标题是否相同。只取前 30。 数据不同时给出平台和 HTML 的对比。每个平台都要输出:同名但百分比不同的名称、HTML 画面值、平台画面值。没有这种差异的平台写「画面上同名占比无差异」,不要省略该平台。露出率若同名百分比相同,写条数,不要把相同行展开成差异表。第 5 项只比 Top 10,名次或品牌名不同要展开,不能只写条数。第 11 名及以后不报。 -差超过 0.05 个点才算不同。0.05 是百分点,不是相对误差。两边按 1 位小数比,最小能看出来的差别是 0.1。13.80% 和 13.8% 差是 0,判相同。 +差超过 0.05 个点才算不同(**卡泰驰**)。0.05 是百分点,不是相对误差。两边按 1 位小数比,最小能看出来的差别是 0.1。13.80% 和 13.8% 差是 0,判相同。 + +**海信**:平台看板为 1 位小数时,与 HTML 四舍五入到 1 位后**相等或相差 0.1** 判定一致(例如 12.3 与 12.4 通过;12.3 与 12.5 不通过)。详见「海信画面百分比」。 ## 只在一边展示 diff --git a/haoxian_kataichi/skills/L1-geo-html-screen-diff/batch_海信电视0905诊断.json b/haoxian_kataichi/skills/L1-geo-html-screen-diff/batch_海信电视0905诊断.json new file mode 100644 index 0000000..267b6eb --- /dev/null +++ b/haoxian_kataichi/skills/L1-geo-html-screen-diff/batch_海信电视0905诊断.json @@ -0,0 +1,107 @@ +[ + { + "project_id": 1596, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/c9c38431-793c-4c8b-b115-0895d13211f4.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1596" + }, + { + "project_id": 1597, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/349f74ed-98b4-4f85-b2d1-e66ccf703bf6.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1597" + }, + { + "project_id": 1598, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/d03310bb-c933-48d5-8ea4-5c6ab389487f.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1598" + }, + { + "project_id": 1599, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/f63aa510-1c49-4886-8474-8d2920fb9d2e.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1599" + }, + { + "project_id": 1600, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/c9e9c38c-50b7-49cf-9a39-452b47d2c9ca.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1600" + }, + { + "project_id": 1601, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/13f4399b-cdeb-42cd-b53e-782b53246775.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1601" + }, + { + "project_id": 1602, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/86634efc-beec-4ed7-b1e0-a051ad5382fa.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1602" + }, + { + "project_id": 1603, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/5e2ab3af-43d0-4e47-a8c4-454717421511.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1603" + }, + { + "project_id": 1604, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/38b0f107-2ab6-4270-8573-c0d879bea18b.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1604" + }, + { + "project_id": 1605, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/a63f275b-622b-4ab8-8949-66973e7fe446.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1605" + }, + { + "project_id": 1606, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/76716762-bcfe-4c74-9612-9fe3a7e9a82e.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1606" + }, + { + "project_id": 1607, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/865c5144-db85-482d-89bb-fc093c6893f4.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1607" + }, + { + "project_id": 1608, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/57f31d21-5bd1-4912-b02a-0643cc291c18.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1608" + }, + { + "project_id": 1609, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/1df85901-eae1-4fd7-9185-e92e604b07fc.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1609" + }, + { + "project_id": 1610, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/4bf41649-7983-407e-98fa-95c40cc1be41.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1610" + }, + { + "project_id": 1611, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/9a8b86a9-4308-4b7a-b799-26199551025d.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1611" + }, + { + "project_id": 1612, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/047b0bad-c0ee-43b7-b7ea-9628ac0afe66.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1612" + }, + { + "project_id": 1613, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/3b4f38cf-f5ad-4a29-8c12-fdd2151e4a89.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1613" + }, + { + "project_id": 1614, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/a9288dc5-219f-4d61-907c-d0db6714c26f.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1614" + }, + { + "project_id": 1615, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/f0a10168-159c-46ae-8428-8664e88d85b7.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1615" + }, + { + "project_id": 1616, + "html_url": "https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/0c5178e5-1522-47b4-9d8e-f436345c9c0d.html", + "url": "https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1616" + } +] diff --git a/haoxian_kataichi/skills/L1-geo-html-screen-diff/examples.md b/haoxian_kataichi/skills/L1-geo-html-screen-diff/examples.md index 4618f77..fa88cfd 100644 --- a/haoxian_kataichi/skills/L1-geo-html-screen-diff/examples.md +++ b/haoxian_kataichi/skills/L1-geo-html-screen-diff/examples.md @@ -26,3 +26,32 @@ report_dir: /test/灌数/卡泰驰/项目级/monitor-0920-test ``` 按数组顺序逐项做完 12 项。每项单独编号,例如 `测试报告-1-1169.md`、`测试报告-1-1170.md`。同一项目已有 `测试报告-N-{project}.md` 时,只给该项编号加 1。消息里如果还写了一条 url地址和 html地址,仍以 JSON 为准,不要只做那一条。 + +## 海信集团(诊断 / geo.hisense.com) + +海信与卡泰驰 KPI 口径不同,见 [SKILL.md](SKILL.md)「企业口径」与 [reference.md](reference.md)「海信集团」。下面只示范怎么传参。 + +### 单条(电视诊断) + +```text +platform_url: https://geo.hisense.com/geo-monitor?batchDate=2026-09-05&reportType=diagnosis&level=project&line=%E6%B5%B7%E4%BF%A1::%E7%94%B5%E8%A7%86&project=1609 +html_url: https://cemeta-resource-1313090634.cos.ap-beijing.myqcloud.com/workflow/1df85901-eae1-4fd7-9185-e92e604b07fc.html +platform_period: 9月 W36 +html_monitor_date: 2026-09-05 +report_dir: /test/haoxian-script/haoxian_kataichi/skills/L1-geo-html-screen-diff/海信电视/diagnosis-0905-test +``` + +执行时:企业=海信,`reportType=diagnosis`,第 3/4 项按 **五卡**(品牌露出率 + 指定露出词露出率↔HTML露出率 + 首位/前三/前五 + 中正面 + 商品链接);排行默认品牌级且平台 competitor 只取 `kind=brand`;媒体类型按次数分母含「其他」换算。 + +### 批量 + +地址对在 [batch_海信电视0905诊断.json](batch_海信电视0905诊断.json)。 + +```text +batch_json: /test/haoxian-script/haoxian_kataichi/skills/L1-geo-html-screen-diff/batch_海信电视0905诊断.json +platform_period: 9月 W36 +html_monitor_date: 2026-09-05 +report_dir: /test/haoxian-script/haoxian_kataichi/skills/L1-geo-html-screen-diff/海信电视/diagnosis-0905-test +``` + +不要把该 JSON 里的 `project_id` / 日期当成其他批次的默认值。 diff --git a/haoxian_kataichi/skills/L1-geo-html-screen-diff/reference.md b/haoxian_kataichi/skills/L1-geo-html-screen-diff/reference.md index cb6fd5d..39bf8af 100644 --- a/haoxian_kataichi/skills/L1-geo-html-screen-diff/reference.md +++ b/haoxian_kataichi/skills/L1-geo-html-screen-diff/reference.md @@ -6,23 +6,77 @@ HTML 从 `var DATA` 读。L1 报告用 `brand`(`mode=simple` 时没有品牌/产品切换)。综合用 `brand.summary`、`brand.tmc_aggregate`、`brand.source_top30`、`brand.core_competitors`、`brand.wordcloud`。单个 AI 平台用 `brand.platforms[key]`。 -平台是 L1,不是 L3。`project` 从 `platform_url` 取。 +平台是 L1,不是 L3。`project` 从 `platform_url` 取。`reportType` 取自 URL(`monitor` / `diagnosis`),请求里原样传递,不要写死成 `monitor`。 -1. 用当次登录会话打 `resource-api.cemeta.cn`。 -2. `GET /api/geo_label/project/batch?companyId={companyId}&reportType=monitor`,用 URL 里的 `batchDate` 找到对应项,再按 `project` 取 `l1CrawlBatchIds[].batchId`。 -3. `GET /api/geo-monitor/metrics/l1?table={table}&batchIds={batchId}&projectId={project}&reportType=monitor`。`table` 用 `snapshot`、`competitor`、`tmc`。信源再加 `&platform={平台值}`,`table=source`。 +1. 用当次登录会话打 `resource-api.cemeta.cn`(海信门户 `geo.hisense.com` 的数据也可走同一 resource-api;登录账号用认证注册表「海信」)。 +2. `GET /api/geo_label/project/batch?companyId={companyId}&reportType={reportType}`,用 URL 里的 `batchDate` 找到对应项,再按 `project` 取 `l1CrawlBatchIds[].batchId`。 +3. `GET /api/geo-monitor/metrics/l1?table={table}&batchIds={batchId}&projectId={project}&reportType={reportType}`。`table` 用 `snapshot`、`competitor`、`tmc`。信源再加 `&platform={平台值}`,`table=source`。 4. 词云:`GET /api/geo-monitor/projects/{project}/wordcloud?batchId={batchId}&sentiment=all`。这个接口不按 AI 平台拆。HTML 词云也是写死综合,七个选项同一套词。 登录账号从项目认证注册表取,跟本次企业走。不要把手机号、密码、token 写进报告。 +## 海信集团 + +与卡泰驰的差异只写在这里;执行海信批次时必须按本节,不要沿用卡泰驰假设。 + +### 识别与批次 + +- URL 主机 `geo.hisense.com`,或 `line` 含「海信」,或 `companyId=13`。 +- `reportType=diagnosis` 时,`/geo_label/project/batch` 可能返回空列表。此时用已验证的 crawlBatchId 模式补齐,例如电视诊断:`HISENSE-HIST-{projectId}-{YYYYMMDD}-D`(`YYYYMMDD` 来自 `batchDate`)。用 `table=snapshot` 拉一行校验;`rows` 为空则停下来问,不要编造别的前缀。 +- 商显等产线可能是 `HISENSE-SX-HIST-...`;以实际 `crawlBatchId` 为准。 + +### KPI 字段(第 3 / 4 项) + +海信 L1 **固定五卡**,都会有品牌露出率。 + +| 平台卡 | HTML 画面名 | HTML 综合字段 | HTML 分平台 | snapshot | +|---|---|---|---|---| +| 品牌露出率 | 品牌露出率 | `overall.brand_level_exposure_rate` | `self.brand_exposure_rate` | `brand_exposure_rate` | +| 指定露出词露出率 | **露出率** | `summary.avg_exposure_rate` | `self.exposure_rate` | `exposure_rate` | +| 首位率 / 前三率 / 前五率 | 同左 | 由 `meta.position_metric`:`first`→`avg_first_position_rate`,`top3`→`avg_top3_rate`,`top5`→`avg_top5_rate` | `first_position_rate` / `top3_rate` / `top5_rate` | `first` 优先 `first_position_rate`,否则 `top1_rate`;`top3`/`top5` 用同名 rate;**不要**在比首位率时误用 `position_rate`(常为产线当前展示的前三/前五) | +| 中正面率 | **中正面提及率** | `summary.avg_positive_mention_rate` | `self.positive_mention_rate` | `positive_rate` | +| 商品链接露出率 | 商品链接露出率 | `summary.product_link` | 综合卡有值则比;分平台以 snapshot 该平台 `product_link_rate` 为准(HTML self 无单独卡时只报综合) | `product_link_rate` | + +**海信画面百分比(AI 露出情况监测等)**:平台看板显示 1 位小数。判定: + +1. HTML 与平台值都先四舍五入到 **1 位小数**(`round(x + 1e-9, 1)`)。 +2. 圆整后**相等**,或**相差 0.1** 个百分点 → 判定一致(通过)。 +3. 相差 ≥ 0.2 → 不同。 +4. **品牌露出率**额外:若平台印整数,两边按整数四舍五入后相等也通过。 +5. 本条适用于海信第 3/4 项五卡、第 5 项露出率、第 7–10 项占比等所有「平台 1 位小数」百分比对照;**不要**对海信用卡泰驰的 0.05 阈值。 + +**禁止混比**:不要把 `brand_level_exposure_rate`(品牌露出率)当成「露出率 / 指定露出词露出率」。 +**指定露出词露出率 = HTML「露出率」= `avg_exposure_rate`**(已确认)。 + +`diagnosis` 第 4 项:无多期趋势时,各平台 `self` 最新点对 snapshot 分平台;综合覆盖六个平台的上述五项(商品链接按上表)。 + +`cal_data_json` 若提供,结构与 HTML `brand`/`meta` 同源,可作离线核对,但必须与本次 `html_url` 同题;题目不一致时以 HTML `var DATA` 为准。 + +### 第 5 项排行(品牌级默认) + +- HTML 常有「品牌级 / 产品级」。默认比品牌级。产品级用 `core_product_competitors` / `product_ranking`,只有用户明确要求产品级时才切。 +- 平台 `competitor` 行带 `kind`:`brand` | `product`。品牌级对照**只保留 `kind=brand`**。混入 `product` 会把「海信E7S Pro」「创维 75A3F」等机型挤进 Top 10,造成假失败。 +- HTML 综合品牌榜与画面一致:本品名 + `summary.avg_exposure_rate`,再合并 `core_competitors`(跳过露出率为 0 的集团兄弟占位),同名取最大露出率后降序,取 Top 10。 +- 第 5.1:按 **Top 10 交集的同名露出率**比,不要只按名次下标硬对齐(并列时下标会对错行)。 +- 第 5.2:名次与品牌名通常要一致;**露出率在 0.05 内并列时,名次对调不算失败**,报告注明「并列换位」。 +- 第 5.3:分平台用 HTML `industry_ranking` 对平台同品牌 `kind=brand` 行。 + +### 媒体类型(第 9 项) + +- 海信 HTML `tmc_aggregate.media_category` / 各平台 `citation.media_category` 的 `value` 经常是次数(正值和远大于 100),平台接口 `value` 已是百分数。 +- 画面占比:`value / 本组全部正值之和 × 100`,**分母含「其他」「未知」**,再去掉「其他」「未知」后取前 10 与平台比。若先剔除再重算,会造出 0.1~1 点假差异(如 32.3% vs 32.1%)。 + ## 画面百分比 -保留 1 位小数。差超过 0.05 个点才算不同。 +保留 1 位小数。 + +- **卡泰驰**:差超过 0.05 个点才算不同。 +- **海信**:平台看板 1 位小数 vs HTML 四舍五入到 1 位后,**相等或相差 0.1** 判定一致(见上文「海信画面百分比」)。 - 露出率、前三率、正面率、排行榜露出率:页面直接印的字段。HTML `fmt` 对非 0、非 100 印两位小数,平台印一位。比数值,不比小数位数。 -- 分平台:HTML 趋势序列最后一个监测日的点,对平台该平台 snapshot 的 `exposure_rate`、`top3_rate`、`positive_rate`。综合要覆盖六个平台的这三个点。 +- 分平台:**卡泰驰** HTML 趋势序列最后一个监测日的点,对平台该平台 snapshot 的 `exposure_rate`、`top3_rate`、`positive_rate`。综合要覆盖六个平台的这三个点。**海信**见「KPI 字段(第 3 / 4 项)」五卡;`diagnosis` 用 `self` 最新点。 - 信源内容类型、信源发布时间:图例最多 8 条,按值从高到低;发布时间去掉名为「无时间」的项。**先看 `value` 是不是已经是百分比**:本组正值之和落在约 99~101.5(或每条都在 0~100 且之和≈100)时,**直接用 `value` 当画面占比**,不要再做 `value / 正值之和 × 100`。只有 `value` 明显是次数/频次(之和远大于 100,或单条远大于 100)时,才用 `value / 正值之和 × 100`。库里已是百分数时再除一次会造出 0.1 点假差异(如 52.1% vs 52%),那种差异不算失败。 -- 媒体类型:HTML 方块去掉「其他」「未知」,再按剩余 `value` 之和重算。平台条形图按值从高到低取前 10;这 10 条 `value` 之和 ≤ 101.5 时直接印 `value`,否则 `value / 该和 × 100`。 +- 媒体类型:HTML 方块去掉「其他」「未知」,再按剩余 `value` 之和重算(**卡泰驰**)。平台条形图按值从高到低取前 10;这 10 条 `value` 之和 ≤ 101.5 时直接印 `value`,否则 `value / 该和 × 100`。**海信**见上文「媒体类型(第 9 项)」:次数分母含「其他」。 - 媒体名称:HTML 没有占比字段,为 `value / 本组 value 之和 × 100`,去掉「其他」「未知」后取前 10。平台与媒体类型同一条形图规则。 ## 排行榜 @@ -31,14 +85,18 @@ HTML 从 `var DATA` 读。L1 报告用 `brand`(`mode=simple` 时没有品牌/ 平台全平台列是平均露出率。其余列是 DeepSeek、豆包、通义千问、腾讯元宝、百度文心、Kimi。某品牌在某选项没有露出时,HTML 为空,平台格子是「-」,这不算不同。 -HTML 综合榜 = 本品(`summary.avg_exposure_rate` + 本品名)与 `core_competitors` **合并后**按平均露出率降序,再取 Top 10。分平台用 `brand.platforms[key].industry_ranking`。画面名称截断后对不上(「车」对「车300」)算名称不同。 +**卡泰驰**:HTML 综合榜 = 本品(`summary.avg_exposure_rate` + 本品名)与 `core_competitors` **合并后**按平均露出率降序,再取 Top 10。分平台用 `brand.platforms[key].industry_ranking`。 -**排序口径(防假失败)**:两边 Top 10 顺序都按**平均露出率从高到低**对齐画面,再取前 10。不要用接口 `rank` 字段当画面名次——`rank` 可能是灌数防撞号,和露出排行画面不一致。露出率相同则按两边各自画面已印出的先后;若按露出率排完后名次与品牌名一致,第 5.2 步判相同,不要因 `rank` 对调判失败。 +**海信**:见上文「海信集团 · 第 5 项」。默认品牌级;平台只取 `kind=brand`;第 5.1 按同名比露出率;第 5.2 允许并列露出率名次对调。 + +画面名称截断后对不上(「车」对「车300」)算名称不同。第 5 项不适用「名称写法不同但百分比相同」那条例外,品牌名必须逐字相同(并列换位除外)。 + +**排序口径(防假失败)**:两边 Top 10 顺序都按**平均露出率从高到低**对齐画面,再取前 10。不要用接口 `rank` 字段当画面名次——`rank` 可能是灌数防撞号,和露出排行画面不一致。露出率相同则按两边各自画面已印出的先后;海信在并列时名次对调不判第 5.2 失败。 三步都要做,任一步不同则第 5 项测试失败❌: -1. 综合平均露出率对平台全平台列。差超过 0.05 算不同。 -2. 综合 Top 10 的名次和品牌名,对平台全平台 Top 10。名称逐字相同。两边名单都先按露出率降序再比。 +1. 综合平均露出率对平台全平台列(同名比)。海信按 1 位小数四舍五入后相等或差 0.1;卡泰驰差超过 0.05 算不同。 +2. 综合 Top 10 的名次和品牌名,对平台全平台 Top 10。名称逐字相同;海信并列换位除外。 3. 这 10 个品牌在 DeepSeek、豆包、通义、元宝、文心、Kimi 上的露出率,对平台对应列。通义对通义千问,元宝对腾讯元宝,文心对百度文心。 ## 词云