bebd694fb5
- 新增 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>
2.0 KiB
2.0 KiB
POST /api/v1/ad/feed-reward — 信息流广告完成后结算金币
点位 2:比价等待 / 领券信息流广告。每展示满 10 秒累计一份奖励,视频完成后一次性入账。
鉴权
需要 Bearer token。
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
client_event_id |
string | 是 | 客户端生成的幂等事件 id,8-64 字符 |
ad_session_id |
string|null | 否 | 客户端生成的一次信息流广告会话 id,用于对账/排查 |
ecpm |
string | 是 | 本条信息流广告 eCPM(穿山甲 getEcpm 原值),按“分/千次展示”处理(非元) |
duration_seconds |
int | 是 | 实际展示/播放秒数 |
adn |
string|null | 否 | 实际投放 ADN(聚合后实际填充的子渠道) |
slot_id |
string|null | 否 | 实际展示代码位(底层 mediation rit) |
app_env |
string|null | 否 | 我们的应用环境:prod(傻瓜比价正式) / test(测试应用) |
our_code_id |
string|null | 否 | 我们后台配置的代码位 ID(104xxx,非底层 rit);供广告收益报表按代码位聚合金币 |
响应
| 字段 | 类型 | 说明 |
|---|---|---|
granted |
bool | 本次是否入账;达上限时为 false |
status |
string | granted / capped |
coin |
int | 本次发放金币 |
unit_count |
int | 按 10 秒折算出的奖励份数 |
daily_limit |
int | 每日信息流展示次数上限,默认 500 |
计算口径
- 奖励份数:
duration_seconds // 10。 - 单份奖励:
eCPM / 1000 × 因子1(eCPM 档) × 因子2(当天累计份序号) × 10000,四舍五入为整数金币。 - eCPM 档:
0-100=0.1,101-200=0.3,201-400=0.4,>400=0.6。 - LT 档:第 1 份
2.0,第 2 份1.5,第 3 份1.3,第 4-10 份1.1,第 11 份及以后1.0。
数据写入
ad_feed_reward_record新增一行。- 入账时
coin_account增加余额。 - 入账时
coin_transaction写入biz_type=feed_ad_reward。