Files
shaguabijia-app-server/docs/database/ad_feed_reward_record.md
T
ouzhou f7d86011c1 feat(ad-revenue): admin 广告收益报表(按 用户/日期/类型/应用/代码位 聚合) (#54)
- 新增 GET /admin/api/ad-revenue-report:展示条数/收益 + 复用金币审计逐条复算做发奖对账
- ad_ecpm/ad_reward/ad_feed_reward 各加 app_env + our_code_id 两列(alembic 迁移)
- ecpm-report / feed-reward 接收并落库 app_env/our_code_id;激励发奖按 ad_session_id 回填
- ad_audit 抽出 audit_rows,报表与逐条审计复用同一复算口径
- 组级 matched 改「组内逐条全一致」,避免应发和==实发和的互相抵消掩盖错误
- list_feedbacks 改 offset 分页并返回 total(配合 admin 页码分页)
- 反馈正文上限 _CONTENT_MAX 2000→200
- 文档:新增 admin-ad-revenue-report,更新 ecpm/feed-reward/feedback 及对应 db docs

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: OuYingJun1024 <1034284404@qq.com>
Reviewed-on: #54
Co-authored-by: ouzhou <ouzhou@wonderable.ai>
Co-committed-by: ouzhou <ouzhou@wonderable.ai>
2026-06-15 23:13:14 +08:00

1.8 KiB
Raw Blame History

ad_feed_reward_record — 信息流广告奖励记录

点位 2 的奖励记录。每条记录对应客户端完成的一次信息流广告展示/播放事件。

字段

字段 类型 约束 说明
id Integer PK 自增主键
client_event_id String(64) UNIQUE, NOT NULL 客户端幂等事件 id
ad_session_id String(64) index, nullable 客户端生成的一次信息流广告会话 id
user_id Integer FK → user.id, index, NOT NULL 用户
reward_date String(10) index, NOT NULL 北京时间日期 YYYY-MM-DD
duration_seconds Integer NOT NULL 整场比价累计观看秒数(轮播各条相加)
unit_count Integer NOT NULL duration_seconds // 10 得到的奖励份数
ecpm_raw String(32) NOT NULL 客户端上报 eCPM 原始值
adn String(32) nullable 实际投放 ADN(聚合后实际填充子渠道)
slot_id String(64) nullable 实际展示代码位(底层 mediation rit)
app_env String(16) nullable 来源应用 prod(傻瓜比价)/test(测试),客户端 feed-reward 上报;旧数据 NULL。广告收益报表金币侧按它聚合
our_code_id String(64) nullable 我们配置的代码位 104xxx,客户端上报;旧数据 NULL
coin Integer NOT NULL 实发金币,非 granted 时为 0
status String(16) NOT NULL granted(已发) / capped(当日次数超限) / too_short(整场总时长<10s 凑不满一份) / closed_early(用户中途 ✕ 关闭,全程未看完)
created_at DateTime index, NOT NULL 创建时间

约束

  • UNIQUE(client_event_id):同一完成事件重试不重复发奖。

关联

  • 入账时写 coin_transaction.biz_type=feed_ad_rewardref_id=client_event_id