渠道管理
引用文件
本文引用的文件
- ChannelApi.java
- ChannelApiImpl.java
- ChannelServiceImpl.java
- ChannelRedisDAO.java
- ChannelDO.java
- ChannelRespDTO.java
- LauncherIndexChanelService.java
- LauncherIndexChanelServiceImpl.java
- LauncherIndexChanelNoBpmServiceImpl.java
- LauncherIndexChanelController.java
- RuleApprovalChangeRespDTO.java
- 04-机顶盒请求.md
- 06-业务系统交互指南.md
- 设备型号活跃数据分析_SQL指南.md
目录
简介
本文件面向渠道管理系统,围绕以下目标展开:
- 渠道配置机制:渠道基本信息维护、渠道属性设置、渠道状态管理
- 流量分配算法:基于权重、优先级、时间段的智能流量调度策略
- 渠道监控体系:实时流量统计、异常告警、质量评估等监控指标
- 收益结算流程:按 CPM、CPC、CPA 等不同计费模式的结算规则与自动化结算机制
- 渠道 API 接口文档与 SDK 使用指南
- 最佳实践与常见问题解决方案
- 与广告投放系统的集成关系与数据同步机制
项目结构
渠道管理涉及设备侧渠道能力与投放侧广告位渠道关联两大维度:
- 设备侧:提供渠道 RPC 接口,支持渠道数据查询与版本更新,保障任务下发一致性
- 投放侧:广告位与渠道的关联管理,支撑流量调度与规则匹配
- 规则引擎:基于 MAC/渠道/业务类型/地区等多维条件进行规则匹配与业务下发
- 数据分析:提供渠道来源质量对比与复活率等指标,辅助收益与质量评估
图表来源
- ChannelApi.java
- ChannelApiImpl.java
- ChannelServiceImpl.java
- ChannelRedisDAO.java
- ChannelDO.java
- LauncherIndexChanelService.java
- LauncherIndexChanelServiceImpl.java
- LauncherIndexChanelNoBpmServiceImpl.java
- LauncherIndexChanelController.java
章节来源
- ChannelApi.java
- ChannelApiImpl.java
- ChannelServiceImpl.java
- ChannelRedisDAO.java
- ChannelDO.java
- LauncherIndexChanelService.java
- LauncherIndexChanelServiceImpl.java
- LauncherIndexChanelNoBpmServiceImpl.java
- LauncherIndexChanelController.java
核心组件
-
渠道 RPC 接口与实现
- ChannelApi:定义渠道版本更新与渠道数据获取的 RPC 接口
- ChannelApiImpl:REST 实现,供 Feign 调用
- ChannelServiceImpl:核心业务逻辑,包含创建、更新、删除、分页、唯一性校验、默认渠道解析、批量版本更新等
- ChannelRedisDAO:基于 Redis 的渠道缓存读写
- ChannelDO:渠道持久化对象
- ChannelRespDTO:RPC 响应 DTO
-
广告位与渠道关联
- LauncherIndexChanelService:关联服务接口
- LauncherIndexChanelServiceImpl/NoBpmServiceImpl:实现类
- LauncherIndexChanelController:控制层入口
-
规则引擎与业务系统交互
- 规则匹配流程:MAC/渠道/业务类型/地区等维度的规则筛选与执行
- 业务系统交互:审批变更信息获取、解绑规则资源等
章节来源
- ChannelApi.java
- ChannelApiImpl.java
- ChannelServiceImpl.java
- ChannelRedisDAO.java
- ChannelDO.java
- ChannelRespDTO.java
- LauncherIndexChanelService.java
- LauncherIndexChanelServiceImpl.java
- LauncherIndexChanelNoBpmServiceImpl.java
- LauncherIndexChanelController.java
- RuleApprovalChangeRespDTO.java
架构总览
渠道管理由“设备侧渠道能力 + 投放侧广告位渠道关联 + 规则引擎 + 数据分析”构成闭环。设备侧通过 RPC 接口暴露渠道数据与版本更新能力;投放侧通过广告位与渠道的关联实现流量调度;规则引擎基于多维条件进行业务匹配;数据分析提供质量与收益评估。
图表来源
章节来源
详细组件分析
组件一:渠道 RPC 接口与实现
- ChannelApi:定义两个 RPC 方法
- 更新渠道版本:用于任务下发前的版本检查
- 获取渠道数据:返回渠道基础信息与版本
- ChannelApiImpl:REST 实现,调用 ChannelService
- ChannelServiceImpl:核心业务
- 基础 CRUD 与分页
- 唯一性校验(名称)
- 默认渠道解析(平台到渠道映射)
- 批量更新渠道版本(用于任务下发一致性)
- 缓存策略:查询与更新均使用缓存键,确保一致性
- ChannelRedisDAO:基于 Redis 的序列化存储,提供 get/set/delete
- ChannelDO:持久化字段包含编号、名称、公司、更新版本、描述、创建人、备注、任务ID等
- ChannelRespDTO:RPC 响应 DTO,字段与 ChannelDO 对应
图表来源
- ChannelApi.java
- ChannelApiImpl.java
- ChannelServiceImpl.java
- ChannelRedisDAO.java
- ChannelDO.java
- ChannelRespDTO.java
章节来源
- ChannelApi.java
- ChannelApiImpl.java
- ChannelServiceImpl.java
- ChannelRedisDAO.java
- ChannelDO.java
- ChannelRespDTO.java
组件二:广告位与渠道关联
- LauncherIndexChanelService:定义创建、更新、删除、查询、分 页、取消更新等方法
- LauncherIndexChanelServiceImpl/NoBpmServiceImpl:具体实现,包含与设备侧 ChannelApi 的协作
- LauncherIndexChanelController:控制层,提供管理后台接口入口
图表来源
- LauncherIndexChanelService.java
- LauncherIndexChanelServiceImpl.java
- LauncherIndexChanelNoBpmServiceImpl.java
- LauncherIndexChanelController.java
- ChannelApi.java
章节来源
- LauncherIndexChanelService.java
- LauncherIndexChanelServiceImpl.java
- LauncherIndexChanelNoBpmServiceImpl.java
- LauncherIndexChanelController.java
- ChannelApi.java
组件三:规则引擎与业务系统交互
- 规则匹配流程:业务系统调用规则引擎,按 MAC/渠道/业务类型/地区等维度筛选候选规则,再执行 EL 表达式匹配,最后进行数量限制检查
- 业务系统交互:在业务主表物理删除时需显式解绑规则资源;提交审批前可获取变更汇总信息
图表来源
章节来源
组件四:渠道监控与质量评估
- 实时流量统计:结合设备活动与规则引擎输出, 统计各渠道的业务命中与下发情况
- 异常告警:基于规则匹配失败、数量超限、地区限制不满足等情况触发
- 质量评估:采用更替比(新增/流失)、7天复活率等指标,对比不同渠道来源的质量差异
图表来源
章节来源
依赖关系分析
- 设备侧 ChannelApiImpl 依赖 ChannelService;ChannelServiceImpl 依赖 ChannelMapper 与 ChannelRedisDAO
- 投放侧 LauncherIndexChanelServiceImpl/NoBpmServiceImpl 依赖 ChannelApi,用于获取渠道数据与版本
- 规则引擎依赖 Redis 缓存与 LiteFlow 引擎,完成规则匹配与执行
- 数据分析依赖设备活动明细表,进行质量与收益评估
图表来源
- ChannelApiImpl.java
- ChannelServiceImpl.java
- LauncherIndexChanelServiceImpl.java
- LauncherIndexChanelNoBpmServiceImpl.java
- 04-机顶盒请求.md
章节来源
- ChannelApiImpl.java
- ChannelServiceImpl.java
- LauncherIndexChanelServiceImpl.java
- LauncherIndexChanelNoBpmServiceImpl.java
- 04-机顶盒请求.md
性能考量
- 缓存优化:ChannelServiceImpl 对渠道查询与更新使用缓存键,减少数据库压力;批量更新版本时逐条更新并清理缓存,保证一致性
- Redis 序列化:ChannelRedisDAO 使用 JSON 序列化存储 ChannelDO,提升读写效率
- 规则匹配:通过 Redis 缓存规则与业务ID,减少重复查询;集合运算与 EL 表达式执行在内存中完成,降低 IO 开销
- 分页与唯一性校验:分页查询与名称唯一性校验避免全表扫描,提高响应速度
故障排查指南
- 渠道不存在
- 现象:设备校验渠道时抛出“渠道不存在”
- 处理:确认渠道是否已创建;检查默认渠道映射配置;核对平台到渠道的字典配置
- 渠道名称冲突
- 现象:保存渠道时报“名称已存在”
- 处理:修改渠道名称或删除重复项
- 版本更新未生效
- 现象:任务下发后设备未更新
- 处理:调用更新渠道版本接口,确保 updateVersion 字段已更新;检查缓存是否清理
- 规则匹配失败
- 现象:业务未命中任何规则
- 处理:检查 MAC/渠道/业务类型/地区等维度配置;确认规则缓存是否正确;查看变更汇总信息
章节来源
结论
渠道管理系统通过设备侧渠道能力与投放侧广告位渠道关联,结合规则引擎与数据分析,实现了从配置、调度、监控到收益评估的完整闭环。建议在实际部署中重点 关注缓存一致性、规则匹配性能与质量评估指标的持续优化。
附录
渠道 API 接口文档
-
获取渠道数据
- 方法:GET
- 路径:/rpc-api/device/channel/get
- 查询参数:
- id:渠道编号(必填)
- 返回:CommonResult
<ChannelRespDTO>
-
更新渠道版本
- 方法:GET
- 路径:/rpc-api/device/channel/update-channel_version
- 查询参数:
- idList:渠道编号集合(必填)
- 返回:CommonResult
<Boolean>
章节来源
SDK 使用指南
- 设备侧 SDK
- 通过 Feign 客户端调用 ChannelApi,实现渠道数据获取与版本更新
- 注意:调用前确保网络连通与鉴权配置正确
- 投放侧 SDK
- 通过 LauncherIndexChanelService 进行广告位与渠道的关联管理
- 注意:在业务主表物理删除时需显式调用解绑接口
章节来源
流量分配算法(基于权重、优先级、时间段)
- 权重:同一业务下,按渠道权重分配流量
- 优先级:高优先级渠道优先匹配
- 时间段:按业务类型的时间段限制进行过滤
- 规则引擎:先按维度筛选候选规则,再执行 EL 表达式匹配,最后进行数量限制检查
章节来源
收益结算流程(CPM/CPC/CPA)
- CPM:按千次展示计费,结合展示次数与单价计算
- CPC:按点击计费,结合点击次数与单价计算
- CPA:按转化计费,结合转化次数与单价计算
- 自动化结算:基于规则引擎输出的业务命中与转化数据,自动对账与结算
章节来源
最佳实践
- 渠道配置
- 明确渠道命名规范与唯一性约束
- 合理设置默认渠道映射,避免平台缺失导致的异常
- 规则管理
- 定期清理无效规则,保持规则集合精简
- 使用变更汇总信息进行审批与审计
- 监控与告警
- 建立更替比与复活率等关键指标的监控看板
- 设置阈值告警,及时发现异常渠道
章节来源