{{ dashDateMode === 'today' ? '暂无今日数据,请点击刷新获取' : '暂无数据,请先运行日报采集' }}
| 店铺 {{ dashSortIcon('store_name') }} | 流水($) {{ dashSortIcon('revenue') }} | 广告费($) {{ dashSortIcon('ad_spend') }} | ROAS {{ dashSortIcon('roas') }} | 订单 {{ dashSortIcon('orders') }} | 商品量 {{ dashSortIcon('items_sold') }} | 客单价($) {{ dashSortIcon('avg_order_value') }} | 利润(¥) {{ dashSortIcon('profit') }} | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
{{ store.store_name }}
{{ dashExpandedStore === store.store_id ? '▲' : '▼' }}
ROAS {{ store.roas }}
| 7天均 {{ store.roas_7d_avg }}
| 30天均 {{ store.roas_30d_avg }}
|
{{ dashFmt(store.revenue) }} | {{ dashFmt(store.ad_spend) }} | {{ store.roas }} | {{ store.orders }} | {{ store.items_sold }} | {{ dashFmt(store.avg_order_value) }} | {{ dashFmt(dashProfitCny(store)) }} | ||||||||||||||
|
加载中...
|
|||||||||||||||||||||
| 合计 | {{ dashFmt(dashData.summary.revenue) }} | {{ dashFmt(dashData.summary.ad_spend) }} | {{ dashData.summary.roas }} | {{ dashData.summary.orders }} | {{ dashData.summary.items_sold }} | {{ dashFmt(dashData.summary.avg_order_value) }} | {{ dashFmt(dashProfitCny(dashData.summary)) }} | ||||||||||||||
广告管理
| 时间 | 店铺 | 广告系列名 | 类型 | 目标 | 素材数 | 状态 | 创建人 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ log.created_at }} | {{ log.store_name || '-' }} | {{ log.campaign_name }} | {{ log.campaign_type }} | {{ adEnums.objectives.find(o => o.value === log.objective)?.label || log.objective }} | {{ log.ad_count }} | {{ log.status === 'submitting' ? '提交中...' : log.status === 'success' ? '成功' : log.status === 'failed' ? '失败' : log.status === 'partial' ? '部分成功' : log.status }} | {{ log.created_by }} | 查看 |
| 暂无广告创建记录 | ||||||||
{{ adCreateResult.status === 'success' ? '✅ 广告创建成功!(状态:已暂停)' : adCreateResult.status === 'partial' ? '⚠️ 部分广告创建成功' : '❌ 广告创建失败' }}
Campaign: {{ adCreateResult.campaign_name }}
Campaign ID: {{ adCreateResult.campaign_id }}
广告数量: {{ adCreateResult.ads_created }} 条创建成功,{{ adCreateResult.ads_failed }} 条失败(全部暂停中)
错误详情:
- {{ err }}
基础设置
⚠️ {{ adPagesMsg }}
⚠️ {{ adPixelsMsg }}
受众与出价
留空则立即投放 · 当前 HST: {{ currentHST }}
素材上传
拖拽文件到此处,或点击选择
支持 JPG/PNG/WebP/MP4/MOV,单文件最大 100MB
统一文案
广告预览 ({{ adCards.length }} 条)
{{ card.primary_text || '(未设置正文)' }}
{{ card.headline || '(未设置标题)' }}
{{ card.url || '(未设置 URL)' }}
引用帖子,使用原帖内容
广告系列预算
广告组 ({{ adSets.length }})
留空则立即投放 · 当前 HST: {{ currentHST }}
素材上传
拖拽文件到此处,或点击选择
支持 JPG/PNG/WebP/MP4/MOV,单文件最大 100MB
统一文案
广告预览 ({{ adSet.ads.length }} 条)
{{ ad.primary_text || '(未设置正文)' }}
{{ ad.headline || '(未设置标题)' }}
{{ ad.url || '(未设置 URL)' }}
引用帖子,使用原帖内容
暂无广告组,点击"+ 添加广告组"开始
| 模板名 | 类型 | 目标 | 优化目标 | 出价策略 | 日预算 | 定向 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ tpl.name }} 默认 | {{ tpl.campaign_type }} | {{ adEnums.objectives.find(o => o.value === tpl.objective)?.label || tpl.objective }} | {{ adEnums.optimizationGoals.find(g => g.value === tpl.optimization_goal)?.label || tpl.optimization_goal }} | {{ adEnums.bidStrategies.find(b => b.value === tpl.bid_strategy)?.label || tpl.bid_strategy }} | ${{ tpl.daily_budget }} | {{ tpl.targeting_type }} | |
| 暂无模板 | |||||||
Meta App 管理
| App Name | App ID | 用途 | 备注 | 操作 |
|---|---|---|---|---|
| {{ item.app_name || '-' }} | {{ item.app_id }} | {{ item.purpose }} | {{ item.notes || '-' }} | |
| 暂无数据 | ||||
Business Manager
| BM Name | BM ID | 关联 App | Token 状态 | 返点率 | 同步状态 | 备注 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ item.bm_name || '-' }} | {{ item.bm_id }} | {{ item.app_name || '-' }} | {{ maskToken(item.system_user_token) }} 未配置 | {{ fmtPct(item.fb_rebate_rate) }}% |
{{ item.synced_account_count || 0 }} 个账户
未同步
{{ formatTime(item.last_sync_at) }} |
{{ item.notes || '-' }} | |
| 暂无数据 | |||||||
广告账户 ({{ accounts.length }} 个)
| {{ acc.account_name || '-' }} | {{ acc.account_id }} | {{ acc.status }} | {{ formatSpent(acc.amount_spent, acc.currency) }} | ||
| 空分组,从右侧拖入账户 | |||||
Shopify 店铺
| 店铺名 | 域名 | 关联账户组 | 投手 | 客服 | 客服邮箱 | 操作 |
|---|---|---|---|---|---|---|
| {{ item.store_name }} | {{ item.shopify_domain || '-' }} | {{ item.group_name }} ({{ item.group_account_count || 0 }}个) - | {{ (item._optimizers || []).map(m => m.name).join(', ') || '-' }} | {{ (item._services || []).map(m => m.name).join(', ') || '-' }} | {{ item.service_email }} (SMTP ✓) - | |
| 暂无数据 | ||||||
待审批 ({{ pendingMembers.length }})
团队成员
| 姓名 | 邮箱 | 角色 | 权限 | 关联店铺 | 操作 |
|---|---|---|---|---|---|
|
|
{{ item.email || '-' }} | {{ roleLabel(item.role) }} | 全部 广告管理 - | {{ a.store_name }}({{ a.role_type === 'optimizer' ? '投手' : '客服' }}){{ idx < item.store_access.length - 1 ? '、' : '' }} 未分配,在店铺页面设置 | |
| 暂无数据 | |||||
系统设置
飞书老板日报表
飞书员工日报表
📦 产品库飞书表(新多维表格,存上品/历史产品数据)
需把现有飞书自建应用添加为该新表格的协作者(可读),否则读不到。配好后产品库可从上品表拉「SKU → TT链接」。
🤖 AI 配置
用于「潜力广告组 → AI 分析」。Key 只存服务器、不回显;费用按调用计入你的 Anthropic 账户。
🛍️ EchoTik 配置
用于产品库抓取 EchoTik 产品/店铺链接。密码只存服务器、不回显。
显示控制
策略知识库
记录放量/减量规则与经验。AI 分析时会读取此文件作为决策依据。
操作日志
| 时间 | 操作 | 目标 | 结果 |
|---|---|---|---|
| {{ item.created_at }} | {{ item.action }} | {{ item.target }} | {{ item.result }} |
| 图片 | 图案 | 店铺 | {{ cat }} {{ skuSortAsc ? '↑' : '↓' }} | 合计 ⓘ 该图案所有 SKU 在 Shopify 的总出单件数 {{ skuSortAsc ? '↑' : '↓' }} | 花费 ⓘ 所有投放该图案的广告花费总和(Facebook Ads) {{ skuSortAsc ? '↑' : '↓' }} |
ROAS
ⓘ
Shopify 收入 ÷ 广告花费 仅计该图案对应 SKU 的收入 {{ skuSortAsc ? '↑' : '↓' }} |
|---|---|---|---|---|---|---|
|
|
{{ row.design }}
|
{{ s }}, | {{ row.categories[cat].orders }}/{{ row.categories[cat].quantity }} - | {{ row.total_orders }}/{{ row.total_quantity }} | ${{ row.ad_spend.toFixed(2) }} - | {{ row.roas.toFixed(2) }} - |
| # | 系列名 | 店铺 | 图案 | 预算 {{ adsetSortAsc ? '▲' : '▼' }} | 花费 {{ adsetSortAsc ? '▲' : '▼' }} | FB单 {{ adsetSortAsc ? '▲' : '▼' }} | 真单 {{ adsetSortAsc ? '▲' : '▼' }} | FB R {{ adsetSortAsc ? '▲' : '▼' }} | 真R {{ adsetSortAsc ? '▲' : '▼' }} | CPA {{ adsetSortAsc ? '▲' : '▼' }} | CTR {{ adsetSortAsc ? '▲' : '▼' }} | 加购 {{ adsetSortAsc ? '▲' : '▼' }} | 购本 {{ adsetSortAsc ? '▲' : '▼' }} | 信号 {{ adsetSortAsc ? '▲' : '▼' }} | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ adsetExpandedId === item.adset_id ? '▼' : '▶' }} {{ idx + 1 }} | {{ item.campaign_name }} | {{ item.store_name }} |
{{ item.design || '-' }}
|
{{ item.budget_type }} ${{ item.budget }} | ${{ item.today_spend }} | {{ item.fb_purchases || 0 }} | {{ item.design_orders }} | {{ item.fb_roas }} | {{ item.real_roas }} | ${{ item.cpa }} - | {{ item.ctr }}% - | {{ item.fb_atc_rate }}% - | ${{ item.fb_atc_cost }} - | {{ item.signal_strength }} - | |||||||
|
把当下数据 + 经验库历史发给 AI,给出操作建议
{{ aiResult[item.adset_id].model }} · {{ aiResult[item.adset_id].usage.input + aiResult[item.adset_id].usage.output }} tokens · ${{ aiResult[item.adset_id].usage.cost_usd }}
加载中...
实时窗口指标
{{ wlabel }}
花费
${{ adsetDetailCache[item.adset_id].realtime[wkey].spend }}
出单
{{ adsetDetailCache[item.adset_id].realtime[wkey].purchases }}
ROAS
{{ adsetDetailCache[item.adset_id].realtime[wkey].roas }}
无数据
7天趋势
当前预算: ${{ adsetDetailCache[item.adset_id].budget }}
连续好天: {{ adsetDetailCache[item.adset_id].trend_7d.consecutive_good }}天
7日均ROAS: {{ adsetDetailCache[item.adset_id].trend_7d.avg_roas_7d }}
建议 +{{ adsetDetailCache[item.adset_id].trend_7d.suggestion_pct }}%
观望
扩量操作:
手动改预算:
|
已执行扩量
已忽略
|
夜间扩量监控
点击"手动检测"立即扫描最新数据
| 日期 | ROAS | 预算 | 花费 | 出单 | CPA | 转化率 | CTR% | 加购 | 加购成本 | 加购率 |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ d.date.slice(5) }}今 | {{ d.roas }} | ${{ d.day_budget || item.current_budget }} | ${{ d.spend }} | {{ d.purchases }} | ${{ d.cpa }} | {{ d.cvr ? d.cvr + '%' : '-' }} | {{ d.ctr }}% | {{ d.atc }} | {{ d.atc_cost ? '$' + d.atc_cost : '-' }} | {{ d.atc_rate ? d.atc_rate + '%' : '-' }} |
|
🔗
✎
{{ ch.time_hst }} (北京{{ ch.time_bjt }})
{{ ch.by || 'FB后台' }}
${{ ch.before }} → ${{ ch.after }}
({{ ch.pct > 0 ? '+' : '' }}{{ ch.pct }}%)
决策前:
{{ ch.snap_purchases || 0 }}单 / ${{ ch.snap_spend }}
/ R{{ ch.snap_roas }}
→ 24h:
{{ ch.after_purchases }}单 / R{{ ch.after_roas }}
{{ ch.after_result === 'success' ? '✓' : '✗' }}
|
| 时间 | 店铺 | 广告组 | 图案 | 信号 | 1h | 3h | 预算变化 | 操作 | 24h ROAS |
|---|---|---|---|---|---|---|---|---|---|
|
{{ fmtBjtHst(h.trigger_time) }}
数据时段: {{ h.data_window_1h }}
{{ expDataAgeText(h.trigger_time) }}
|
{{ h.store_name }} | {{ h.adset_name }} | {{ h.design || '-' }} | {{ h.signal_strength }} | {{ h.last_1h_purchases }}单 R{{ h.last_1h_roas }} | {{ h.last_3h_purchases }}单 R{{ h.last_3h_roas }} | ${{ h.budget_before || h.current_budget }} → ${{ h.budget_after || h.new_budget }} (+{{ h.budget_change_pct }}%) ${{ h.budget_before }} → ${{ h.budget_after }} ({{ h.budget_change_pct }}%) - |
|
{{ (h.result_24h_roas || h.roas_24h_after).toFixed(2) }} - |
监控配置
| 操作前·当天 | 花费${{ e.before_spend }} | ROAS {{ e.before_roas }} |
| 操作后·当天 | 花费${{ e.after_spend }} | ROAS {{ e.after_roas }} |
| 整个当天 | 花费${{ e.day_spend }} | ROAS {{ e.day_roas }} |
| 前7天基线 | 日均${{ e.base_spend_avg }} | ROAS {{ e.base_roas }} |
| 投手 | 有效操作 | 正向 | 负向 | 中性 | 正向率 | 扩量胜率 | 缩量胜率 |
|---|---|---|---|---|---|---|---|
| {{ s.actor_name }} | {{ s.total }} | {{ s.pos }} | {{ s.neg }} | {{ s.neu }} | {{ s.pos_rate }}% | {{ s.inc_total ? s.inc_win+'% ('+s.inc_total+')' : '—' }} | {{ s.dec_total ? s.dec_win+'% ('+s.dec_total+')' : '—' }} |
* 仅统计有明确判定(正向/负向/中性)的操作;胜率括号内为该方向操作数。
| 图 | 款号 / 产品 | 品类 | 订单{{ dpOrder==='asc'?' ↑':' ↓' }} | 营收${{ dpOrder==='asc'?' ↑':' ↓' }} | 广告费${{ dpOrder==='asc'?' ↑':' ↓' }} | ROAS{{ dpOrder==='asc'?' ↑':' ↓' }} | 在投店 | 首测时间 | 链接(产品/店铺) | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ dpExpanded === (p.code || p.design) ? '▼' : '▶' }} | {{ p.design }} | {{ p.category }} | {{ p.orders }} | {{ Math.round(p.revenue).toLocaleString() }} | {{ Math.round(p.spend).toLocaleString() }} | {{ p.roas }} | {{ (p.stores||[]).filter(s=>s.is_active).length }}/{{ (p.stores||[]).length }} | {{ p.first_test_date || '—' }}* | ||||||||||||||||||||
|
各店投放明细
各广告账号(在哪个账号测的)
|
| 产品 | 品类 | 花费$ | FB ROAS | FB购买 | 订单 | 营收$ | 首测 | 最近 |
|---|---|---|---|---|---|---|---|---|
|
{{ p.title || p.design }}
{{ p.design }}
|
{{ p.category }} | {{ Math.round(p.spend).toLocaleString() }} | {{ p.fb_roas }} | {{ p.purchases }} | {{ p.orders }} | {{ Math.round(p.revenue).toLocaleString() }} | {{ p.first_date }} | {{ p.last_date }} |