# 19 广告系统业务闭环 v1.0 > 本文档包含广告系统的完整设计:维度体系、数据库结构、后端服务、前端组件、数据源抽象、订阅等级、AI权限、交叉学习架构 --- ## 1️⃣ 广告系统概述 ### 1.1 系统定位 广告系统是**业务核心页**,直接影响利润放大。系统需要: - 管理多平台广告(Amazon/TikTok/Shopee/eBay等) - 提供AI驱动的优化建议 - 支持人工与AI协作决策 - 记录运营经验实现跨平台学习 ### 1.2 核心理念 | 理念 | 说明 | |------|------| | **AI建议一直有** | 不管什么订阅等级,AI建议永不中断 | | **AI执行看等级** | 能不能自动执行,看用户付费多少 | | **数据分层索引** | AI处理能力有限,数据要分层索引/模型化 | | **跨平台学习** | 通用指标交叉学习,平台专用指标独立学习 | --- ## 2️⃣ 广告维度体系(四层结构) ### 2.1 维度层级图 ``` ┌─────────────────────────────────────────────────────────┐ │ 📊 最终结果层:实际消耗 / 实际营收 / 净收益 / ROI │ └─────────────────────────────────────────────────────────┘ ↑ ┌─────────────────────────────────────────────────────────┐ │ 1️⃣ 广告计划维度(Campaign Level) │ │ 预算/消耗/收入/ROI/ROAS/订单数/开始时间 │ └─────────────────────────────────────────────────────────┘ ↑ ┌─────────────────────────────────────────────────────────┐ │ 2️⃣ 商品维度(Product Level)← 你刚补充的 │ │ 商品图片/名称/状态/消耗/订单数/收入/ROI │ └─────────────────────────────────────────────────────────┘ ↑ ┌─────────────────────────────────────────────────────────┐ │ 3️⃣ 素材维度(Creative Level) │ │ 创意ID/视频指标/CTR/CVR/完播率 │ └─────────────────────────────────────────────────────────┘ ↑ ┌─────────────────────────────────────────────────────────┐ │ 4️⃣ 人工操作维度(Human Operation Level) │ │ 运营经验/干预成功率/响应时间/操作记录 │ └─────────────────────────────────────────────────────────┘ ``` ### 2.2 第一层:广告计划维度(Campaign) | 字段 | 类型 | 说明 | |------|------|------| | campaignId | string | 广告计划唯一ID | | campaignName | string | 广告计划名称 | | status | enum | ACTIVE/PAUSED/ENDED/DRAFTED | | roasBid | decimal | ROAS出价(目标ROAS) | | targetRoi | decimal | 目标ROI | | budget | decimal | 预算 | | dailyBudget | decimal | 日预算 | | netSpend | decimal | 净花费 | | totalSpend | decimal | 总花费 | | totalRevenue | decimal | 总收入 | | totalOrders | integer | 总订单数 | | avgOrderCost | decimal | 平均订单成本 = 净花费/订单数 | | roi | decimal | ROI = 总收入/总花费 | | startDate | date | 开始时间 | | endDate | date | 结束时间 | | platform | enum | AMAZON/TIKTOK/SHOPEE/EBUY等 | | shopId | string | 店铺ID | | advertiserName | string | 广告主名称 | ### 2.3 第二层:商品维度(Product) | 字段 | 类型 | 说明 | |------|------|------| | productId | string | 商品ID | | productName | string | 商品名称 | | productImage | string | 商品图片URL | | campaignId | string | 所属广告计划ID | | seriesName | string | 推广系列名称 | | status | enum | ACTIVE/PAUSED | | spend | decimal | 该商品消耗金额 | | orders | integer | 该商品订单数 | | avgOrderCost | decimal | 平均订单成本 | | revenue | decimal | 该商品收入 | | roi | decimal | 该商品ROI | | shopName | string | 店铺名称 | | advertiserName | string | 广告主名称 | ### 2.4 第三层:素材维度(Creative) | 字段 | 类型 | 说明 | |------|------|------| | creativeId | string | 创意ID | | seriesId | string | 推广系列ID | | seriesName | string | 推广系列名称 | | productId | string | 商品ID | | statDate | date | 统计日期 | | spend | decimal | 消耗金额 | | orderCost | decimal | 单订单成本 | | revenue | decimal | 总收入 | | roi | decimal | 投资回报率 | | currency | enum | USD/CNY/EUR等 | | orders | integer | 订单数 | | productCtr | decimal | 商品点击率 = clicks/impressions | | productClicks | integer | 商品点击数 | | productImpressions | integer | 商品展示数 | | adCtr | decimal | 广告点击率 | | adCvr | decimal | 广告转化率 | | videoWatch2s | decimal | 2秒视频观看率(TikTok) | | videoWatch6s | decimal | 6秒视频观看率(TikTok) | | videoWatch25 | decimal | 25%视频观看率 | | videoWatch50 | decimal | 50%视频观看率 | | videoWatch75 | decimal | 75%视频观看率 | | videoWatch100 | decimal | 100%视频观看率 | | creativeStatus | enum | 投放中/暂停/结束 | | shopName | string | 店铺名称 | | advertiserName | string | 广告主名称 | ### 2.5 第四层:人工操作维度(Human Operation) | 字段 | 类型 | 说明 | |------|------|------| | operatorId | string | 操作人ID | | operatorName | string | 操作人名称 | | operateTime | datetime | 操作时间 | | operateType | enum | 启动/暂停/调预算/调出价/换素材/审核通过/审核拒绝等 | | targetType | enum | 广告计划/商品/素材 | | targetId | string | 操作对象ID | | beforeValue | json | 操作前的值 | | afterValue | json | 操作后的值 | | reason | string | 操作原因 | | expectedEffect | string | 预期效果 | | actualEffect | json | 实际效果(事后回填) | | success | boolean | 是否成功(事后评估) | **操作类型枚举:** | 类型 | 说明 | |------|------| | RESUME | 启动广告 | | PAUSE | 暂停广告 | | ADJUST_BUDGET | 调整预算 | | ADJUST_BID | 调整出价 | | CHANGE_CREATIVE | 更换素材 | | APPROVE | 审核通过 | | REJECT | 审核拒绝 | | CHANGE_SCHEDULE | 修改投放时间 | | ADD_KEYWORDS | 添加关键词 | | REMOVE_KEYWORDS | 删除关键词 | --- ## 3️⃣ 数据库设计(cf_ad_* 表结构) ### 3.1 表清单 | 表名 | 说明 | |------|------| | cf_ad_campaign | 广告计划表 | | cf_ad_product | 广告商品表 | | cf_ad_creative | 广告素材表 | | cf_ad_human_operation | 人工操作记录表 | | cf_ad_platform_metrics | 平台原始指标表(每日) | | cf_ad_ai_suggestion | AI建议记录表 | ### 3.2 cf_ad_campaign(广告计划表) ```sql CREATE TABLE cf_ad_campaign ( id VARCHAR(36) PRIMARY KEY, tenant_id VARCHAR(36) NOT NULL COMMENT '租户ID', shop_id VARCHAR(36) NOT NULL COMMENT '店铺ID', campaign_id VARCHAR(64) NOT NULL COMMENT '平台广告计划ID', campaign_name VARCHAR(256) NOT NULL COMMENT '广告计划名称', platform VARCHAR(32) NOT NULL COMMENT '平台:AMAZON/TIKTOK/SHOPEE等', status ENUM('DRAFTED','ACTIVE','PAUSED','ENDED') DEFAULT 'DRAFTED', budget DECIMAL(12,2) DEFAULT 0 COMMENT '总预算', daily_budget DECIMAL(12,2) DEFAULT 0 COMMENT '日预算', roas_bid DECIMAL(10,4) DEFAULT 0 COMMENT 'ROAS出价', target_roi DECIMAL(10,4) DEFAULT 0 COMMENT '目标ROI', net_spend DECIMAL(12,2) DEFAULT 0 COMMENT '净花费', total_spend DECIMAL(12,2) DEFAULT 0 COMMENT '总花费', total_revenue DECIMAL(12,2) DEFAULT 0 COMMENT '总收入', total_orders INT DEFAULT 0 COMMENT '总订单数', avg_order_cost DECIMAL(10,2) DEFAULT 0 COMMENT '平均订单成本', roi DECIMAL(10,4) DEFAULT 0 COMMENT 'ROI', start_date DATE COMMENT '开始时间', end_date DATE COMMENT '结束时间', advertiser_name VARCHAR(128) COMMENT '广告主名称', ai_confidence DECIMAL(5,4) DEFAULT 1.0 COMMENT 'AI信心指数', last_optimized_at DATETIME COMMENT '最后优化时间', created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, UNIQUE KEY uk_tenant_campaign (tenant_id, campaign_id, platform), INDEX idx_tenant_shop (tenant_id, shop_id), INDEX idx_platform_status (platform, status) ) COMMENT='广告计划表'; ``` ### 3.3 cf_ad_product(广告商品表) ```sql CREATE TABLE cf_ad_product ( id VARCHAR(36) PRIMARY KEY, tenant_id VARCHAR(36) NOT NULL, shop_id VARCHAR(36) NOT NULL, campaign_id VARCHAR(36) NOT NULL COMMENT '关联广告计划', product_id VARCHAR(64) NOT NULL COMMENT '商品ID', product_name VARCHAR(256) COMMENT '商品名称', product_image VARCHAR(512) COMMENT '商品图片', series_name VARCHAR(128) COMMENT '推广系列名称', status ENUM('ACTIVE','PAUSED') DEFAULT 'ACTIVE', spend DECIMAL(12,2) DEFAULT 0 COMMENT '消耗', orders INT DEFAULT 0 COMMENT '订单数', avg_order_cost DECIMAL(10,2) DEFAULT 0 COMMENT '平均订单成本', revenue DECIMAL(12,2) DEFAULT 0 COMMENT '收入', roi DECIMAL(10,4) DEFAULT 0 COMMENT 'ROI', shop_name VARCHAR(128) COMMENT '店铺名称', advertiser_name VARCHAR(128) COMMENT '广告主名称', created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, UNIQUE KEY uk_campaign_product (campaign_id, product_id), INDEX idx_tenant_shop (tenant_id, shop_id) ) COMMENT='广告商品表'; ``` ### 3.4 cf_ad_creative(广告素材表) ```sql CREATE TABLE cf_ad_creative ( id VARCHAR(36) PRIMARY KEY, tenant_id VARCHAR(36) NOT NULL, campaign_id VARCHAR(36) NOT NULL, product_id VARCHAR(36) NOT NULL, creative_id VARCHAR(64) NOT NULL COMMENT '平台素材ID', series_id VARCHAR(64) COMMENT '推广系列ID', series_name VARCHAR(128) COMMENT '推广系列名称', creative_url VARCHAR(512) COMMENT '素材URL', creative_type ENUM('IMAGE','VIDEO') DEFAULT 'IMAGE', status ENUM('RUNNING','PAUSED','ENDED') DEFAULT 'RUNNING', spend DECIMAL(12,2) DEFAULT 0, revenue DECIMAL(12,2) DEFAULT 0, roi DECIMAL(10,4) DEFAULT 0, currency VARCHAR(8) DEFAULT 'USD', orders INT DEFAULT 0, product_ctr DECIMAL(8,4) DEFAULT 0 COMMENT '商品点击率', product_clicks INT DEFAULT 0, product_impressions INT DEFAULT 0, ad_ctr DECIMAL(8,4) DEFAULT 0, ad_cvr DECIMAL(8,4) DEFAULT 0, video_watch_2s DECIMAL(8,4) DEFAULT 0 COMMENT '2秒观看率', video_watch_6s DECIMAL(8,4) DEFAULT 0, video_watch_25 DECIMAL(8,4) DEFAULT 0, video_watch_50 DECIMAL(8,4) DEFAULT 0, video_watch_75 DECIMAL(8,4) DEFAULT 0, video_watch_100 DECIMAL(8,4) DEFAULT 0, shop_name VARCHAR(128), advertiser_name VARCHAR(128), created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, UNIQUE KEY uk_campaign_creative (campaign_id, creative_id), INDEX idx_product (product_id) ) COMMENT='广告素材表'; ``` ### 3.5 cf_ad_human_operation(人工操作记录表) ```sql CREATE TABLE cf_ad_human_operation ( id VARCHAR(36) PRIMARY KEY, tenant_id VARCHAR(36) NOT NULL, operator_id VARCHAR(36) NOT NULL, operator_name VARCHAR(64) NOT NULL, operate_time DATETIME NOT NULL, operate_type ENUM('RESUME','PAUSE','ADJUST_BUDGET','ADJUST_BID','CHANGE_CREATIVE', 'APPROVE','REJECT','CHANGE_SCHEDULE','ADD_KEYWORDS','REMOVE_KEYWORDS') NOT NULL, target_type ENUM('CAMPAIGN','PRODUCT','CREATIVE') NOT NULL, target_id VARCHAR(36) NOT NULL, before_value JSON COMMENT '操作前值', after_value JSON COMMENT '操作后值', reason TEXT COMMENT '操作原因', expected_effect TEXT COMMENT '预期效果', actual_effect JSON COMMENT '实际效果', success BOOLEAN COMMENT '是否成功', evaluated_at DATETIME COMMENT '评估时间', created_at DATETIME DEFAULT CURRENT_TIMESTAMP, INDEX idx_tenant_operator (tenant_id, operator_id), INDEX idx_target (target_type, target_id), INDEX idx_operate_time (operate_time) ) COMMENT='人工操作记录表'; ``` ### 3.6 cf_ad_ai_suggestion(AI建议记录表) ```sql CREATE TABLE cf_ad_ai_suggestion ( id VARCHAR(36) PRIMARY KEY, tenant_id VARCHAR(36) NOT NULL, shop_id VARCHAR(36) NOT NULL, campaign_id VARCHAR(36), product_id VARCHAR(36), creative_id VARCHAR(36), suggestion_type ENUM('RESUME','PAUSE','ADJUST_BUDGET','ADJUST_BID', 'CHANGE_CREATIVE','CREATE','DELETE') NOT NULL, target_type ENUM('CAMPAIGN','PRODUCT','CREATIVE') NOT NULL, target_id VARCHAR(36) NOT NULL, current_value JSON NOT NULL COMMENT '当前值', suggested_value JSON NOT NULL COMMENT '建议值', confidence DECIMAL(5,4) NOT NULL COMMENT '置信度 0-1', risk_level ENUM('LOW','MEDIUM','HIGH','CRITICAL') DEFAULT 'LOW', estimated_impact JSON COMMENT '预估影响', reason TEXT COMMENT 'AI推理原因', status ENUM('PENDING','APPROVED','REJECTED','EXECUTED','EXPIRED') DEFAULT 'PENDING', required_action ENUM('AUTO_EXECUTE','PENDING_REVIEW','AUTO_REJECT') DEFAULT 'PENDING_REVIEW', reviewed_by VARCHAR(36), reviewed_at DATETIME, executed_at DATETIME, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, INDEX idx_tenant_campaign (tenant_id, campaign_id), INDEX idx_status (status), INDEX idx_required_action (required_action) ) COMMENT='AI建议记录表'; ``` --- ## 4️⃣ 后端API结构 ### 4.1 Controller层 ``` server/src/api/controllers/ ├── AdController.ts # 广告计划CRUD ├── AdProductController.ts # 广告商品CRUD ├── AdCreativeController.ts # 广告素材CRUD ├── AdOperationController.ts # 人工操作记录 └── AdAnalyticsController.ts # 数据分析 ``` ### 4.2 Service层 ``` server/src/services/ ├── AdCampaignService.ts # 广告计划服务 ├── AdProductService.ts # 广告商品服务 ├── AdCreativeService.ts # 广告素材服务 ├── AdHumanOperationService.ts # 人工操作服务 ├── AdAnalyticsService.ts # 数据分析服务 └── AdAIRecommendationService.ts # AI建议服务 ``` ### 4.3 核心API接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/v1/ad/campaigns | 获取广告计划列表 | | POST | /api/v1/ad/campaigns | 创建广告计划 | | GET | /api/v1/ad/campaigns/:id | 获取广告计划详情 | | PUT | /api/v1/ad/campaigns/:id | 更新广告计划 | | PUT | /api/v1/ad/campaigns/:id/status | 更新广告状态 | | POST | /api/v1/ad/campaigns/:id/resume | 启动广告 | | POST | /api/v1/ad/campaigns/:id/pause | 暂停广告 | | GET | /api/v1/ad/campaigns/:id/products | 获取广告商品列表 | | GET | /api/v1/ad/campaigns/:id/analytics | 获取广告分析数据 | | GET | /api/v1/ad/ai-suggestions | 获取AI建议列表 | | POST | /api/v1/ad/ai-suggestions/:id/approve | 审批AI建议 | | POST | /api/v1/ad/ai-suggestions/:id/reject | 拒绝AI建议 | | GET | /api/v1/ad/operations | 获取操作记录 | | POST | /api/v1/ad/operations | 记录人工操作 | ### 4.4 Service接口定义 ```typescript // AdCampaignService.ts export class AdCampaignService { // 基础CRUD static async createCampaign(params: CreateCampaignParams): Promise; static async getCampaignById(id: string): Promise; static async updateCampaign(id: string, updates: Partial): Promise; static async deleteCampaign(id: string): Promise; // 状态操作 static async resumeCampaign(id: string, userId: string): Promise; static async pauseCampaign(id: string, userId: string): Promise; // 查询 static async listCampaigns(tenantId: string, shopId: string, filters?: CampaignFilters): Promise; static async getCampaignAnalytics(id: string, dateRange: DateRange): Promise; // AI相关 static async getAISuggestions(campaignId: string): Promise; static async applyAISuggestion(suggestionId: string, approved: boolean, userId: string): Promise; } ``` --- ## 5️⃣ 前端组件结构 ### 5.1 页面结构 ``` dashboard/src/pages/Ad/ ├── index.tsx # 广告主页 ├── CampaignList.tsx # 广告计划列表 ├── CampaignDetail.tsx # 广告计划详情 ├── ProductList.tsx # 广告商品列表 ├── CreativeList.tsx # 广告素材列表 ├── AIOptimization/ # AI优化模块 │ ├── index.tsx # AI优化主页 │ ├── SuggestionList.tsx # 建议列表 │ └── SuggestionDetail.tsx # 建议详情 ├── Analytics/ # 数据分析模块 │ ├── index.tsx # 分析主页 │ ├── PerformanceChart.tsx # 效果图表 │ └── TrendAnalysis.tsx # 趋势分析 └── OperationLog/ # 操作记录模块 └── index.tsx # 操作日志 ``` ### 5.2 DataSource抽象层 ```typescript // dashboard/src/services/adDataSource.ts // ==================== 类型定义 ==================== export interface AdCampaign { id: string; campaignName: string; platform: Platform; status: CampaignStatus; budget: number; spend: number; revenue: number; roi: number; // ... 其他字段 } export interface AdProduct { id: string; productId: string; productName: string; productImage: string; campaignId: string; status: ProductStatus; spend: number; orders: number; revenue: number; roi: number; } export interface AdCreative { id: string; creativeId: string; productId: string; creativeUrl: string; creativeType: 'IMAGE' | 'VIDEO'; status: CreativeStatus; spend: number; orders: number; roi: number; videoMetrics?: VideoMetrics; } export interface AISuggestion { id: string; suggestionType: SuggestionType; targetType: 'CAMPAIGN' | 'PRODUCT' | 'CREATIVE'; targetId: string; currentValue: any; suggestedValue: any; confidence: number; riskLevel: RiskLevel; status: SuggestionStatus; } // ==================== DataSource接口 ==================== export interface IAdDataSource { // 广告计划 fetchCampaigns(params?: CampaignQueryParams): Promise; fetchCampaignById(id: string): Promise; createCampaign(data: CreateCampaignData): Promise; updateCampaign(id: string, data: UpdateCampaignData): Promise; resumeCampaign(id: string): Promise; pauseCampaign(id: string): Promise; // 广告商品 fetchProductsByCampaign(campaignId: string): Promise; // 广告素材 fetchCreativesByProduct(productId: string): Promise; // AI建议 fetchAISuggestions(campaignId?: string): Promise; approveSuggestion(id: string): Promise; rejectSuggestion(id: string): Promise; // 分析数据 fetchCampaignAnalytics(campaignId: string, dateRange: DateRange): Promise; // 操作记录 fetchOperations(params?: OperationQueryParams): Promise; recordOperation(data: OperationRecordData): Promise; } ``` --- ## 6️⃣ 订阅等级与AI权限映射 ### 6.1 订阅等级定义 | 等级 | 说明 | 典型用户 | |------|------|---------| | FREE | 免费版 | 个人卖家/试用用户 | | BASIC | 基础版 | 小型卖家 | | PROFESSIONAL | 专业版 | 中型卖家 | | ENTERPRISE | 企业版 | 大型卖家/代理商 | ### 6.2 AI权限映射 | 功能 | FREE | BASIC | PROFESSIONAL | ENTERPRISE | |------|------|-------|--------------|------------| | AI建议 | ✅ 始终有 | ✅ 始终有 | ✅ 始终有 | ✅ 始终有 | | 广告计划创建 | 人工 | 人工 | AI辅助 | AI自动 | | 广告启动/暂停 | 人工 | 人工+低风险AI | AI中风险 | AI高风险 | | 预算调整 | 人工 | ≤1000自动 | ≤10000自动 | 无限制 | | 素材更换 | 人工 | 人工 | AI辅助 | AI自动 | | 数据分析深度 | 基础 | 进阶 | 高级 | 全部 | | 跨平台学习 | ❌ | ❌ | ✅ | ✅ | | 自定义阈值 | ❌ | ❌ | ✅ | ✅ | ### 6.3 阈值配置示例 ```typescript const AI_PERMISSION_CONFIG = { FREE: { autoExecuteConfidence: 1.0, // 必须100%置信度(实际上不可能) maxAutoBudget: 0, allowedRiskLevels: [], requireHumanApproval: true, }, BASIC: { autoExecuteConfidence: 0.95, maxAutoBudget: 1000, allowedRiskLevels: ['LOW'], requireHumanApproval: true, }, PROFESSIONAL: { autoExecuteConfidence: 0.80, maxAutoBudget: 10000, allowedRiskLevels: ['LOW', 'MEDIUM'], requireHumanApproval: false, }, ENTERPRISE: { autoExecuteConfidence: 0.55, maxAutoBudget: Infinity, allowedRiskLevels: ['LOW', 'MEDIUM', 'HIGH', 'CRITICAL'], requireHumanApproval: false, }, }; ``` --- ## 7️⃣ 交叉学习架构 ### 7.1 设计原则 | 原则 | 说明 | |------|------| | 通用指标交叉学习 | spend/revenue/orders/roi/ctr/cvr 所有平台通用 | | 平台专用指标独立学习 | video_watch_*/acos等只在对应平台学习 | | 分层模型架构 | 通用层 → 平台专用层 | ### 7.2 交叉学习架构图 ``` ┌─────────────────────────────────────────────────────────────┐ │ 数据输入层 │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │Amazon │ │ TikTok │ │ Shopee │ │ eBay │ │ │ │ 数据 │ │ 数据 │ │ 数据 │ │ 数据 │ │ │ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │ └───────┼───────────┼───────────┼───────────┼────────────────┘ ↓ ↓ ↓ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 指标提取层 │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 通用指标提取 │ │ │ │ spend, revenue, orders, roi, ctr, cvr │ │ │ │ → 进入跨平台学习池 │ │ │ └─────────────────────────────────────────────────────┘ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Amazon专用 │ │ TikTok专用 │ │ Shopee专用 │ │ │ │ ACoS指标 │ │ 视频指标 │ │ 平台互动指标 │ │ │ │ → 独立学习 │ │ → 独立学习 │ │ → 独立学习 │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 模型训练层 │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 跨平台通用模型 │ │ │ │ 学到:预算分配原则/出价策略/效果预测 │ │ │ └─────────────────────────────────────────────────────┘ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Amazon模型 │ │ TikTok模型 │ │ Shopee模型 │ │ │ │ ACoS优化 │ │ 视频优化 │ │ 互动优化 │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 建议输出层 │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 通用建议:预算怎么分/要不要暂停/要不要加投 │ │ │ └─────────────────────────────────────────────────────┘ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │Amazon建议 │ │TikTok建议 │ │Shopee建议 │ │ │ │ 降低ACoS │ │ 优化视频开头 │ │ 提高互动率 │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` ### 7.3 维度索引/模型 | 索引/模型 | 说明 | AI调用场景 | |-----------|------|-----------| | campaign_aggregation | 广告计划聚合统计 | 需要计划级汇总时 | | product_ranking | 商品效果排序 | 需要商品级排名时 | | creative_scoring | 素材效能评分 | 需要素材对比时 | | human_experience | 运营经验提取 | 需要学习人工策略时 | | time_series_trend | 时间序列趋势 | 需要看周期性规律时 | --- ## 8️⃣ 决策流程与人工介入点 ### 8.1 完整业务流程 ``` ┌─────────────────────────────────────────────────────────────┐ │ 1️⃣ 创建产品(本地库) │ │ 人工/系统创建 → 本地产品表 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 2️⃣ 复制产品 │ │ 手动触发 或 广告需要时自动触发 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 3️⃣ 一对多刊登 │ │ 单平台×多产品 / 多平台×多产品 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 4️⃣ AI换图 │ │ 自动生成5倍主图+详情图 → 人工确认 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 5️⃣ 创建广告计划 │ │ 人工确认预算/关键词 → PENDING_REVIEW(预算>10000) │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 6️⃣ 广告启停 │ │ AI监控数据 → 给出建议 → 人工确认/执行 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 7️⃣ 人工操作记录 │ │ 记录操作 → 评估效果 → 学习经验 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 📊 最终结果:实际消耗 / 实际营收 / ROI │ └─────────────────────────────────────────────────────────────┘ ``` ### 8.2 人工介入点汇总 | 阶段 | 介入条件 | 介入原因 | |------|---------|---------| | 产品复制 | 无API平台 | AI无法自动操作 | | AI换图 | 生成完成 | 确认图片质量 | | 创建广告 | 预算>10000 | 金额大需确认 | | 广告启停 | 置信度55-80% | AI拿不准 | | 广告重建 | 始终 | 新决策需确认 | | 素材更换 | 始终 | 人工确认素材 | | **批量操作** | **看订阅等级** | **AI可能接管** | ### 8.3 AI批量操作接管逻辑 #### 8.3.1 批量操作AI接管原则 | 操作类型 | AI可接管 | 条件 | |----------|---------|------| | 修改价格 | ✅ | 订阅等级 ≥ BASIC + 置信度 ≥ 阈值 | | 修改库存 | ✅ | 订阅等级 ≥ BASIC + 置信度 ≥ 阈值 | | 修改标题 | ✅ | 订阅等级 ≥ PROFESSIONAL + AI生成 | | 修改类目 | ❌ | 始终人工(涉及分类逻辑) | | 修改包装重量/尺寸 | ✅ | 订阅等级 ≥ BASIC | | 修改是否到货付款 | ❌ | 始终人工(涉及风控) | | 修改Seller SKU | ❌ | 始终人工(涉及映射) | | **批量上架** | ✅ | 订阅等级 ≥ PROFESSIONAL + AI分析通过 | | **批量下架** | ✅ | 订阅等级 ≥ PROFESSIONAL + AI分析通过 | #### 8.3.2 批量操作AI流程 ``` 用户发起批量操作 ↓ ┌─────────────────────────────────────┐ │ 判断:订阅等级 ≥ BASIC? │ ├──────────────┬──────────────────────┤ │ 是 │ 否 │ ↓ ↓ AI分析数据 人工执行 + 生成建议 (无AI介入) ↓ ┌─────────────────────────────────────┐ │ 判断:置信度 ≥ 阈值? │ ├──────────────┬──────────────────────┤ │ 是 │ 否 │ ↓ ↓ AI自动执行 人工确认 + 记录经验 + 记录经验 ↓ AI学习这次操作 ``` #### 8.3.3 批量操作统一入口 所有批量操作统一在 **OperationAgent(AI运营中心)** 执行: ``` pages/OperationAgent/ ├── components/ │ ├── ProductBatch/ │ │ ├── BatchEditModal.tsx # 批量编辑(价格/库存/标题等) │ │ ├── BatchListingModal.tsx # 批量上架 │ │ └── BatchDelistModal.tsx # 批量下架 │ ├── AdBatch/ │ │ ├── AdCreateModal.tsx # 新建广告 │ │ ├── AdBatchResume.tsx # 批量启动 │ │ └── AdBatchPause.tsx # 批量暂停 │ ├── AISuggestionList.tsx # AI建议 │ └── HumanOperationLog.tsx # 人工操作记录 ``` **产品页面只保留:列表查看 + 详情查看,禁止放置任何操作功能** #### 8.3.4 批量操作类型定义 ```typescript enum BatchOperationType { // 产品批量操作 BATCH_EDIT_PRICE = 'BATCH_EDIT_PRICE', // 批量修改价格 BATCH_EDIT_INVENTORY = 'BATCH_EDIT_INVENTORY', // 批量修改库存 BATCH_EDIT_TITLE = 'BATCH_EDIT_TITLE', // 批量修改标题 BATCH_EDIT_CATEGORY = 'BATCH_EDIT_CATEGORY', // 批量修改类目 BATCH_EDIT_PACKAGE_WEIGHT = 'BATCH_EDIT_PACKAGE_WEIGHT', // 批量修改包装重量 BATCH_EDIT_PACKAGE_SIZE = 'BATCH_EDIT_PACKAGE_SIZE', // 批量修改包装尺寸 BATCH_EDIT_COD = 'BATCH_EDIT_COD', // 批量修改到货付款 BATCH_EDIT_SELLER_SKU = 'BATCH_EDIT_SELLER_SKU', // 批量修改Seller SKU BATCH_LISTING = 'BATCH_LISTING', // 批量上架 BATCH_DELIST = 'BATCH_DELIST', // 批量下架 // 广告批量操作 BATCH_AD_CREATE = 'BATCH_AD_CREATE', // 批量创建广告 BATCH_AD_RESUME = 'BATCH_AD_RESUME', // 批量启动广告 BATCH_AD_PAUSE = 'BATCH_AD_PAUSE', // 批量暂停广告 BATCH_AD_ADJUST_BUDGET = 'BATCH_AD_ADJUST_BUDGET', // 批量调整预算 BATCH_AD_CHANGE_CREATIVE = 'BATCH_AD_CHANGE_CREATIVE', // 批量更换素材 } ``` ### 8.4 AI建议 → 人工确认流程 ``` AI分析数据 ↓ ┌─────────────────────────────────────┐ │ 置信度 ≥ 阈值(按订阅等级)? │ ├──────────────┬──────────────────────┤ │ 是 │ 否 │ ↓ ↓ AI自动执行 推送给用户 (按订阅等级) 人工确认 ↓ ┌──────┴──────┐ ✅ 确认 ❌ 拒绝 ↓ ↓ 执行 记录拒绝 ``` --- ## 9️⃣ 术语表 | 术语 | 说明 | |------|------| | ROAS | Return on Ad Spend,广告支出回报率 = 收入/支出 | | ACoS | Advertising Cost of Sales,广告成本销售比 = 支出/收入 | | CTR | Click Through Rate,点击率 = 点击/展示 | | CVR | Conversion Rate,转化率 = 转化/点击 | | CPA | Cost Per Acquisition,获客成本 = 支出/订单 | | CPC | Cost Per Click,点击成本 = 支出/点击 | | SKU | Stock Keeping Unit,库存单位 | | Creative | 广告素材(图片/视频) | | Campaign | 广告计划/广告系列 | --- ## 🔟 参考文档 | 文档 | 路径 | |------|------| | AI自动化域 | docs/loops/10_AI_Automation.md | | 广告页面前端 | docs/archive/01_Architecture/frontend/03_Ad.md | | 后端广告服务 | docs/archive/00_Business/tasks/backend/08_advertisement.md | | 统一类型管理 | docs/archive/01_Architecture/16_Unified_Type_Management.md | --- *本文档为 v1.1 版本,包含AI批量操作接管逻辑*