广告资源下载安装执行明细
本模块用于记录 Launcher 终端设备在执行广告位配置资源时的具体操作结果。
通过该功能,管理员可以监控设备是否成功下载了图片/视频资源,应用是否安装成功,或者应用是否已存在,从而排查广告投放过程中的资源下发与执行问题。
执行回调机制
触发时机
当终端设备从服务器拉取广告配置后,会立即执行以下任务:
- 下载媒体资源:下载广告位配置中的图片、视频资源
- 下载并安装 APK:下载广告位配置中的应用安装包并安装
- 检测应用状态:检查目标应用是否已安装
执行完成后,设备立即通过 HTTP 接口上报执行结果。
数据处理流程
Kafka 解耦
系统采用 Kafka 消息队列实现回调数据的异步处理:
- Topic:
launcher-exec-record - 生产者:
ForeignLauncherController接收设备回调后投递消息 - 消费者:
LauncherExecRecordConsumer消费消息并写入数据库
解耦优势:
- 高并发场景下避免接口阻塞
- 支持消息重试,确保数据不丢失
- 便于后续扩展(如实时统计、告警通知)
功能说明
使用场景
| 场景 | 说明 |
|---|---|
| 广告投放验证 | 确认设备是否成功下载并展示广告素材 |
| 问题排查 | 分析广告未能正常展示的原因(下载失败/安装失败) |
| 效果统计 | 统计广告资源的实际触达情况 |
入口
在 资源绑定配置 列表中,当某条配置的 回调记录条数 大于 0 时,点击该数字即可进入本页面。
列表查询
界面展示了所有设备上报的执行记录流水。

字段说明
| 字段名称 | 说明 |
|---|---|
| adResourceId | 广告位资源 ID,对应资源绑定配置中的记录 ID |
| 类型 | 执行结果类型 |
| MAC | 设备 MAC 地址 |
| CPU | 设备 CPU 序列号 |
| 设备时间 | 设备上报时的本地时间 |
| 执行完成时间 | 操作实际完成的时间(若设备未上报则使用服务器接收时间) |
| 创建时间 | 记录入库时间 |
执行类型说明
| 类型值 | 类型名称 | 说明 |
|---|---|---|
| 0 | 图片下载完成 | 设备成功下载图片资源 |
| 1 | 视频下载完成 | 设备成功下载视频资源 |
| 2 | app安装完成 | 设备成功安装应用包 |
| 3 | app已存在 | 应用已安装,无需重复安装 |
说明
执行记录由设备端主动上报,只有设备成功执行操作后才会有记录。如果某资源配置没有任何回调记录,可能是:
- 设备尚未请求该广告配置
- 设备请求了但下载/安装失败
- 设备网络问题导致上报失败
技术实现与数据流
1. 数据采集 (Controller层)
终端设备在完成资源下载或应用安装检测后,通过 HTTP 接口上报执行结果:
| 项目 | 说明 |
|---|---|
| 上报接口 | /launcher/ad/cb |
| 请求方式 | HTTP POST |
| 数据格式 | JSON |
时间校准机制:
- 尝试从请求体或 Header (
d-time) 中获取设备时间 - 若设备时间与服务器时间偏差在 1 分钟内,使用设备时间
- 否则使用服务器当前时间
Kafka 投递:
- 数据封装为 JSON 后投递至 Topic:
launcher-exec-record - 实现异步处理,避免接口阻塞
2. 消息处理 (Consumer层)
LauncherExecRecordConsumer 消费 Kafka 消息并持久化:
- 监听 Topic:
launcher-exec-record - 反序列化 JSON 消息为实体对象
- 遍历记录列表写入 MySQL 数据库
3. 架构图解
数据模型关系图
下图展示了执行记录的数据结构: