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` 取。
|
|
|
|
|
|
|
|
|
|
|
|
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`。
|
|
|
|
|
|
4. 词云:`GET /api/geo-monitor/projects/{project}/wordcloud?batchId={batchId}&sentiment=all`。这个接口不按 AI 平台拆。HTML 词云也是写死综合,七个选项同一套词。
|
|
|
|
|
|
|
|
|
|
|
|
登录账号从项目认证注册表取,跟本次企业走。不要把手机号、密码、token 写进报告。
|
|
|
|
|
|
|
|
|
|
|
|
## 画面百分比
|
|
|
|
|
|
|
|
|
|
|
|
保留 1 位小数。差超过 0.05 个点才算不同。
|
|
|
|
|
|
|
|
|
|
|
|
- 露出率、前三率、正面率、排行榜露出率:页面直接印的字段。HTML `fmt` 对非 0、非 100 印两位小数,平台印一位。比数值,不比小数位数。
|
|
|
|
|
|
- 分平台:HTML 趋势序列最后一个监测日的点,对平台该平台 snapshot 的 `exposure_rate`、`top3_rate`、`positive_rate`。综合要覆盖六个平台的这三个点。
|
2026-09-20 12:20:49 +08:00
|
|
|
|
- 信源内容类型、信源发布时间:图例最多 8 条,按值从高到低;发布时间去掉名为「无时间」的项。**先看 `value` 是不是已经是百分比**:本组正值之和落在约 99~101.5(或每条都在 0~100 且之和≈100)时,**直接用 `value` 当画面占比**,不要再做 `value / 正值之和 × 100`。只有 `value` 明显是次数/频次(之和远大于 100,或单条远大于 100)时,才用 `value / 正值之和 × 100`。库里已是百分数时再除一次会造出 0.1 点假差异(如 52.1% vs 52%),那种差异不算失败。
|
2026-09-20 03:47:41 +08:00
|
|
|
|
- 媒体类型:HTML 方块去掉「其他」「未知」,再按剩余 `value` 之和重算。平台条形图按值从高到低取前 10;这 10 条 `value` 之和 ≤ 101.5 时直接印 `value`,否则 `value / 该和 × 100`。
|
|
|
|
|
|
- 媒体名称:HTML 没有占比字段,为 `value / 本组 value 之和 × 100`,去掉「其他」「未知」后取前 10。平台与媒体类型同一条形图规则。
|
|
|
|
|
|
|
|
|
|
|
|
## 排行榜
|
|
|
|
|
|
|
|
|
|
|
|
第 5 项:HTML「行业露出率排行榜」对平台「露出排行 · 各平台明细」。不要切换 AI 平台选项。只比 Top 10,第 11 名及以后不报。
|
|
|
|
|
|
|
|
|
|
|
|
平台全平台列是平均露出率。其余列是 DeepSeek、豆包、通义千问、腾讯元宝、百度文心、Kimi。某品牌在某选项没有露出时,HTML 为空,平台格子是「-」,这不算不同。
|
|
|
|
|
|
|
2026-09-20 12:20:49 +08:00
|
|
|
|
HTML 综合榜 = 本品(`summary.avg_exposure_rate` + 本品名)与 `core_competitors` **合并后**按平均露出率降序,再取 Top 10。分平台用 `brand.platforms[key].industry_ranking`。画面名称截断后对不上(「车」对「车300」)算名称不同。
|
|
|
|
|
|
|
|
|
|
|
|
**排序口径(防假失败)**:两边 Top 10 顺序都按**平均露出率从高到低**对齐画面,再取前 10。不要用接口 `rank` 字段当画面名次——`rank` 可能是灌数防撞号,和露出排行画面不一致。露出率相同则按两边各自画面已印出的先后;若按露出率排完后名次与品牌名一致,第 5.2 步判相同,不要因 `rank` 对调判失败。
|
2026-09-20 03:47:41 +08:00
|
|
|
|
|
|
|
|
|
|
三步都要做,任一步不同则第 5 项测试失败❌:
|
|
|
|
|
|
|
|
|
|
|
|
1. 综合平均露出率对平台全平台列。差超过 0.05 算不同。
|
2026-09-20 12:20:49 +08:00
|
|
|
|
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 标题、平台标题、被引次数,并写明是并列换位,不是缺标题。
|