Skip to main content
PlayCamp가 제공하는 웹 기반 UI를 통해 부스트/쿠폰 기능을 제공하는 방법을 설명합니다.

개요

WebView는 PlayCamp가 제공하는 부스트/쿠폰 관리 웹 UI입니다. 게임 내 임베디드 브라우저(WebView)뿐만 아니라 외부 브라우저에서도 동작합니다. 별도의 UI 개발 없이 크리에이터 부스트와 쿠폰 기능을 제공할 수 있습니다.
게임 내 임베디드 브라우저, 외부 브라우저(모바일/PC) 모두 지원됩니다. 게임 환경에 맞게 적합한 방식을 선택하세요.

Server API 직접 연동 vs WebView 비교

WebView와 Server API 직접 연동은 동시에 사용 가능합니다. 예를 들어 부스트는 WebView로, 결제 등록은 Server API로 처리할 수 있습니다.

아키텍처

연동 흐름

1

OTT 발급 (게임 서버)

게임 서버에서 Server API Key로 OTT(One-Time Token)를 발급합니다.
2

WebView 열기 (게임 클라이언트)

게임 서버로부터 받은 OTT를 URL 파라미터에 포함하여 WebView를 엽니다.
3

유저 인터랙션

유저가 WebView에서 크리에이터 부스트 등록/변경/해제, 쿠폰 검증/사용 등을 수행합니다. 별도의 게임 서버 처리가 필요 없습니다.
4

웹훅으로 결과 수신

WebView에서 발생한 이벤트(부스트 등록, 쿠폰 사용 등)가 웹훅으로 게임 서버에 전달됩니다.

OTT 발급 API

요청

파라미터

응답 (201 Created)

OTT는 1회성이며 60초 TTL입니다. 발급 후 빠르게 WebView를 열어야 합니다. 반드시 게임 서버에서 발급해야 하며, 클라이언트에서 직접 발급하면 Server Key가 노출됩니다.

WebView URL 구성

기본 URL

옵션 파라미터

tabs 옵션
tabs 미지정 시 기본 탭이 표시됩니다 (sponsor, coupon).

테마 커스터마이징

WebView의 색상과 폰트를 URL 파라미터로 커스터마이징할 수 있습니다.
hex 색상값은 # 없이 입력합니다. 예: primaryColor=FF6B35
전체 예시

주요 기능

부스트 관리

WebView에서 유저가 크리에이터를 검색하고 부스트를 등록/변경/해제할 수 있습니다.
  • 크리에이터 검색: 크리에이터 키 또는 이름으로 검색 (실시간 자동완성)
  • 부스트 등록: 선택한 크리에이터에게 부스트 등록
  • 부스트 변경: 다른 크리에이터로 변경 (30일 쿨다운 적용)
  • 부스트 해제: 현재 부스트 해제
부스트 화면 - 모바일
부스트 화면 - PC 크리에이터 키 프리필 URL에 크리에이터 키를 포함하여 검색 폼을 미리 채울 수 있습니다:

쿠폰 사용

2단계로 쿠폰을 사용합니다: 검증 → 사용
  • 코드 입력: 5-50자, 자동 대문자 변환, 한글 입력 시 영문 키 위치로 자동 변환
  • 검증: 유효성 확인 및 보상 아이템 미리보기
  • 사용: 확인 버튼으로 최종 사용 (사용 ID 반환)
쿠폰 화면 - 모바일
쿠폰 화면 - PC

웹훅 이벤트 연동

WebView에서 유저가 수행한 액션은 웹훅으로 게임 서버에 전달됩니다.

WebView에서 발생하는 이벤트

웹훅 페이로드 예시

sponsor.created (부스트 등록)
coupon.redeemed (쿠폰 사용)
OTT 발급 시 callbackId를 지정하면, 해당 세션에서 발생하는 모든 웹훅 이벤트에 지정된 ID가 포함됩니다. 웹훅 수신 및 서명 검증 방법은 웹훅 이벤트 페이지를 참고하세요.

보안

OTT (One-Time Token)

  • 1회성: OTT는 세션 교환 시 즉시 삭제됩니다. 재사용 불가합니다
  • 60초 TTL: 발급 후 60초 내에 사용해야 합니다
  • 서버 발급 필수: Server API Key가 필요하므로 게임 서버에서만 발급 가능

세션 관리

  • 세션 쿠키: httpOnly, SameSite=strict 설정으로 XSS/CSRF 공격 방지
  • 세션 TTL: 10분 (마지막 API 호출 기준으로 자동 연장)
  • 단일 세션: 같은 유저는 하나의 세션만 허용. 새 세션 생성 시 기존 세션 자동 무효화

CSRF 보호

WebView 내부의 상태 변경 요청(POST/PUT/DELETE)에는 CSRF 토큰이 자동으로 포함됩니다. 게임사에서 별도로 처리할 필요 없습니다.

PKCE (선택)

앱 환경에서 추가 보안이 필요한 경우 PKCE(Proof Key for Code Exchange)를 사용할 수 있습니다.

FAQ

세션 만료 시 어떻게 되나요?

세션이 만료되면 WebView에 재접속 안내 화면이 표시됩니다. 유저가 계속 사용하려면 게임 서버에서 새 OTT를 발급받아 WebView를 다시 열어야 합니다.
세션 TTL은 10분이며, API 호출 시마다 자동 연장됩니다. 단, 유휴 상태(아무 동작 없이 방치)에서는 연장되지 않습니다.

campaignId 스코핑이란?

OTT 발급 시 campaignId를 지정하면 WebView 전체가 해당 캠페인으로 범위가 제한됩니다:
  • 부스트 등록/변경/해제 시 해당 캠페인의 크리에이터만 표시
  • 캠페인 목록 대신 해당 캠페인 정보만 표시
  • 해당 캠페인에 참여하는 크리에이터만 검색 가능
존재하지 않는 campaignId를 지정하면 OTT 발급이 실패합니다 (404).

다국어는 어떻게 지원되나요?

  • 기본: 브라우저 언어 설정에 따라 자동 감지 (한국어/영어)
  • URL 파라미터 지정: ?lang=ko 또는 ?lang=en
  • 유저가 변경한 언어 설정은 브라우저에 저장되어 다음 접속 시에도 유지됩니다

OTT를 미리 발급해둘 수 있나요?

권장하지 않습니다. OTT는 60초 TTL이므로, 유저가 WebView 열기를 요청하는 시점에 발급하세요.

WebView에서 결제도 되나요?

아니요. WebView는 부스트와 쿠폰 기능만 제공합니다. 결제 등록은 게임 서버에서 Server API를 직접 호출해야 합니다.

동시에 여러 기기에서 접속하면 어떻게 되나요?

같은 유저는 하나의 세션만 허용됩니다. 새 기기에서 WebView를 열면 이전 기기의 세션이 자동으로 무효화되고, 이전 기기에서는 세션 만료 안내가 표시됩니다.