Poki와 CrazyGames: 웹게임 포털 6곳의 수익 배분, 독점 조항, 용량 제한을 비교했습니다
Poki는 직접 유입 수익 100%를 주는 대신 7년 독점을 요구하고, CrazyGames는 독점 없이 2주 테스트 뒤 수익을 나눕니다. 웹게임 포털 6곳의 공식 문서를 읽고 수익 배분과 기술 요건을 표로 정리했습니다.
- 웹게임
- 수익화
- 제품 개발
- 인디
목차
브라우저 게임을 만들면 어디에 올릴지부터 정해야 합니다. 웹게임 포털마다 수익 배분율, 독점 조항, 기술 요건이 다릅니다. 그런데 이것을 한곳에서 비교한 자료는 찾기 어려웠습니다.
그래서 포털 여섯 곳의 공식 개발자 문서를 모아서 읽었습니다. 대상은 Poki, CrazyGames, GameDistribution, GamePix, GameMonetize, 그리고 국내 플랫폼 앱인토스(Apps in Toss)입니다. 이 글에는 제출 전에 알아야 하는 조건만 뽑았습니다.
수치는 모두 각 포털의 공식 문서 기준입니다. 정책은 바뀔 수 있으니 계약 전에 원문을 다시 확인하세요.
포털 6곳 비교표#
| 포털 | 개발자 수익 배분 | 독점 조항 | 특징 |
|---|---|---|---|
| Poki | 직접 유입 100%, Poki 경유 유입 50% | Web Exclusive는 오픈웹 7년 독점(비독점 옵션 별도) | 배분율이 가장 높고 독점 부담이 큼 |
| CrazyGames | 광고 수익 배분(Full Launch부터) | 없음. 다른 플랫폼에 동시 출시 가능 | 2주 테스트(Basic)와 정식(Full) 2단계 |
| GameDistribution | 퍼블리셔, 개발자, GD 3자 동등 분배 | 없음 | 4500개 이상 퍼블리셔 네트워크에 배포 |
| GamePix | 45% | 없음 | 수백 개 제휴 사이트에 자동 배포 |
| GameMonetize | 45% | 없음 | NET 30, PayPal·USDT 지급 |
| 앱인토스 | 인앱 광고·결제 기반 | 없음 | 국내 플랫폼. 게임물 등급분류 필요 |
배분율만 따로 보면 차이가 더 잘 보입니다.
Poki는 배분율이 가장 높고 7년 독점을 요구합니다#
Poki는 유입 경로에 따라 배분율이 다릅니다.
If a user comes to your game directly, through bookmarks, search, social media or through your own community, you get 100% of the revenue for that user. If a user comes to your game through Poki.com, or through a marketing effort from Poki, then Poki splits the revenue 50/50 with you.
개발자가 직접 데려온 플레이어의 수익은 모두 개발자 몫입니다. Poki가 데려온 플레이어의 수익만 절반씩 나눕니다. 자체 유입 채널이 있는 개발자에게 유리한 구조입니다.
대가도 있습니다. 기본 모델인 Web Exclusive는 오픈웹 브라우저 플랫폼에서 7년 독점을 요구합니다.
Under our Web Exclusive model (the default for maximum support), you grant Poki seven-year exclusivity on open-web browser platforms including Discord and YouTube Playables, in exchange for deep promotional investment, premium ad and brand partnerships, and generous revenue splits.
독점 범위에는 Discord와 YouTube Playables도 들어갑니다. 그 대신 Poki의 마케팅, QA, 프로모션 투자를 받습니다. 독점이 부담스러우면 Non-Exclusive 옵션이 있습니다. 이 옵션은 일회성 라이선스 비용을 받는 방식이고, 마케팅이나 수익 배분 약정은 없습니다.
기술 요건 중 눈에 띄는 것은 두 가지입니다.
- 모바일과 태블릿을 지원해야 합니다. 세로나 가로 중 한 방향에서 화면 전체를 채워야 합니다.
- 스플래시 스크린과 외부 링크를 모두 빼야 합니다. 온보딩 중에 개발사나 게임 로고를 띄우면 안 되고, 로고는 로딩 화면에만 넣을 수 있습니다.
7년은 긴 기간입니다. 첫 게임을 여러 포털에 올려 보며 반응을 보려는 단계라면 독점 모델은 신중하게 봐야 합니다.
CrazyGames는 2단계로 출시하고 독점이 없습니다#
CrazyGames는 출시가 두 단계로 나뉩니다. 다른 포털과 가장 다른 점입니다.
| 단계 | 내용 |
|---|---|
| Basic Launch | 제한된 사용자에게 2주간 테스트합니다. CrazyGames 전용 연동 없이 Basic 구현만 하고 Basic QA만 받습니다. 비디오 광고, 배너, 인게임 구매는 꺼져 있습니다. |
| Full Launch | 전 세계에 정식 출시합니다. Full 구현과 Full QA가 필요합니다. 이 단계부터 수익화가 켜지고 수익 배분이 시작됩니다. |
Basic Launch에서는 수익이 나지 않습니다. 지표가 좋으면 Full Launch로 넘어갑니다. Full 연동 작업을 하는 동안에도 Basic 버전은 초기 사용자에게 계속 노출됩니다.
독점 조항은 없습니다. FAQ가 이렇게 답합니다.
My game is published on Steam, Google Play Store, Apple App Store or Facebook, is it still eligible for revenue share? Yes. Publishing your game on other platforms doesn't affect your eligibility for revenue share on CrazyGames.
다만 수익화는 CrazyGames SDK가 내보내는 광고만 허용합니다. 직접 붙인 광고 네트워크는 쓸 수 없습니다.
저는 3대3 무중력 메카 슈팅 RAYFRAME을 CrazyGames에 내기로 정했습니다. 독점이 없어서 자체 사이트와 함께 운영할 수 있기 때문입니다. 2026년 10월 19일에 실제로 제출했고, 제출 과정과 Basic Launch 판정 조건은 따로 적었습니다.
CrazyGames는 용량 기준을 숫자로 정해 둡니다#
여섯 포털 중 파일 용량 기준이 가장 구체적입니다.
- 전체 파일은 최대 250MB, 1500개 이하입니다.
- 초기 다운로드는 50MB 이하여야 합니다. 모바일 홈페이지에 노출되려면 20MB 이하여야 합니다.
- SDK를 붙이면 초기 다운로드 크기는 로딩 시작부터 첫
Gameplay start이벤트까지로 측정합니다. 이 이벤트는 플레이할 수 있는 상태가 됐을 때 보내야 하고, 메뉴나 추가 로딩 단계는 빼고 측정합니다. - SDK를 붙이지 않으면 전체 파일 크기가 기준입니다. 50MB(모바일 홈 노출은 20MB) 이하여야 합니다.
- 외부에 호스팅한 파일을 쓰면 QA팀은 플레이까지 20초 안에 도달하는지 봅니다.
- 번들 안의 파일은 상대 경로로 참조해야 합니다. 절대 경로는 로드에 실패합니다.
마지막 항목에서 실수하기 쉽습니다. 로컬에서 잘 돌던 게임이 포털에 올라가 자산을 못 찾는 흔한 원인입니다. 배포 뒤 옛 코드가 캐시에 남아 새 자산을 404로 찾던 문제는 Cloudflare 캐시 글에, 3D 웹게임의 드로우콜을 줄인 과정은 three.js InstancedMesh 글에 적었습니다.
오디오 주의사항도 문서에 따로 있습니다. iOS에서는 앱이 백그라운드로 가면 AudioContext가 interrupted 상태가 됩니다. 포그라운드로 돌아오면 suspended로 바뀌는 경우가 많습니다. 다시 살리려면 touchend나 click 같은 실제 사용자 동작 안에서 resume()을 불러야 합니다. visibility change 이벤트만 듣고 처리하면 WebKit이 재생을 막습니다. 문서는 Unity는 대체로 알아서 처리하지만 Howler와 PlayCanvas에서는 문제가 확인됐다고 적습니다.
GameDistribution은 3자가 똑같이 나누고 지급 기준액이 있습니다#
GameDistribution은 포털이라기보다 배포 네트워크입니다. 4500개 이상의 퍼블리셔 사이트에 게임을 배포합니다.
We offer an equal revenue share between all three parties involved: Publishers, Developers, and GameDistribution.
퍼블리셔, 개발자, GD가 똑같이 나눕니다. 정확한 비율은 개발자 약관의 Revenue Share 항목에 있습니다.
지급 조건은 이렇습니다.
- 한 달 수익의 인보이스는 다음 달 첫째 주에 생기고, 그다음 달 말 전에 지급됩니다. 5월 수익이면 6월 첫 주에 인보이스가 생기고 7월이 끝나기 전에 받습니다.
- 지급 기준액은 PayPal 50유로, 은행 송금 100유로입니다. 모자라면 다음 정산으로 넘어갑니다.
GameDistribution은 청소년 외에 성인과 중장년 사용자에게도 닿는다고 내세웁니다. 게임 성격에 따라 의미 있는 차이일 수 있습니다.
GamePix와 GameMonetize는 둘 다 45%입니다#
두 곳은 조건이 비슷합니다. 개발자 몫은 45%이고, 독점이 없고, SDK를 연동한 뒤 대시보드에서 검증합니다.
GamePix는 게임을 자체 서버에 호스팅합니다. 최적화와 QA를 대신 한 뒤 수백 개의 인증된 제휴 사이트에 배포합니다. 게임별 RPM을 볼 수 있습니다.
GameMonetize는 NET 30 조건으로 25일 안에 PayPal이나 USDT(ERC20)로 지급합니다. 연동 순서는 이렇습니다.
- 대시보드에서 Game ID를 받아 코드에 넣습니다.
- 게임 페이지의 "Verify Game" 버튼으로 검증합니다.
- "REQUEST ACTIVATION"으로 제출합니다.
두 포털의 SDK 이벤트 구조는 거의 같습니다. GameMonetize는 SDK_READY, SDK_GAME_START, SDK_GAME_PAUSE 이벤트를 듣고 sdk.showBanner()로 광고를 띄웁니다. GameDistribution도 SDK_GAME_PAUSE와 SDK_GAME_START에 gdsdk.showAd()를 조합하는 같은 패턴입니다. 소규모 HTML5 광고 네트워크들이 비슷한 SDK 관례를 따르는 것으로 보입니다.
그래서 광고 연동 부분을 인터페이스로 분리해 두면 포털을 바꾸기 쉽습니다. 공통 인터페이스는 대략 이렇습니다.
type PortalAdapter = {
ready(): Promise<void>;
onPause(cb: () => void): void; // 광고 시작: 게임 정지와 음소거
onResume(cb: () => void): void; // 광고 종료: 게임 재개
showAd(): Promise<void>;
};광고가 재생될 때 게임을 멈추고 소리를 끄는 처리는 어느 포털이든 요구합니다. 이 부분을 공통으로 빼면 포털별 코드가 짧아집니다.
앱인토스는 국내 플랫폼이고 등급분류가 먼저입니다#
앱인토스는 토스 앱 안에서 도는 미니앱 플랫폼입니다. 해외 포털과 성격이 다르고 문서도 한국어입니다.
가장 큰 차이는 행정 절차입니다.
- 콘솔에 게임을 등록할 때 게임물 등급분류 정보를 함께 등록해야 합니다.
- 앱 로고, 앱 이름, appName, 사용 연령, 고객센터 이메일과 연락처를 등록해야 합니다.
- 사업자가 없어도 출시할 수 있습니다. 사업자로 등록하면 개인과 법인에 따라 필요한 서류가 다르고, 검토가 끝나면 계약합니다.
- 미성년자도 콘솔에 참여할 수 있는 별도 절차가 있습니다.
개발에는 Bedrock(React Native 기반) SDK나 Unity SDK를 쓰고, 이미 있는 웹 게임은 WebView용 SDK(@apps-in-toss/web-framework)로 감쌉니다. 배너 광고 수익은 배너가 화면에 50% 이상, 1초 이상 보일 때 생깁니다(onAdViewable 이벤트).
세그먼트, 스마트 발송, 토스 포인트를 주는 프로모션 같은 마케팅 기능이 플랫폼에 들어 있습니다. 국내 사용자가 대상이라면 토스 앱의 트래픽이 장점입니다.
첫 게임이라면 독점 없는 곳부터 시작합니다#
문서를 다 읽고 내린 판단은 이렇습니다.
첫 게임이라면 독점 없는 곳부터 올립니다. CrazyGames는 2주 Basic Launch로 지표를 먼저 볼 수 있습니다. GameDistribution, GamePix, GameMonetize는 여러 곳에 동시에 배포할 수 있습니다. 같은 빌드를 여러 포털에 올리면 어느 쪽 사용자가 게임에 맞는지 데이터로 알 수 있습니다.
Poki는 게임이 검증된 뒤에 봅니다. 직접 유입 100% 배분은 매력적이지만 7년 독점은 첫 게임에 걸기엔 깁니다. 자체 유입 채널이 있고 게임 반응을 확인한 뒤에 협상하는 편이 안전합니다.
국내가 대상이면 앱인토스 일정은 따로 잡습니다. 등급분류 같은 행정 절차를 먼저 밟아야 해서 해외 포털과 같은 일정으로 진행하기 어렵습니다. RAYFRAME을 실제로 토스 미니앱으로 옮기며 바꾼 것과 등급분류에서 멈춘 과정은 앱인토스 게임 출시 글에 적었습니다.
기술 준비는 세 가지로 모입니다. 초기 다운로드를 20MB 이하로 줄이고(모바일 홈 노출 기준), 상대 경로만 쓰고, 광고 재생 중 정지와 음소거를 처리합니다. 처음부터 이것을 지키면 어느 포털에 내도 QA에서 크게 막히지 않습니다. 봇이 직접 플레이하며 버그를 찾게 한 QA 방법은 Tidebreaker QA 훅 글에 있습니다.
지금 브라우저에서 플레이할 수 있는 게임은 제품 목록에 있습니다.