{{ dashPreset==='3days' ? '近3天消耗' : dashPreset==='7days' ? '近7天消耗' : dashStatDate ? dashStatDate+' 消耗' : '今日消耗' }} (元)
{{ formatNum(dash.today_consume) }}
较昨日 {{ dash.consume_change >= 0 ? '↑' : '↓' }} {{ Math.abs(dash.consume_change||0) }}%
{{ dashPreset==='3days' ? '近3天展示量' : dashPreset==='7days' ? '近7天展示量' : dashStatDate ? dashStatDate+' 展示量' : '今日展示量' }}
{{ formatBigNum(dash.today_impression) }}
当日累计
{{ dashPreset==='3days' ? '近3天点击量' : dashPreset==='7days' ? '近7天点击量' : dashStatDate ? dashStatDate+' 点击量' : '今日点击量' }}
{{ formatBigNum(dash.today_click) }}
CTR: {{ dash.avg_ctr||0 }}%
私信留资数
{{ dash.today_private_msg||0 }}
均成本: ¥{{ formatNum(dash.avg_private_msg_cost) }}
活跃创意数
{{ dash.active_creatives||0 }}
投放中
{{ dashPreset==='3days' ? '近3天关停' : dashPreset==='7days' ? '近7天关停' : dashStatDate ? dashStatDate+' 关停' : '今日自动关停' }}
{{ dash.stop_count_today||0 }}
次触发
启用规则数
{{ dash.active_rules||0 }}
条规则运行中
已授权账号
{{ accounts.length }}
个账号接入中
💰 {{ dashPreset==='3days' ? '近3天消耗账号' : dashPreset==='7days' ? '近7天消耗账号' : dashPreset==='yesterday' ? '昨天消耗账号' : dashStatDate ? dashStatDate+' 消耗账号' : '今日消耗账号' }}
💳 各账号余额
最后更新: {{ balanceData.updatedAt }}
加载中...
📈 总消耗趋势(7天)
🏢 各账号消耗趋势
⏱️ 增量模式已开启,基准时间:{{ snapshotTime }},当前显示为该时间点之后的增量数据
加载中...
| { const ids=noteFilteredList.filter(n=>n.note_id).map(n=>n.note_id); if(e.target.checked){ids.forEach(id=>{if(!selectedNoteIds.includes(id))selectedNoteIds.push(id)})}else{selectedNoteIds=selectedNoteIds.filter(id=>!ids.includes(id))} }" style="cursor:pointer;width:14px;height:14px" /> | # | 笔记标题 | 授权账号 | 投放计划数 {{ notesSortIcon('plan_count') }} | 总消耗(元) {{ notesSortIcon('consume') }} | 总留资数 {{ notesSortIcon('private_msg_count') }} | 点击成本 {{ notesSortIcon('cpc') }}
点击成本 (CPC)
每获得一次笔记点击所需的广告费用。 = 消耗 / 点击量 反映封面/标题的吸量效率,成本越低说明引流越高效。 |
进线成本 {{ notesSortIcon('inbound_cost') }}
进线成本
每获得一个用户进入私信页面所需的广告费用。 = 消耗 / 进线人数 衡量从广告到私信的完整漏斗效率。 |
开口成本 {{ notesSortIcon('open_cost') }}
开口成本
每获得一个用户主动发送第一条消息所需的广告费用。 = 消耗 / 开口人数 开口成本越低,说明素材吸引到的用户意向越强。 |
留资成本 {{ notesSortIcon('private_msg_cost') }} | CTR% {{ notesSortIcon('ctr') }}
曝光点击率 (CTR)
衡量笔记封面/标题吸引用户点击进入详情页的能力。 = 点击量 / 曝光量 × 100% |
进线率% {{ notesSortIcon('action_btn_rate') }}
进线率(私信进线率)
衡量点击笔记后成功进入私信页面的转化效率。 = 私信进线数 / 点击量 × 100% |
开口率% {{ notesSortIcon('open_rate') }}
开口率
进入私信页面的用户中,主动发送第一条消息的比率。 = 开口人数 / 进线人数 × 100% |
留资率% {{ notesSortIcon('lead_rate') }}
留资率
开口咨询的用户中,点击企微留资卡片的率。 = 留资人数 / 开口人数 × 100% |
|||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 暂无数据(当日数据采集后自动显示,可选择历史日期查看) | |||||||||||||||||||||||||||||||||||
| — | {{ idx+1 }} | {{ expandedNotes[item.note_id] ? '▼' : '▶' }} |
{{ item.note_id }}
📋
📱
▶ 投放中 {{ item.active_creative_count }}
⏸ 已暂停 {{ item.paused_creative_count }}
— {{ item.total_creative_count }} 个创意
|
{{ item.plan_count||0 }} | ¥{{ formatNum(item.consume) }} | {{ item.private_msg_count||0 }} | {{ item.cpc>0 ? '¥'+formatNum(item.cpc) : '-' }} | {{ item.inbound_cost>0 ? '¥'+formatNum(item.inbound_cost) : '-' }} | {{ item.open_cost>0 ? '¥'+formatNum(item.open_cost) : '-' }} | ¥{{ formatNum(item.private_msg_cost) }} - | {{ formatNum(item.ctr) }}% | {{ item.action_btn_rate>0 ? formatNum(item.action_btn_rate)+'%' : '-' }} | {{ item.open_rate>0 ? formatNum(item.open_rate)+'%' : '-' }} | {{ item.lead_rate>0 ? formatNum(item.lead_rate)+'%' : '-' }} | |||||||||||||||||||||
|
加载中...
暂无创意明细数据
|
|||||||||||||||||||||||||||||||||||
💡 笔记看板以笔记为单位聚合投放数据。点击笔记标题:手机端直接跳转小红书App;📋 复制笔记ID;📱 弹出二维码扫码打开。留资成本:≤50元/≤100元/>100元(均以黑色显示)。
简单投笔记 Top100
简单投·笔记层级
共 {{ ubeNotes.length }} 条
至
⏱️ 增量模式已开启,基准时间:{{ snapshotTime }},当前显示为该时间点之后的增量数据
⏳ 加载中...
暂无简单投笔记数据(数据将在每日 UBE 采集后自动更新)
| { const ids=ubeNotes.filter(n=>n.note_id).map(n=>n.note_id); if(e.target.checked){ids.forEach(id=>{if(!selectedNoteIds.includes(id))selectedNoteIds.push(id)})}else{selectedNoteIds=selectedNoteIds.filter(id=>!ids.includes(id))} }" style="cursor:pointer;width:14px;height:14px" /> | # | 笔记 | 消耗(元) | 进线 | 进线成本 | 开口 | 开口成本 | 留资 | 留资成本 | 加企微 | 企微成本 | CTR | 开口率 | 标的组数 | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| — | {{ ubeExpandedNotes[item.note_id] ? '▼' : '▶' }} | {{ idx+1 }} |
🆕 新
{{ item.note_id }}
📋
📱
|
¥{{ formatNum(item.consume) }} | {{ item.message_consult||0 }} | ¥{{ formatNum(item.inbound_cost) }} - | {{ item.initiative_message||0 }} | ¥{{ formatNum(item.open_cost) }} - | {{ item.msg_leads_num||0 }} | ¥{{ formatNum(item.lead_cost) }} - | {{ item.add_wechat_count||0 }} | ¥{{ formatNum(item.wechat_cost) }} - | {{ item.ctr||0 }}% | {{ item.open_rate||0 }}% | {{ item.plan_count||0 }} | ||||||||||||||||||||
|
⏳ 加载中...
暂无账号明细数据
|
|||||||||||||||||||||||||||||||||||
💡 简单投笔记数据来源:聚光简单投笔记层级接口,与企微报表共用同一次 API 采集,不额外消耗 Token。数据每日随 UBE 采集任务自动更新。
🆕 最新笔记监控
首次出现日期:
→
共 {{newNotesModal.data.length}} 篇新笔记
💡 "最新笔记"指在所选日期范围内有投放,且在开始日期往前7天内没有投放记录的笔记(即近期新上线的笔记)。数据统计范围为所选日期区间内的累计消耗。点击笔记行可展开查看所在计划和创意明细。
加载中...
该日期范围内暂无新笔记
| { const ids=newNotesModal.data.filter(n=>n.note_id).map(n=>n.note_id); if(e.target.checked){ids.forEach(id=>{if(!selectedNoteIds.includes(id))selectedNoteIds.push(id)})}else{selectedNoteIds=selectedNoteIds.filter(id=>!ids.includes(id))} }" style="cursor:pointer;width:14px;height:14px" /> | # | 笔记 | 首次日期 | 消耗 | CTR | 进线成本 | 开口成本 | 留资成本 | 进线率 | 开口率 | 留资率 | 计划/创意 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| — | {{idx+1}} |
📋
📱
|
{{note.first_date}} | {{note.consume}} | {{note.ctr ? note.ctr+'%' : '—'}} | {{note.inbound_cost || '—'}} | {{note.open_cost || '—'}} | {{note.lead_cost || '—'}} | {{note.inbound_rate ? note.inbound_rate+'%' : '—'}} | {{note.open_rate ? note.open_rate+'%' : '—'}} | {{note.lead_rate ? note.lead_rate+'%' : '—'}} | {{note.campaign_count}}计划/{{note.creative_count}}创意 {{newNotesModal.expanded[note.note_id] ? '▲' : '▼'}} | |||||||||
|
|||||||||||||||||||||
➕ 添加自动关停规则
关停层级
针对创意层级,当以下条件满足时,自动暂停该创意。
针对计划层级,将该计划下所有创意的数据聚合后,满足条件时自动暂停整个计划(创意状态不变,重开计划即可恢复)。
针对计划+创意组合层级,当计划聚合数据满足「计划条件」,且该计划下某条创意满足「创意条件」时,关停该创意或整个计划。
💡 跨天累计指标不含今天数据,可安全识别历史低消耗、零留资的「僵尸创意」。示例:历史累计消耗 ≥ 30元 AND 历史投放天数 ≥ 3天 AND 历史累计留资 = 0
当
基础前提
AND
📋 计划维度条件(聚合数据)
计划下所有创意数据的聚合合计。留空则不限制计划级数据。
当
🎨 创意维度条件(单条创意)
单条创意自身的数据。留空则不限制创意级数据。
当
🎯 关停对象
生效时间段
至
留空=全天生效
限定计划名称包含
规则名称
绑定账号
🧟 僵尸创意自动关停
上次执行:{{ zombieRule.last_run }}
每天在设定时间段内执行一次,关停所有符合条件的僵尸创意
📅 观察天数
天内每天有数据
建议 5-7 天,避免误杀新创意
💰 累计消耗上限
低于
元 且零留资
建议 0.1 元(几乎不消耗)
⏰ 执行时间段
至
建议凌晨低峰期,如 00:00 至 06:00
⚠️ 关停操作不可逆,执行后创意将被暂停。建议首次使用时先点击「立即执行一次」观察效果,确认无误后再开启自动执行。关停结果会通过钉钉合并通知发送。
🛡️ 全局通用白名单
暂无白名单规则,点击「+ 添加白名单规则」创建
{{ wr.dimension === 'creative' ? '🎨 创意级' : '📋 计划级' }}
{{ wr.keywords }}
{{ c.logic || 'AND' }}
{{ getMetricLabel(c.metric) }} {{ c.operator }} {{ c.value }}
无限制(永不关停)
已关停:
今日 {{ wr.today_stop_count || 0 }} 次
/ 累计 {{ wr.stop_count || 0 }} 次
{{ globalWhiteListEditing ? '编辑白名单规则' : '新建白名单规则' }}
关键词 (多个用逗号或换行分隔)
作用维度
关停阈值条件 (留空则永不关停)
基础前提
💡 低成本误关重开
📊 最低留资数
留资 ≥
条
至少有1条留资才考虑重开
💰 留资成本上限
成本 <
元/条
低于此成本才认为是优质创意
⏱️ 检测间隔
每
检测一次
建议每5分钟检测一次
ℹ️ 检测条件:创意状态=暂停 AND 今日留资数 ≥ 设定值 AND 今日留资成本 < 设定值。满足条件的创意将被自动重新开启,并通过钉钉发送通知。
📋 计划层级重开
⏱️ 检测间隔
每
检测一次
与创意层级共用同一检测间隔
📊 最低留资数
留资 ≥
条
计划下今日留资数之和
💰 留资成本上限
成本 <
元/条
计划级留资成本(消耗/留资数)
ℹ️ 检测条件:计划今日留资数 ≥ 设定值 AND 今日留资成本 < 设定值。满足条件的暂停计划将被自动重新开启(创意状态不变)。
📏 已有规则 ({{ rules.length }} 条)
暂无规则,请在上方添加
{{ rule.rule_name }}计划级🔀 组合级
{{ (accounts.find(a=>a.advertiser_id===aid.trim())||{}).advertiser_name || aid.trim() }}
🌐 通用
📋计划:
{{ cond.logic||'AND' }}
{{ metricLabel(cond.metric) }} {{ cond.operator }} {{ cond.value }}{{ metricUnit(cond.metric) }}
🎨创意:
{{ cond.logic||'AND' }}
{{ metricLabel(cond.metric) }} {{ cond.operator }} {{ cond.value }}{{ metricUnit(cond.metric) }}
暂无条件
→ {{ rule.combo_stop_target==='campaign' ? '关停整个计划' : '关停该条创意' }}
{{ cond.logic||'AND' }}
{{ metricLabel(cond.metric) }} {{ cond.operator }} {{ cond.value }}{{ metricUnit(cond.metric) }}
→ {{ actionLabel(rule.action) }}
⚡ 已触发 {{ rule.trigger_count||0 }} 次
🕐 {{ rule.active_start_time }}-{{ rule.active_end_time }}
✏️ 编辑关停规则
当
基础前提
AND
生效时段
至
留空=全天生效
关停层级
📋 计划维度条件(聚合数据)
计划下所有创意数据的聚合合计。留空则不限制计划级数据。
当
🎨 创意维度条件(单条创意)
单条创意自身的数据。留空则不限制创意级数据。
当
🎯 关停对象
限定计划名称含
规则名称
绑定账号
🌐 通用(全部)
{{ a.advertiser_name || a.advertiser_id }}
⚡ 关停日志
| 时间 | 规则名称 | 创意ID | 创意名称 | 消耗(元) | 私信留资成本 | 状态 |
|---|---|---|---|---|---|---|
| 暂无关停日志 | ||||||
| {{ log.created_at }} | {{ log.rule_name }} | {{ log.object_id }} | ¥{{ formatNum(log.trigger_data && (log.trigger_data.campaign ? log.trigger_data.campaign.consume : log.trigger_data.consume)) }} | {{ (log.trigger_data && (log.trigger_data.campaign ? log.trigger_data.campaign.private_msg_cost : log.trigger_data.private_msg_cost) > 0) ? '¥'+formatNum(log.trigger_data.campaign ? log.trigger_data.campaign.private_msg_cost : log.trigger_data.private_msg_cost) : '-' }} | {{ log.status==='success' ? '✅ 成功' : '❌ 失败' }} | |
🍪 聚光后台 Cookie 配置
每个授权账号独立配置 Cookie,起量时自动使用对应账号的 Cookie。配置后支持私信留资等所有计划类型起量。
👤 {{ acc.advertiser_name || acc.advertiser_id }}
(ID: {{ acc.advertiser_id }})
✔ Cookie已配置
⚠️ 未配置
获取方法:打开聚光后台 ad.xiaohongshu.com → F12 开发者工具 → Application → Cookies → 复制全部Cookie内容
请先在「账号管理」页面授权聚光账号
➕ 添加自动起量规则
已配置Cookie时支持所有营销诉求类型(包括私信留资)的计划自动起量。
触发条件逻辑:
{{ newBoostRule.conditionLogic }}
当
🔗 绑定账号
🌐 通用(全部)
{{ a.advertiser_name || a.advertiser_id }}
⚡ 已有规则({{ boostRules.length }} 条)
暂无起量规则
{{ rule.rule_name }}
{{ (accounts.find(a=>a.advertiser_id===aid.trim())||{}).advertiser_name || aid.trim() }}
🌐 通用
{{ getBoostLogic(rule.conditions) }}
{{ formatBoostCond(cond) }}
消耗 ≥ ¥{{ rule.min_consume }}
AND
私信留资成本 ≤ ¥{{ rule.max_private_msg_cost }}
→
🚀 起量 ¥{{ rule.boost_budget }} / {{ rule.boost_hours }}h
⚡ 已触发 {{ rule.trigger_count||0 }} 次
✏️ 编辑起量规则
触发条件逻辑:
{{ editBoostRuleModal.conditionLogic }}
当
绑定账号
🌐 通用(全部)
{{ a.advertiser_name || a.advertiser_id }}
🚀 起量日志
| 时间 | 规则名称 | 计划ID | 计划名称 | 起量预算 | 起量时长 | 触发消耗 | 私信留资成本 | 状态 |
|---|---|---|---|---|---|---|---|---|
| 暂无起量记录 | ||||||||
| {{ log.created_at }} | {{ log.rule_name }} | {{ log.campaign_id }} | {{ log.campaign_name||log.campaign_id }} | ¥{{ log.boost_budget }} | {{ log.boost_hours }}h | ¥{{ (log.trigger_consume||0).toFixed(2) }} | ¥{{ (log.trigger_private_msg_cost||0).toFixed(2) }} | ✔ 成功 ✖ 失败 |
🔔 企微漏斗异常通知配置
📌 钉钉机器人配置
📋 异常阈值规则
新异常实时通知,通知过的老异常 {{ alertConfig.alert_cooldown_hours }} 小时内不重复通知
| 启用 | 指标名称 | 条件 | 阈值 |
|---|---|---|---|
| {{ rule.label }} |
{{ rule.unit }}
|
检测结果:
✅ 当前无异常
❌ 检测失败:{{ alertTestResult.error }}
⚠️ 发现 {{ alertTestResult.triggered }} 个异常,已发送钉钉通知
⚙️ 渠道配置管理
暂无渠道配置,请点击「新增渠道」
| 渠道名称 | KOS员工数 | 1群群集 | 2群群集 | 获客渠道数 | 状态 | 操作 |
|---|---|---|---|---|---|---|
| {{ ch.channel_name }} | {{ (ch.kos_authors || []).length }} | {{ wecomGetGroupName(ch.group1_id) }} | {{ wecomGetGroupName(ch.group2_id) }} | {{ (ch.sources || []).length }} | {{ ch.is_active ? '启用' : '停用' }} |
{{ wecomChannelForm.id ? '编辑渠道' : '新增渠道' }}
📋 批量导入UID
可按换行、中文/英文逗号、分号或空格粘贴小红书 UID;系统自动逐个匹配作者名并勾选。格式无效的内容不会保存。
✅ 已匹配 {{ wecomUidResult.matched.length }} 个作者并勾选
⚠️ {{ wecomUidResult.added_to_whitelist.length }} 个新UID已加入白名单(等有消耗后自动关联作者名)
❌ {{ wecomUidResult.unmatched.length }} 个UID无法识别
wecomGroup1Dropdown=false,200)" style="width:100%;box-sizing:border-box;border:1px solid #E0E0E0;border-radius:6px;padding:8px 12px;font-size:13px;outline:none;background:#fff" />
{{ g.name }}(ID:{{ g.id }})
已选:{{ wecomGroup1Search }} (ID: {{ wecomChannelForm.group1_id }})
⏳ 加载群集列表中...
wecomGroup2Dropdown=false,200)" style="width:100%;box-sizing:border-box;border:1px solid #E0E0E0;border-radius:6px;padding:8px 12px;font-size:13px;outline:none;background:#fff" />
{{ g.name }}(ID:{{ g.id }})
已选:{{ wecomGroup2Search }} (ID: {{ wecomChannelForm.group2_id }})
暂未添加获客渠道(不配置则不统计企微加人数据)
来源 {{ idx+1 }}
{src._channelFiltered=wecomChannelList.filter(o=>!src._channelSearch||o.name.toLowerCase().includes(src._channelSearch.toLowerCase())).slice(0,50)})" @blur="setTimeout(()=>{src._channelDropdown=false},200)" @input="src._channelDropdown=true;src._channelFiltered=wecomChannelList.filter(o=>!src._channelSearch||o.name.toLowerCase().includes(src._channelSearch.toLowerCase())).slice(0,50)" type="text" placeholder="搜索渠道名称..." style="width:100%;box-sizing:border-box;border:1px solid #E0E0E0;border-radius:6px;padding:6px 10px;font-size:13px;outline:none;background:#fff" autocomplete="off" />
{{opt.name}}
✓ 已选:{{src._channelSearch}} (ID: {{src.redash_channel_id}})
⏳
数据加载中...
📊
暂无数据,请先配置渠道并刷新进群数据
{{ wecomCurrentMonth }}
(每页显示一个月数据)
📊 {{ chData.channel_name }}
| 日期 | 消耗 | 私信漏斗 | 转化率 & 企微 | 1群 | 2群 | 两群折合 | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 消耗 | 进线数 | 进线成本 | 开口数 | 开口成本 | 留资数 | 留资成本 | 开口率 | 留资率 | 企微数 | 留资率 | 企微成本 | 进群 | 进群率 | 退群 | 退群率 | 净增 | 净增成本 | 进群 | 进群率 | 退群 | 退群率 | 净增 | 两群折合 | |
| {{ row.stat_date }} | {{ row.consume ? row.consume.toLocaleString() : '-' }} | {{ row.inbound || '-' }} | {{ row.inbound_cost != null ? row.inbound_cost : '-' }} | {{ row.open || '-' }} | {{ row.open_cost != null ? row.open_cost : '-' }} | {{ row.lead || '-' }} | {{ row.lead_cost != null ? row.lead_cost : '-' }} | {{ row.inbound_to_open_rate != null ? row.inbound_to_open_rate+'%' : '-' }} | {{ row.open_to_lead_rate != null ? row.open_to_lead_rate+'%' : '-' }} | {{ row.wecom || '-' }} | {{ row.wecom_lead_rate != null ? row.wecom_lead_rate+'%' : '-' }} | {{ row.wecom_cost != null ? row.wecom_cost : '-' }} | {{ row.g1_join || '-' }} | {{ row.g1_join_rate != null ? row.g1_join_rate+'%' : '-' }} | {{ row.g1_quit || '-' }} | {{ row.g1_quit_rate != null ? row.g1_quit_rate+'%' : '-' }} | {{ row.g1_net != null ? row.g1_net : '-' }} | {{ (row.g1_net && row.g1_net > 0 && row.consume) ? (row.stat_date >= '2026-04-10' ? ((row.consume / 1.18 + (row.wecom || 0)) / row.g1_net).toFixed(1) : (row.consume / row.g1_net).toFixed(1)) : '-' }} | {{ row.g2_join || '-' }} | {{ row.g2_join_rate != null ? row.g2_join_rate+'%' : '-' }} | {{ row.g2_quit || '-' }} | {{ row.g2_quit_rate != null ? row.g2_quit_rate+'%' : '-' }} | {{ row.g2_net != null ? row.g2_net : '-' }} | {{ row.total_cost != null ? row.total_cost : '-' }} |
| ↳ 自然流净增: {{ wecomEstimateNaturalNet(row) }} | ↳ 广告净增成本: {{ wecomEstimateAdCost(row) }} | |||||||||||||||||||||||
| 月合计 | {{ wecomMonthSum(chData,'consume') }} | {{ wecomMonthSum(chData,'inbound') }} | {{ wecomMonthCost(chData,'consume','inbound') }} | {{ wecomMonthSum(chData,'open') }} | {{ wecomMonthCost(chData,'consume','open') }} | {{ wecomMonthSum(chData,'lead') }} | {{ wecomMonthCost(chData,'consume','lead') }} | {{ wecomMonthRate(chData,'open','inbound') }} | {{ wecomMonthRate(chData,'lead','open') }} | {{ wecomMonthSum(chData,'wecom') }} | {{ wecomMonthRate(chData,'wecom','lead') }} | {{ wecomMonthCost(chData,'consume','wecom') }} | {{ wecomMonthSum(chData,'g1_join') }} | {{ wecomMonthRate(chData,'g1_join','wecom') }} | {{ wecomMonthSum(chData,'g1_quit') }} | {{ wecomMonthRate(chData,'g1_quit','g1_join') }} | {{ wecomMonthNetSum(chData,'g1_join','g1_quit') }} | {{ wecomMonthG1NetCost(chData) }} | {{ wecomMonthSum(chData,'g2_join') }} | {{ wecomMonthRate(chData,'g2_join','wecom') }} | {{ wecomMonthSum(chData,'g2_quit') }} | {{ wecomMonthRate(chData,'g2_quit','g2_join') }} | {{ wecomMonthNetSum(chData,'g2_join','g2_quit') }} | {{ wecomMonthTotalCost(chData) }} |
已授权账号 ({{ accounts.length }} 个)
所有账号将同步监控,数据按账号隔离展示
🔑
暂无授权账号,点击右上角「授权新账号」开始接入
{{ (acct.advertiser_name||'?')[0] }}
{{ acct.advertiser_name || '未知账号' }}
ID: {{ acct.advertiser_id }}
最后更新: {{ acct.updated_at || '-' }}
¥{{ formatNum(acct.today_consume || 0) }}
今日消耗
{{ acct.consume_change >= 0 ? '+' : '' }}{{ acct.consume_change }}%
--
较昨日
{{ acct.campaign_count || 0 }}
计划数
{{ acct.creative_count || 0 }}
创意数
✅ Token有效
⚠️ Token过期
❌ 需重新授权
{{ acct.is_active ? '监控中' : '已暂停' }}
📊 数据正常
⚠️ 无数据
如何授权新账号?
1
点击「授权新账号」按钮
系统将跳转至小红书聚光授权页面,使用目标广告账号登录
2
在聚光后台点击「同意授权」
授权后系统自动获取 Token,无需提供账号密码,可随时撤销
3
授权完成,自动接入监控
新账号将立即加入监控队列,数据将在下一个监控周期开始拉取
手动输入 auth_code(备用)
如果自动回调未生效,可手动将回调URL中的 auth_code 参数填入下方
🔔 账号异常通知
API授权到期/失效、Cookie失效、余额不足通知,发送到独立钉钉群,@所有人,每类不重复通知
📌 钉钉机器人配置
Webhook
加签密鑰
🔔 通知项
API授权到期/失效通知
access_token 剩余3天内到期或 refresh_token 已失效时通知
Cookie失效通知
账号 boost_cookie 为空时通知
选择需要监控Cookie的账号
a.is_active).map(a=>String(a.advertiser_id))" style="font-size:11px;color:#7B68EE;cursor:pointer">全选
清空
暂无活跃账号
余额不足通知
余额少于
元时通知(每天不重复)
选择需要监控余额的账号
a.is_active).map(a=>String(a.advertiser_id))" style="font-size:11px;color:#7B68EE;cursor:pointer">全选
清空
暂无活跃账号
{{ accountNotifyMsg.text }}
钉钉机器人配置
配置完成后,系统将每日自动发送三次投流分析日报到钉钉群
当前:{{ dingWebhookPreview }}
留空则保持原有配置不变
立即发送日报
不受今日已发送限制,可随时手动触发任意类型日报
发送记录(最近20条)
🔔
暂无发送记录
| 类型 | 发送时间 | 状态 | 内容预览 |
|---|---|---|---|
| {{ dingReportTypeLabel(log.report_type) }} | {{ log.send_time }} |
{{ log.status==='success' ? '✅ 成功' : '❌ 失败' }}
{{ log.error_msg }}
|
📋 日报内容说明
🌞 上午报
• 今日早间消耗概览
• 🔴 高风险创意预警(高消耗低转化)
• 昨日最优计划参考
☀️ 午间报
• ✅ 今日起量之星(建议加预算)
• 🤔 高CTR低转化创意排查
• 今日自动关停/起量次数
🌙 晚间报
• 全天战报(对比昨日)
• ⚙️ 自动操作记录(关停/起量)
• 🏆 今日 Top 5 创意
• 💡 明日策略建议
➕ 新建用户
用户列表
加载中...
👥
暂无用户
| ID | 用户名 | 显示名称 | 状态 | 创建时间 | 操作 |
|---|---|---|---|---|---|
| {{ u.id }} | {{ u.username }} | {{ u.display_name || '-' }} | {{ u.status==='approved' ? '已启用' : u.status==='pending' ? '待审核' : u.status }} | {{ u.created_at }} |
|
{{ kosDashSummary.total }}
总账号数
{{ kosDashSummary.danger }}
🔴 高危
{{ kosDashSummary.warning }}
🟡 预警
{{ kosDashSummary.normal }}
🔵 正常
{{ kosDashSummary.passed }}
🟢 达标
📊
暂无数据,请先上传KOS报表
接口:POST /api/kos/upload-report?group=攻略 或 group=线报
加载中...
🔴 投放异常 — {{ wrongPlacementAccount && wrongPlacementAccount.xhs_nickname }}
归属专业号:{{ wrongPlacementData.belong_advertiser_name }}({{ wrongPlacementData.belong_advertiser_id }})· 今日投错 {{ wrongPlacementData.wrong_count }} 条笔记
暂无数据
⚠️ 以下笔记今日被投放到非归属专业号,请检查投放配置
{{ note.note_id }}
归属专业号:{{ wrongPlacementData.belong_advertiser_name }}
→
实际投放:{{ note.actual_advertiser_name }}
消耗 ¥{{ note.consume ? note.consume.toFixed(2) : '0.00' }}
openNoteSearch())" style="color:#1890ff;font-size:12px;white-space:nowrap;cursor:pointer">在素材看板查看 →
在KOS归属管理查看 →
📝 {{ kosNoteModalAccount && kosNoteModalAccount.xhs_nickname }} 的笔记列表
近30天消耗数据 · 共 {{ kosNoteList.length }} 篇绑定笔记
加载中...
该账号暂无绑定成功的笔记
📷
{{ note.note_id }}
消耗 ¥{{ note.consume.toFixed(2) }}
曝光 {{ note.impression.toLocaleString() }}
点击 {{ note.click.toLocaleString() }}
CTR {{ note.ctr }}%
留资 {{ note.leads }}
加载中...
暂无数据(请确认已采集KOS号笔记且有简单投消耗)
| # | 达人 | 笔记数 | 消耗 | 进线 | 进线成本 | 开口 | 开口成本 | 留资 | 留资成本 | CTR | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{idx+1}} |
►
{{author.author_name}}
{{author.note_count}} 条笔记
|
{{author.note_count}} | ¥{{(author.consume||0).toFixed(2)}} | {{author.message_consult||0}} | {{author.inbound_cost ? '¥'+author.inbound_cost.toFixed(2) : '-'}} | {{author.initiative_message||0}} | {{author.open_cost ? '¥'+author.open_cost.toFixed(2) : '-'}} | {{author.msg_leads_num||0}} | {{author.lead_cost ? '¥'+author.lead_cost.toFixed(2) : '-'}} | {{(author.ctr||0).toFixed(2)}}% | ||||||||||||||||||||
|
加载中...
暂无笔记数据
|
||||||||||||||||||||||||||||||
💡 数据来源:简单投笔记层级数据 x KOS号笔记作者映射,共 {{kosAuthorList.length}} 位达人
⏱️ 增量模式已开启,基准时间:{{ snapshotTime }},当前显示为该时间点之后的增量数据
总消耗
¥{{ reportTotal.consume.toLocaleString() }}
总留资数
{{ reportTotal.leads }}
平均留资成本
{{ reportTotal.lead_cost ? '¥'+reportTotal.lead_cost : '-' }}
总计划数
{{ reportTotal.campaign_count }}
总创意数
{{ reportTotal.creative_count || 0 }}
ℹ️ 总消耗和总留资数为专业号账号汇总;其中 ¥{{ reportUbeConsume.toLocaleString() }} 消耗和 {{ reportUbeLeads }} 条留资尚未在计划级明细中匹配。该差额并不等同于简单投,暂不计入下方运营明细表格。
⏳
加载中...
📋
暂无报表数据,请选择日期范围后查询
| 运营 | 计划数 | 创意数 | 消耗(元) | 留资数 | 留资成本 | 点击率 | 消耗占比 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ▶ | {{ idx+1 }} {{ row.operator }} | {{ row.campaign_count }} | {{ row.creative_count || 0 }} | ¥{{ row.consume.toLocaleString() }} | {{ row.leads }} | ¥{{ row.lead_cost }} - | {{ row.ctr }}% |
{{ reportTotal.consume>0 ? (row.consume/reportTotal.consume*100).toFixed(1)+'%' : '-' }}
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
⚡ AIGC
消耗 ¥{{ row.aigc_consume.toLocaleString() }}
留资 {{ row.aigc_leads }} 条
留资成本 ¥{{ row.aigc_lead_cost }}
(暂无留资数据)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
⏳ 加载中...
第 {{ reportCampaignsPage }} / {{ Math.ceil(reportCampaignsTotal/reportCampaignsPageSize) }} 页(共 {{ reportCampaignsTotal }} 条)
⏳ 加载中...
第 {{ reportCreativesPage }} / {{ Math.ceil(reportCreativesTotal/reportCreativesPageSize) }} 页(共 {{ reportCreativesTotal }} 条)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 合计 | {{ reportTotal.campaign_count }} | {{ reportTotal.creative_count || 0 }} | ¥{{ reportTotal.consume.toLocaleString() }} | {{ reportTotal.leads }} | ¥{{ reportTotal.lead_cost }} - | - | 100% | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
✓
{{ si+1 }}
{{ step }}
第一步:选择投放模板
🧭 投放账号将在选择笔记后确定
下一步选择笔记后,可先检测KOS归属,再选择“按笔记所属账号建计划”或原有的“手动选择广告账号”。
我的模板
⏳ 加载中...
暂无模板,请先新建一个模板
默认
{{ tpl.template_name }}
优化目标:{{ tpl.optimize_target==='lead'?'留资量':tpl.optimize_target==='open'?'开口量':'进线量' }}
出价:¥{{ (tpl.event_bid/100).toFixed(2) }}
性别:{{ tpl.target_gender==='1'?'女':tpl.target_gender==='2'?'男':'不限' }}
地域:{{ getTemplateCityLabel(tpl) }}
定向拓展:{{ tpl.intelligent_expansion?'开启':'关闭' }}
置顶:{{ tpl.copy_text }}
第二步:填写计划名称
计划名称 *
📌 多模板模式:计划名由【模板名】【日期时间】自动生成,可选插入自定义关键词
自定义关键词
插入位置
{{ opt.l }}
预览:{{ multiCampaignNamePreview }}
{{ (campaignForm.campaign_name||'').length }}/60
已选 {{ campaignForm.template_ids.length }} 个模板
(将为每个模板分别建一个计划)
✓
{{ (campaignTemplates.find(t=>t.id===tid)||{}).template_name || tid }}
出价 ¥{{ ((campaignTemplates.find(t=>t.id===tid)||{}).event_bid/100||0).toFixed(2) }}
第三步:选择已绑SPU新笔记
只展示绑SPU成功的笔记;同一笔记当天多次绑定只显示一次。投放归属以KOS归属管理为准。
已选 {{ campaignForm.note_ids.length }} / {{ campaignNoteMaxCount }} 篇
绑SPU日期:
批次:
共 {{ dailySpuPoolData.summary.total }} 篇去重笔记
✓ 已映射 {{ dailySpuPoolData.summary.mapped }}
未映射 {{ dailySpuPoolData.summary.unmapped }}
未识别 {{ dailySpuPoolData.summary.unknown }}
归属冲突 {{ dailySpuPoolData.summary.ambiguous }}
已有投放 {{ dailySpuPoolData.summary.existing_creative }}
目标号不可投放 {{ dailySpuPoolData.summary.target_unavailable }}
{{ dailySpuPoolData.summary.group_count }} 个归属专业号
当前列表 {{ getFilteredDailySpuNotes().length }} 篇
📋 补充历史 / 人工笔记ID
可与今日新笔记一起创建;将按KOS归属管理重新检测
已补充 {{ getManualCampaignNoteIds().length }} 篇。移除输入框中的ID后会同步移出本次选择。当前仅使用手动ID,新笔记已清空
每日新笔记仍在加载;已粘贴的历史笔记可直接点击右下角“检测归属并继续”。
⏳ 正在读取绑SPU成功笔记…
| 选 | 笔记 / KOS | 归属专业号 | 绑SPU参考 | 状态 |
|---|---|---|---|---|
|
{{ note.note_id }} KOS:{{ note.kos_name || '—' }} {{ note.kos_uid.slice(-8) }} |
{{ note.advertiser_name }} {{ note.advertiser_id }}
{{ note.msg || '无法识别归属' }}
|
{{ (note.bound_advertiser_names||[]).join('、') || '—' }} 成功 {{ note.bind_success_count }} 次 · {{ formatDailySpuBindTime(note.bind_first_at) }} |
目标号不可投放 聚光上次返回 {{ note.target_unavailable_error_code || '10002' }} 需补映射已有投放×{{ note.existing_creative_count }}可建计划{{ formatDailySpuBindTime(note.target_unavailable_at) }} |
该日期 / 批次下没有符合当前筛选条件的绑SPU成功笔记。
⏳ 正在读取绑SPU成功笔记…
暂未加载笔记池,请点击“刷新”重试。
已选择 {{ campaignForm.note_ids.length }} 篇笔记。进入下一步后将再次核对KOS归属,并按映射的所属专业号分组创建计划。
🧭 笔记所属账号检测
先根据KOS归属管理识别笔记所属专业号,再决定怎样建计划。
⏳
正在检测 {{ campaignForm.note_ids.length }} 篇笔记的KOS归属...
已选 {{ ownershipModal.data.summary.selected_count }} 篇
✓ 已映射 {{ ownershipModal.data.summary.mapped_count }}
未映射 {{ ownershipModal.data.summary.unmapped_count }}
未识别 {{ ownershipModal.data.summary.unknown_count }}
归属冲突 {{ ownershipModal.data.summary.ambiguous_count }}
{{ ownershipModal.data.summary.group_count }} 个所属专业号
存在无法安全归属的笔记。请先在KOS归属管理补充/核对映射,或切换到“手动选择广告账号”建计划。
{{ note.note_id }}:{{ note.msg || note.status }}
按归属专业号分组
{{ group.advertiser_name }} ({{ group.advertiser_id }})
{{ group.notes.length }} 篇归属笔记 · KOS:{{ group.kos_names.join('、') }}
该专业号当前不在可用广告账号中,无法创建。
本号还差 {{ 5-group.notes.length }} 篇笔记;可从本次已选的其他归属笔记中混投补足。
可混投笔记不足,至少还需 {{ 5-group.notes.length-getOwnerGroupMixPool(group).length }} 篇。
提示:选择“混投补足”时,本号已有笔记会全部保留;仅缺少的数量从本次已选、且属于其他专业号的笔记补入。最终组合会标注混投来源。
预计创建:{{ getOwnerBuildGroups().length }} 个可建专业号 × {{ campaignForm.template_ids.length }} 个模板 × {{ getCampaignVariantCount() }} 套差异版 = {{ campaignPlanInstances().length }} 个计划
选择投放广告账号 *已选 {{ campaignForm.advertiser_ids.length }} 个
手动模式会把本次选择的全部笔记投放到每个已选广告账号,保持原有规则。
{{ ownershipModal.error || '笔记归属检测失败,请重试。' }}
第四步:确认创意选项
置顶评论文案
最多30字,从模板读取可修改
{{ (campaignForm.copy_text||'').length }}/30
⚠️ 视频笔记私信组件(如图底部"立即领取"按钮样式)
组件标题 *
{{ (campaignForm.video_component_title||'').length }}/10
组件主图
✅ 自动使用所选笔记的封面图,无需手动上传
提交前确认
广告账号:{{ isOwnerBuildMode() ? '按笔记所属专业号自动分组('+getOwnerBuildGroups().length+'个)' : (getCampaignSelectedAdvertiserNames() || '(未选择)') }}
建法:{{ isOwnerBuildMode() ? '按笔记所属账号建计划' : '手动选择广告账号' }}
计划名称:{{ campaignForm.campaign_name }}
使用模板:{{ campaignForm.template_ids.length>1 ? campaignForm.template_ids.length+'个模板' : (campaignSelectedTemplate ? campaignSelectedTemplate.template_name : '-') }}
差异版本:{{ getCampaignVariantCount()>1 ? getCampaignVariantCount()+'套' : '1套' }}
笔记数量:{{ campaignForm.note_ids.length }} 个
计划预测:创建 {{ getManualPlanForecast().kept_count }} 个(另{{ getManualPlanForecast().overflow_count }}个超上限)
来源备注:{{ getDailySpuSourceMeta().label }}
置顶文案:{{ campaignForm.copy_text || '(无)' }}
笔记来源:{{ campaignForm.note_source_type===1?'员工笔记(KOS)':'自己的笔记' }} ({{ Object.values(campaignForm.note_types).filter(t=>t==='kos').length }}个员工 / {{ Object.values(campaignForm.note_types).filter(t=>t==='own').length }}个自己)
私信承接:{{ campaignForm.kos_msg_type===0?'笔记作者':'关联投放账号' }}
投放状态:建成后直接上线
{{ campaignResult.code===0?'🎉':(campaignResult.code===1?'⚠️':'❌') }}
批量建计划完成
{{ campaignResult.msg }}
🎉
建计划成功!
{{ campaignResult.msg }}
计划ID:{{ campaignResult.campaign_id }}
单元ID:{{ campaignResult.unit_id }}
创意:{{ campaignResult.success_count }} 个成功{{ campaignResult.fail_count }} 个失败
来源备注:{{ campaignResult.source_trace.source_remark }}
创意详情:
{{ r.status==='success'?'✓':'✗' }}
{{ r.note_id }}
{{ r.msg }}
❌
建计划失败
{{ campaignResult.msg }}
📝 出错笔记详情:
✗
{{ e.note_id }}
{{ e.msg }}
🔍 API原始错误信息:
sub_msg: {{ campaignResult.raw_api_response.sub_msg }}
sub_code: {{ campaignResult.raw_api_response.sub_code }}
建计划失败:API未返回笔记级详情,请查看上方错误信息。常见原因:笔记未审核通过、未绑定SPU商品、视频笔记缺少组件标题
⏳
正在处理中,请稍候...