CTR 排序引擎
基于互动数据的排序系统,让访客真正爱看的视频脱颖而出。
大多数管视频站按上传日期或原始播放量对视频排序。这两种方式都在激励错误的东西:时效性偏向最新添加的内容,播放量偏向在线时间最长的内容。CTR Ranking 插件用真正的互动引擎取代了这一机制,让访客真正点击和观看的视频脱颖而出。
这是一个随 TubePress 附带的可选插件(第 3 版)。从 /admin/plugins 激活,并在其专属页面 /admin/ctr 进行调整。
CTR 排名是什么
CTR 即点击率——在看到缩略图后选择点击的用户比例。按 CTR 排名衡量的是吸引力和互动性,而非内容的新旧程度。该插件在客户端记录三种真实信号:
- 展示量——每个真正滚动进入视野的缩略图(通过 IntersectionObserver),按其位置加权。
- 点击量——每次对视频、分类、演员或频道卡片的点击。
- 观看完成度——播放器实际播放视频的进度,以 25%、50%、75% 和 100% 为里程碑。
V3 引擎
分数按计划重新计算,结合四个乘数:
ranking_score = quality x retention x freshness x fatigue- 质量是经过位置和界面去偏处理的点击率(COEC——实际点击量与预期点击量之比)。预期点击量在展示时从每个上下文、每个位置的先验值中累积,因此位于第一位的卡片必须超过该位置的平均点击率才能上升。位置偏差通过数学方法消除,而非凭猜测。
- 留存率奖励人们完整观看的视频。25/50/75/100% 完成度数据提升能留住观众的内容,并降低早期跳出的标题党内容的排名。
- 新鲜度为新上传内容提供临时加成(默认在最初几小时内最高约 3 倍,在两周内逐渐回归中性),从而让优质新内容得以被发现。
- 疲劳度对已在首页大量展示的视频进行适当休整,保持轮播的多样性。
质量乘数有上限,如果您希望更多倚重观看时长、新鲜度或点击率,所有这些权重均可在高级设置中调整。
实体排名
互动跟踪不仅限于视频。分类、演员(色情明星)和频道卡片同样被追踪,访客点击最多的内容会在热门列表中率先出现。每个实体的列表分数来源于其已发布视频的互动数据,其显示缩略图会成为其中表现最佳的视频——这样,您最具点击吸引力的素材就能引导访客深入浏览网站。
内置防刷机制
由于分数决定排名,系统开箱即提供防操控保护:
- 机器人和无头浏览器的所有信号均被排除。
- 每次点击、完成和实体点击每 IP、每目标、每小时最多计一次(完成度每个四分位计一次),因此单个访客无法为视频刷分。
- 仅追踪真实、已发布的视频——草稿和伪造 ID 均被拒绝。
- 质量乘数有上限,限制单个视频被推高的程度。
- 每个追踪信标均使用服务器密钥和每日轮换令牌进行 HMAC 签名,防止请求被伪造。
首页轮播池
为避免首页全天看起来完全相同,该插件从您排名靠前、经过充分测试的视频中构建一个包含 24 组的轮播池。首页每 30 分钟切换一组,使网站顶部全天保持新鲜感,同时仍展示真正高互动的内容。如果您希望使用静态排名信息流,可以关闭轮播池。
启用与调优
激活插件后,打开 /admin/ctr。该页面显示实时统计数据——已排名视频数、展示量、点击量和平均观看完成度——以及一个 立即重新计算按钮。
- 选择策略。点击一个预设——Balanced、Fresh & Discovery、Most Watched 或 Trending Now——即可为您设置所有权重。
- 切换功能。独立启用互动跟踪、观看完成度、实体排名、轮播池和机器人过滤。
- 按需精调。高级面板提供重新计算频率、质量上限、新鲜度加成、留存率夹持、疲劳度软化等更多参数。编辑任意值会将策略切换为自定义。
主开关为 ctr_enabled。关闭时,整个网站将回退到播放量和时效性排序,因此无需卸载任何内容即可立即禁用排名。
为大规模场景构建
该引擎专为拥有数百万视频的目录而设计。追踪以单次批量 upsert 方式写入;重新计算按 ID 范围分块处理,且仅写入分数实际发生变化的行;没有需要失效的缓存层。分数使用内置的 pseudo-cron 按自包含计划重建(可配置为每 5 分钟到每 12 小时),无需服务器 crontab。一切——数据库模式、追踪端点、重新计算任务、排序连接和管理页面——均由插件提供;无需在基础 CMS 上额外附加任何内容。