Files
shaguabijia-app-server/docs/api/ad-feed-reward-preview.md
T
OuYingJun1024 c958546e07 feat(ad): 信息流广告按条 segments 精确发奖 + 只读 preview 接口
- compute_feed_reward/preview_feed_reward: 逐条 (eCPM,秒) 跨条进位、每满 10s 一份、
  每份用所在段 eCPM × LT,封顶 12 份/场;发奖与预览同一口径
- grant_feed_reward 改收 segments(旧 ecpm/duration 单段自动回退,兼容旧客户端)
- 新增 POST /api/v1/ad/feed-reward/preview(只读不入账,给比价金币小球实时显示真实即将到账额)
- schemas 加 FeedSegmentIn/FeedPreviewIn/FeedPreviewOut;docs/api 补 preview 文档 + 更新 feed-reward
- tests: 按条结算/12份封顶/aborted/preview==grant 等 6 个用例

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 22:27:22 +08:00

2.0 KiB
Raw Blame History

POST /api/v1/ad/feed-reward/preview — 信息流播放中预演将发放的金币(只读)

比价 / 领券信息流广告播放过程中,查询「若此刻结束、整场将发放多少金币」。给金币小球实时显示真实即将到账金额用:与 feed-reward 同一计价口径(同份数封顶 / 同 LT / 同 eCPM 钳),但只读、不入账、不写库

客户端每满 10 秒观看(或换条 eCPM 变化)拉一次;两次之间用 next_unit_coin × 本份进度 在本地做平滑插值显示。

鉴权

需要 Bearer token。

请求体

字段 类型 必填 说明
segments array 截至此刻的逐条广告段(时序,至少 1 项;含在播那条的部分秒数),每项 {ecpm: string, seconds: int}

响应

字段 类型 说明
coin int 此刻结束将发放的累计金币(已满 10 秒的各份之和)
unit_count int 已累计满的份数(封顶 12
next_unit_coin int 下一份(第 unit_count+1 份)的金币值,按当前在播段 eCPM 算;封顶后为 0。供小球在本份未满区间内平滑插值
session_full bool 是否已达单场份数上限(12)→ 小球应停涨
would_status string 若此刻结束的结算预判:granted / too_short(凑不满一份) / daily_capped(已达每日条数上限,整场将发 0)

与 feed-reward 的关系

  • 同样按 segments 跨条进位每满 10 秒一份、每份用所在段 eCPM 计价(详见 feed-reward 计算口径)。
  • preview 的 coin 等于「用相同 segments 调 feed-reward 实发的 coin」——小球显示值即整场结束实发额(除非中途 would_status 提示 daily_capped,那种情况整场实发 0)。
  • preview 不消耗每日上限、不写任何表,可高频调用(限流 600/分)。

限流

600 次 / 分钟(ad-feed-preview)。