Files
shaguabijia-app-server/docs/database/ad_ecpm_record.md
T
marco b4780e256e docs(database): 补全 19 表文档 + 新增 OVERVIEW 总览
- 重写 15 张已有表文档:每张补「用在 App 哪/增删改查时机/字段取值/join key 指向」
- 新建 4 张缺失表文档:wechat_transfer_authorization / ad_watch_log / price_report / app_config
- 新增 OVERVIEW.md:功能↔表映射 + 写入路径 + 表间关系(含语义 join key)+ ER + 资金模型
- README 索引补齐到 19 表 + 置顶 OVERVIEW + 通用约定补全
- 纠正过时:withdraw_order(reviewing/rejected/user_name)、savings_record(/order/report 真实写入)、coin_transaction(biz_type)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 00:25:57 +08:00

2.2 KiB

ad_ecpm_record — 广告展示 eCPM 上报(收益对账)

模型 app/models/ad_ecpm.py · 仓库 app/repositories/ad_ecpm.py · 接口 ad-ecpm-report · ← 索引 · 总览

每条 = 客户端一次广告展示(onAdShow)后读到的 eCPM。看广告三条数据流之一(收益对账),与 ad_reward(发奖,有 trans_id 无 ecpm)、ad_watch_log(时长)并列,无公共键——只用于按用户/按天聚合估算内部广告收益,不做"这条发奖 = 这条展示"的逐条精确关联。穿山甲后台报表才是结算权威,本表是细粒度补充。

用在哪 / 增删改查

  • C(插入):POST /ad/ecpm-report(create_ecpm_record)。每次广告展示上报一条;best-effort,丢一两条不影响业务。鉴权接口已确保 user 存在。
  • U / D:无。
  • R:内部收益统计/对账(按 (user_id, report_date) 聚合);count_today 排查辅助。当前无面向 C 端用户的读接口。

字段

类型 约束 / 默认 说明(取值 / join)
id Integer PK, autoincrement
user_id Integer FK→user.id, index, NOT NULL 归属用户
ad_type String(32) NOT NULL 广告类型,取值如 reward_video(激励视频)/ draw(Draw 信息流);各类型各自上报,不强行统一代码位
adn String(32) nullable 实际投放 ADN(getShowEcpm().getSdkName(),如 pangle/gdt)
slot_id String(64) nullable 实际展示用代码位(底层 mediation rit,非客户端配置位)
ecpm_raw String(32) NOT NULL 客户端上报的 eCPM 原始串(单位待确认,原样存)
report_date String(10) index, NOT NULL 北京时间日期串 YYYY-MM-DD,按它做按天聚合
created_at DateTime(tz) server_default now(), index 时间

关系 / Join Key

  • user_iduser.id(多对一)。
  • ad_reward_record / ad_watch_log 无公共键(独立数据流),只按 (user_id, report_date) 聚合。

索引与约束

  • PK id;index user_idreport_datecreated_at

注意

  • ⚠️ ecpm_raw 单位(分/元)截至 2026-05-31 未最终确认;确认后再加一列解析好的数值,在此之前对账按"待定单位"处理。