본문으로 건너뛰기
TubePress — 무료, 자체 호스팅 & 지속 관리
SEO 및 성장

CTR 랭킹 엔진

방문자가 실제로 시청하는 동영상을 노출해 주는 참여도 기반 랭킹 시스템입니다.

대부분의 튜브 사이트는 동영상을 업로드 날짜나 단순 조회수로 정렬합니다. 두 방식 모두 잘못된 것에 보상을 줍니다. 최신순은 마지막에 추가된 것을 우선시하고, 조회수는 가장 오래 온라인에 있던 것을 우선시합니다. CTR Ranking 플러그인은 이를 진정한 참여 엔진으로 대체하여, 방문자가 실제로 클릭하고 시청하는 동영상이 상위에 오르도록 합니다.

이것은 TubePress에 포함된 선택적 플러그인(버전 3)입니다. /admin/plugins에서 활성화하고 /admin/ctr의 전용 페이지에서 설정할 수 있습니다.

CTR 랭킹이란

CTR은 클릭률(click-through rate)의 약자로, 썸네일을 사람 중 클릭을 선택한 비율입니다. CTR 기반 랭킹은 게시 기간이 아닌 매력도와 참여도를 측정합니다. 이 플러그인은 클라이언트에서 세 가지 실제 신호를 기록합니다:

  • 노출(Impressions) — IntersectionObserver를 통해 실제로 화면에 스크롤된 모든 썸네일이며, 위치에 따라 가중치가 적용됩니다.
  • 클릭(Clicks) — 동영상, 카테고리, 퍼포머 또는 채널 카드의 각 클릭.
  • 시청 완료(Watch-completion) — 플레이어가 실제로 동영상의 25%, 50%, 75%, 100% 지점까지 재생한 정도.

V3 엔진

점수는 일정에 따라 재계산되며 네 가지 배수를 결합합니다:

ranking_score = quality x retention x freshness x fatigue
  • 품질(Quality)은 위치 및 표면 편향을 제거한 클릭률(COEC — 예상 클릭 대비 실제 클릭)입니다. 예상 클릭은 노출 시점에 맥락별·위치별 사전 확률에서 누적되므로, 첫 번째 슬롯의 카드는 평균 첫 번째 슬롯 클릭률을 초과해야 상위에 오를 수 있습니다. 위치 편향은 추정이 아닌 수학적 방식으로 제거됩니다.
  • 유지율(Retention)은 사람들이 끝까지 시청하는 동영상에 보상을 줍니다. 25/50/75/100% 완료 데이터는 시청자를 붙잡는 콘텐츠를 높이고, 일찍 이탈을 유발하는 클릭 유인 콘텐츠를 낮춥니다.
  • 신선도(Freshness)는 새로 업로드된 콘텐츠에 임시 부스트를 제공합니다(기본적으로 처음 몇 시간 동안 최대 약 3배, 2주 내에 중립으로 돌아옴). 이를 통해 좋은 새 콘텐츠가 발견될 수 있도록 합니다.
  • 피로도(Fatigue)는 홈페이지에 과도하게 노출된 동영상을 부드럽게 휴식시켜 순환을 다양하게 유지합니다.

품질 배수에는 상한이 있으며, 시청 시간, 신선도 또는 클릭률에 더 중점을 두고 싶다면 고급 설정에서 모든 가중치를 조정할 수 있습니다.

엔티티 랭킹

참여 추적은 동영상에만 국한되지 않습니다. 카테고리, 퍼포머(pornstar) 및 채널 카드도 추적되며, 방문자가 가장 많이 클릭하는 항목이 트렌딩 목록에 먼저 표시됩니다. 각 엔티티의 목록 점수는 게시된 동영상의 참여도에서 도출되며, 표시 썸네일은 해당 엔티티 내에서 가장 성과가 좋은 동영상이 됩니다. 따라서 가장 클릭하기 좋은 아트워크가 방문자를 사이트 더 깊은 곳으로 끌어들이는 역할을 합니다.

내장 스팸 방지

점수가 랭킹을 결정하기 때문에, 기본적으로 조작으로부터 보호됩니다:

  • 봇과 헤드리스 브라우저는 모든 신호에서 제외됩니다.
  • 각 클릭, 완료 및 엔티티 클릭은 IP별, 대상별, 시간당 최대 1회 집계됩니다(완료는 사분위별 1회). 따라서 단일 방문자가 동영상 순위를 올릴 수 없습니다.
  • 실제 게시된 동영상만 추적됩니다. 초안 및 가짜 ID는 거부됩니다.
  • 품질 배수에는 상한이 있어 특정 동영상이 밀어 올려질 수 있는 정도를 제한합니다.
  • 모든 추적 비콘은 서버 비밀과 일별 롤링 토큰으로 HMAC 서명되어 있어 요청을 위조할 수 없습니다.
대략적인 플러드 제한. 시간당 1회 규칙에 더하여, 넉넉한 IP별·분당 제한이 자동화된 급증을 잡아냅니다. 기본값은 바쁜 공개 사이트에 적합하며 변경이 거의 필요하지 않습니다.

홈페이지 순환 풀

프론트 페이지가 하루 종일 동일하게 보이지 않도록, 플러그인은 상위 랭킹의 검증된 동영상에서 24개 그룹으로 구성된 순환 풀을 만듭니다. 홈페이지는 30분마다 한 그룹씩 진행되어, 진정한 높은 참여도 콘텐츠를 보여주면서도 사이트 상단이 하루 내내 신선하게 느껴집니다. 정적 랭킹 피드를 선호하는 경우 풀을 끌 수 있습니다.

활성화 및 설정

플러그인을 활성화한 후 /admin/ctr을 엽니다. 이 페이지에는 실시간 통계(랭킹된 동영상, 노출, 클릭 및 평균 시청 완료)와 지금 재계산 버튼이 표시됩니다.

  1. 전략을 선택하세요. 프리셋(Balanced, Fresh & Discovery, Most Watched 또는 Trending Now) 중 하나를 클릭 한 번으로 모든 가중치가 설정됩니다.
  2. 기능을 전환하세요. 참여 추적, 시청 완료, 엔티티 랭킹, 순환 풀 및 봇 필터링을 독립적으로 활성화하세요.
  3. 원한다면 세부 조정하세요. 고급 패널에서 재계산 빈도, 품질 상한, 신선도 부스트, 유지율 제한, 피로도 부드러움 등을 조정할 수 있습니다. 값을 편집하면 전략이 Custom으로 전환됩니다.

마스터 스위치는 ctr_enabled입니다. 이것이 꺼져 있으면 전체 사이트가 조회수 및 최신순 정렬로 대체되어, 아무것도 제거하지 않고도 즉시 랭킹을 비활성화할 수 있습니다.

확장성을 위한 설계

이 엔진은 수백만 개의 동영상을 가진 카탈로그를 위해 설계되었습니다. 추적은 단일 배치 upsert로 작성되고, 재계산은 ID 범위별로 청크로 처리되며 실제로 점수가 변경된 행만 쓰고, 무효화할 캐시 레이어가 없습니다. 점수는 내장 pseudo-cron을 사용하여 자체 포함 일정(5분마다에서 12시간마다까지 구성 가능)으로 재구축되므로 서버 crontab이 필요하지 않습니다. 데이터베이스 스키마, 추적 엔드포인트, 재계산 작업, 정렬 연결 및 관리 페이지 등 모든 것이 플러그인에 의해 제공되며, 기본 CMS에 추가로 설치되는 것은 없습니다.

다음 단계

여전히 막히셨나요?

대시보드에서 티켓을 열면 저희 팀이 도와드리겠습니다.

라이브 데모 체험하기 → TubePress 다운로드 →