-
1. 创建数据库表结构
- 在
install/目录下创建ad_network_schema.sql,包含所有 MySQL 表结构 - 创建用户体系表:
users,advertisers,publishers - 创建广告系统表:
ad_campaigns,ad_groups,ad_creatives - 创建广告位表:
publisher_websites,ad_positions - 创建财务表:
accounts,transactions,recharge_orders,withdrawals - 创建审核表:
audit_logs,audit_queue - 为所有表添加适当的索引 (phone, role, advertiser_id, status, created_at 等)
- 创建 ClickHouse 表结构脚本:
ad_impressions,ad_clicks
- 在
-
2. 实现用户与认证系统
-
2.1 创建用户注册功能
- 在
admin/下创建register.php处理用户注册 - 支持手机号 + 验证码注册流程
- 密码使用 bcrypt 加密存储
- 支持选择用户角色 (广告主/网站主)
- 在
-
2.2 实现用户登录认证
- 在
admin/下创建login.php处理登录 - 生成 JWT Token 或使用 Session 认证
- 支持连续失败 5 次锁定账户 30 分钟
- 实现忘记密码功能
- 在
-
2.3 实现 RBAC 权限控制
- 创建权限检查中间件
includes/auth.php - 实现菜单权限 (根据角色显示不同菜单)
- 实现操作权限 (检查用户是否有某操作权限)
- 实现数据权限 (广告主只能看自己的数据)
- 创建权限检查中间件
-
-
3. 实现广告主后台
-
3.1 创建广告主后台框架
- 在
admin/advertiser/创建后台页面结构 - 实现左侧导航菜单 (活动管理/创意管理/数据报表/财务管理)
- 实现顶部用户信息和消息通知
- 在
-
3.2 实现广告活动 CRUD
- 创建
campaign_list.php活动列表页 - 创建
campaign_create.php活动创建页 - 创建
campaign_edit.php活动编辑页 - 实现活动状态流转 (草稿→待审核→审核通过→投放中→已暂停→已结束)
- 实现预算验证 (总预算≥日预算×投放天数)
- 实现出价验证 (不低于最低出价)
- 创建
-
3.3 实现广告组定向设置
- 创建
adgroup_create.php广告组创建页 - 实现性别定向 (男/女/不限)
- 实现年龄定向 (18 以下/18-24/25-34/35-44/45-54/55 以上)
- 实现地域定向 (省市区三级联动选择)
- 实现投放时段设置 (周×24 小时表格选择)
- 实现设备定向 (PC/移动/平板)
- 实现操作系统定向 (Windows/macOS/iOS/Android)
- 实现浏览器定向 (Chrome/Firefox/Safari/Edge/其他)
- 实现频控设置 (单用户每日最多 N 次)
- 创建
-
3.4 实现广告创意管理
- 创建
creative_create.php创意创建页 - 支持上传图片素材 (JPG/PNG/GIF, ≤5MB)
- 支持上传视频素材 (MP4/WebM, ≤50MB, ≤60 秒)
- 支持填写标题 (≤30 字)、副标题 (≤60 字)、描述 (≤200 字)
- 支持设置落地页链接
- 实现广告预览功能
- 实现 A/B 测试多创意配置
- 创建
-
3.5 实现投放控制功能
- 实现活动暂停/恢复功能
- 实现活动预算调整
- 实现出价调整
- 实现频控调整
- 实现预算耗尽自动暂停
-
-
4. 实现网站主后台
-
4.1 创建网站主后台框架
- 在
admin/publisher/创建后台页面结构 - 实现左侧导航菜单 (网站管理/广告位管理/收益统计/提现管理)
- 在
-
4.2 实现网站接入功能
- 创建
website_list.php网站列表页 - 创建
website_add.php网站添加页 - 实现网站信息填写 (名称、域名、ICP 备案号、分类)
- 实现网站首页截图上传
- 实现网站提交审核
- 实现广告代码生成 (JS SDK 嵌入代码)
- 实现广告代码安装检测工具
- 创建
-
4.3 实现广告位管理
- 创建
position_list.php广告位列表页 - 创建
position_create.php广告位创建页 - 支持选择广告类型 (图片/代码/原生/弹窗/悬浮/视频)
- 实现广告位尺寸设置 (宽×高)
- 实现最低 CPM 出价设置
- 实现广告位可见度 (公开/私有)
- 实现广告位暂停/启用
- 实现广告位代码一键复制
- 创建
-
4.4 实现广告屏蔽规则
- 实现广告主黑名单设置
- 实现行业黑名单设置 (博彩、医疗等)
- 实现竞品域名黑名单设置
- 实现敏感词黑名单设置
- 实现仅允许指定行业白名单
-
-
5. 实现广告投放引擎 (PHP 版本)
-
5.1 创建广告请求 API
- 在
api/目录下创建ad_request.php - 实现请求参数解析 (广告位 ID、用户信息、页面信息)
- 实现请求验证 (参数完整性检查)
- 在
-
5.2 实现广告检索功能
- 创建广告检索服务类
includes/AdRetrieval.php - 根据广告位 ID 查找关联的广告活动
- 根据用户定向条件过滤广告 (地域、设备、时段等)
- 根据广告主预算过滤 (余额≥1 元)
- 根据网站主屏蔽规则过滤
- 创建广告检索服务类
-
5.3 实现 eCPM 竞价排序
- 创建竞价服务类
includes/AdAuction.php - 实现 CPM 广告 eCPM 计算 (eCPM = 出价)
- 实现 CPC 广告 eCPM 计算 (eCPM = CPC 出价×eCTR×1000)
- 实现 CPA 广告 eCPM 计算 (eCPM = CPA 出价×eCTR×eCVR×1000)
- 实现按 eCPM 降序排序取 Top 1
- 实现前 10 名候选广告保留用于备选
- 创建竞价服务类
-
5.4 实现广告返回与渲染
- 实现广告响应格式标准化
- 实现广告短链接生成
- 实现展示监测 URL 生成
- 实现点击监测 URL 生成
- 实现广告标识 ("广告"标签) 展示
-
-
6. 实现数据上报与统计
-
6.1 创建数据上报 API
- 在
api/目录下创建log_impression.php - 在
api/目录下创建log_click.php - 实现异步写入 MySQL 日志表
- 实现 Redis 实时计数更新
- 在
-
6.2 实现实时数据看板
- 创建
dashboard.php实时看板页面 - 实现今日展示量、点击量、点击率展示
- 实现今日消耗/收益展示
- 实现小时级趋势图表
- 实现实时排名 TOP10
- 实现每 5 分钟自动刷新
- 创建
-
6.3 实现历史数据报表
- 创建
report.php数据报表页面 - 实现时间范围选择 (最近 7/14/30 天/自定义)
- 实现按广告活动/广告组/创意/广告位查看数据
- 实现分省数据展示
- 实现分设备数据展示 (PC/移动/平板)
- 实现分时段热力图 (24 小时分布)
- 实现 Excel/CSV 数据导出
- 创建
-
-
7. 实现财务系统
-
7.1 创建账户管理功能
- 实现账户余额查询接口
- 实现可用余额/冻结金额/优惠券金额展示
- 在
admin/finance/创建财务管理页面
-
7.2 实现充值功能
- 创建
recharge.php充值页面 - 实现充值金额选择 (100/500/1000/5000 或自定义)
- 实现支付方式选择 (支付宝/微信/银联/线下转账)
- 实现支付订单生成
- 实现支付回调处理
- 实现充值成功通知 (短信/邮件/站内信)
- 实现充值记录查询
- 创建
-
7.3 实现消耗扣费功能
- 创建定时任务
cron/hourly_deduct.php每小时扣费 - 实现按展示量/点击量计算消耗
- 实现从账户余额扣除费用
- 实现交易流水记录
- 实现消耗预警 (余额低于 100 元/预算使用 80%)
- 实现异常消耗检测与告警
- 创建定时任务
-
7.4 实现收益结算功能
- 创建定时任务
cron/daily_settlement.php每日结算 - 实现网站主 T+1 收益入账
- 实现收益明细记录
- 实现个人所得税代扣代缴
- 创建定时任务
-
7.5 实现提现功能
- 创建
withdraw.php提现申请页面 - 实现提现账号设置 (支付宝/微信/银行卡)
- 实现最低提现门槛检查 (100 元)
- 实现提现申请提交
- 创建
withdraw_audit.php提现审核页面 - 实现提现打款记录
- 创建
-
7.6 实现财务对账功能
- 创建
finance_reconciliation.php对账页面 - 实现每日收支日报生成
- 实现充值订单与支付渠道对账
- 实现长短款差异报表
- 创建
-
-
8. 实现审核系统
-
8.1 创建审核员后台
- 在
admin/audit/创建审核后台框架 - 实现左侧导航 (广告审核/网站审核/提现审核)
- 在
-
8.2 实现广告审核功能
- 创建
ad_audit.php广告审核页面 - 实现审核任务分配 (轮流分配)
- 实现广告素材、落地页、定向设置展示
- 实现审核通过/驳回操作
- 实现驳回理由填写
- 实现敏感词自动检测高亮
- 实现审核时长统计 (4 小时内完成)
- 创建
-
8.3 实现网站审核功能
- 创建
website_audit.php网站审核页面 - 实现网站信息、截图、访问量展示
- 实现 ICP 备案查询链接
- 实现审核通过/驳回操作
- 创建
-
-
9. 实现反作弊系统 (基础版)
-
9.1 创建 IP 频控功能
- 实现同一 IP 每小时超过 100 次访问标记
- 使用 Redis 记录 IP 访问频率
- 实现作弊请求返回空广告
-
9.2 实现 User-Agent 检测
- 创建 UA 检测工具类
includes/UADetector.php - 实现空 UA 检测
- 实现已知爬虫 UA 识别
- 实现异常 UA 标记
- 创建 UA 检测工具类
-
9.3 实现点击模式检测
- 实现连续点击检测
- 实现点击位置固定检测
- 实现 CTR 异常检测 (高于行业均值 3 倍)
-
9.4 创建黑名单管理
- 创建
blacklist.php黑名单管理页面 - 实现 IP 黑名单 CRUD
- 实现设备黑名单 CRUD
- 实现用户黑名单 CRUD
- 支持批量导入导出
- 创建
-
-
10. 实现 JS SDK
- 在
assets/js/下创建ad-sdk.js - 实现广告请求函数 (发送 position_code, user_info)
- 实现广告渲染函数 (根据返回数据渲染)
- 实现展示上报函数 (广告展示时触发)
- 实现点击上报函数 (广告点击时触发)
- 实现异常降级处理 (请求失败时显示备用广告)
- 实现防重复加载 (同一页面不重复请求)
- 控制 SDK 体积≤50KB (压缩后)
- 在
-
11. 检查点 - 确保所有测试通过
- 数据库表结构创建完成
- 用户注册/登录流程可正常使用
- 广告主可创建广告活动并提交审核
- 网站主可接入网站并创建广告位
- 广告请求 API 正常返回广告数据
- 数据上报正常记录到数据库
- 财务充值/消耗/提现流程完整
- 审核员可正常审核广告和网站
- 如有疑问请询问用户
-
12. 系统集成与部署
-
12.1 配置 API 路由
- 在
includes/下创建routes.php统一管理 API 路由 - 实现请求拦截和权限验证
- 实现错误码统一返回格式
- 在
-
12.2 配置 Redis 缓存
- 实现 Redis 连接配置
includes/redis.php - 实现广告数据缓存策略
- 实现频控计数缓存
- 实现实时数据缓存
- 实现 Redis 连接配置
-
12.3 部署 JS SDK 到 CDN
- 配置静态资源 CDN 加速
- 实现 SDK 版本管理
-
12.4 系统联调测试
- 完整流程测试 (注册→充值→创建广告→审核→投放→数据上报)
- 性能测试 (广告请求响应时间≤100ms)
- 压力测试 (模拟高并发请求)
-