Files
shaguabijia-app-server/docs/database/ad_ecpm_record.md
T
ouzhou d7c29c0883 feat(coin): 金币数值体系二期——看广告按 eCPM 发奖 + ad_session_id 幂等 + 签到膨胀固定金币 (#28)
- rewards: 激励视频实发改按 calculate_ad_reward_coin(eCPM, 当日第N次) 公式;AD_REWARD_COIN/MAX_AD_REWARD_COIN 降为历史兼容口径;新增 SIGNIN_BOOST_COIN=2000

- 签到膨胀: Day1-13 看完激励视频额外发固定金币、Day14 不允许 (signin.py / signin-boost)

- ad_session_id 幂等: ad_ecpm/ad_reward/ad_feed_reward 记录加 ad_session_id 列 + 唯一索引(新迁移 coin_reward_phase2 / ad_feed_reward_session)

- ad.py + schemas + repositories: ecpm-report / feed-reward / reward-status / test-grant 改造;config_schema 增 signin_boost_coin;admin stats overview 补充

- 同步 docs/api + docs/database + docs/integrations/pangle 及 tests(test_ad_reward / test_welfare)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: OuYingJun1024 <1034284404@qq.com>
Reviewed-on: #28
Co-authored-by: ouzhou <ouzhou@wonderable.ai>
Co-committed-by: ouzhou <ouzhou@wonderable.ai>
2026-06-09 01:56:47 +08:00

2.3 KiB

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

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

每条 = 客户端一次广告展示(onAdShow)后读到的 eCPM。ad_session_id 可与 S2S 回调 extra.ad_session_id 对齐:当普通激励视频回调没有 ecpm 时,后端会用它匹配本表作为发奖 eCPM 依据。

用在哪 / 增删改查

  • 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 信息流);各类型各自上报,不强行统一代码位
ad_session_id String(64) UNIQUE, index, nullable 客户端广告会话 ID;用于普通激励视频在 S2S 缺 ecpm 时匹配发奖
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_session_id → 可关联 ad_reward_record.ad_session_id

索引与约束

  • PK id;index user_idreport_datecreated_atad_session_id;UNIQUE ad_session_id

注意

  • S2S 回调自带 ecpm 优先;缺失时才使用同 ad_session_id 的客户端上报值。两者都没有时普通激励视频不发币,ad_reward_record.status=ecpm_missing