120 lines
11 KiB
Markdown
Raw Normal View History

2026-09-20 03:47:41 +08:00
# L1 画面值与接口
本文件只在执行 `l1-geo-html-screen-diff` 时读。不要把这里的企业、批次、项目号写成死值。
## 数据从哪读
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` 取。`reportType` 取自 URL`monitor` / `diagnosis`),请求里原样传递,不要写死成 `monitor`
2026-09-20 03:47:41 +08:00
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`
2026-09-20 03:47:41 +08:00
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 项露出率、第 710 项占比等所有「平台 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.11 点假差异(如 32.3% vs 32.1%)。
2026-09-20 03:47:41 +08:00
## 画面百分比
保留 1 位小数。
- **卡泰驰**:差超过 0.05 个点才算不同。
- **海信**:平台看板 1 位小数 vs HTML 四舍五入到 1 位后,**相等或相差 0.1** 判定一致(见上文「海信画面百分比」)。
2026-09-20 03:47:41 +08:00
- 露出率、前三率、正面率、排行榜露出率页面直接印的字段。HTML `fmt` 对非 0、非 100 印两位小数,平台印一位。比数值,不比小数位数。
- 分平台:**卡泰驰** HTML 趋势序列最后一个监测日的点,对平台该平台 snapshot 的 `exposure_rate``top3_rate``positive_rate`。综合要覆盖六个平台的这三个点。**海信**见「KPI 字段(第 3 / 4 项)」五卡;`diagnosis``self` 最新点。
- 信源内容类型、信源发布时间:图例最多 8 条,按值从高到低;发布时间去掉名为「无时间」的项。**先看 `value` 是不是已经是百分比**:本组正值之和落在约 99101.5(或每条都在 0100 且之和≈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`。**海信**见上文「媒体类型(第 9 项)」:次数分母含「其他」。
2026-09-20 03:47:41 +08:00
- 媒体名称HTML 没有占比字段,为 `value / 本组 value 之和 × 100`,去掉「其他」「未知」后取前 10。平台与媒体类型同一条形图规则。
## 排行榜
第 5 项HTML「行业露出率排行榜」对平台「露出排行 · 各平台明细」。不要切换 AI 平台选项。只比 Top 10第 11 名及以后不报。
平台全平台列是平均露出率。其余列是 DeepSeek、豆包、通义千问、腾讯元宝、百度文心、Kimi。某品牌在某选项没有露出时HTML 为空,平台格子是「-」,这不算不同。
**卡泰驰**HTML 综合榜 = 本品(`summary.avg_exposure_rate` + 本品名)与 `core_competitors` **合并后**按平均露出率降序,再取 Top 10。分平台用 `brand.platforms[key].industry_ranking`
**海信**:见上文「海信集团 · 第 5 项」。默认品牌级;平台只取 `kind=brand`;第 5.1 按同名比露出率;第 5.2 允许并列露出率名次对调。
画面名称截断后对不上「车」对「车300」算名称不同。第 5 项不适用「名称写法不同但百分比相同」那条例外,品牌名必须逐字相同(并列换位除外)。
**排序口径(防假失败)**:两边 Top 10 顺序都按**平均露出率从高到低**对齐画面,再取前 10。不要用接口 `rank` 字段当画面名次——`rank` 可能是灌数防撞号,和露出排行画面不一致。露出率相同则按两边各自画面已印出的先后;海信在并列时名次对调不判第 5.2 失败。
2026-09-20 03:47:41 +08:00
三步都要做,任一步不同则第 5 项测试失败❌:
1. 综合平均露出率对平台全平台列(同名比)。海信按 1 位小数四舍五入后相等或差 0.1;卡泰驰差超过 0.05 算不同。
2. 综合 Top 10 的名次和品牌名,对平台全平台 Top 10。名称逐字相同海信并列换位除外。
2026-09-20 03:47:41 +08:00
3. 这 10 个品牌在 DeepSeek、豆包、通义、元宝、文心、Kimi 上的露出率,对平台对应列。通义对通义千问,元宝对腾讯元宝,文心对百度文心。
## 词云
第 6 项不随 AI 平台切换。HTML 词在 `brand.wordcloud`,平台用词云接口,两边都是综合一套。
文案约定不算失败HTML「AI 回答关键词」= 平台「AI 认知词云」HTML「AI 回答正面关键词」= 平台「正面词」HTML「未监测到负面词」= 平台「中正面率100%,暂无负面词」。
正面词图片HTML 用词云画布,平台用正面词图。比画出来的词条是否相同,不比大小、颜色和位置。负面有词时比词条;两边都空时用上面的空态文案。
## 关联信源
第 11 项按标题对齐,比渠道和被引次数,不比行号。集合相同就是测试通过✅。通义不足 30 条时,有几条比几条,两边条数不同才失败。
第 12 项比画面序号上的标题。
- HTML 顺序:`source_top30` 数组顺序,取前 30。
- 平台顺序:接口返回的行按 `cite_count` 从高到低做稳定排序,次数相同则保持接口原顺序。不要用 `rank` 字段顺序,那个顺序和平台表格不一致。
同一序号标题不同、但被引次数相同记测试失败❌表里写序号、HTML 标题、平台标题、被引次数,并写明是并列换位,不是缺标题。