For the complete documentation index, see llms.txt. This page is also available as Markdown.

ONEquest 인게임 연동 가이드

ONEquest(원퀘스트)는 게임사가 원하는 시점에 목표에 맞는 퀘스트를 설정하여 원스토어 유저의 게임 참여를 유도할 수 있는 마케팅 도구입니다. 인게임 액션 퀘스트를 제공하려면, 게임 내 액션의 완료 여부를 ONEquest에 전달할 수 있도록 게임사 측 개발 연동이 필요합니다.

1. 개요

퀘스트 이용자가 게임 내 특정 액션(퀘스트)을 달성하고 보상을 신청할 때, 원퀘스트 서버가 게임사 API 를 호출해 달성 여부를 실시간으로 검증합니다. 게임사는 본 문서의 규격에 맞춰 2개의 API 를 구현해 제공해야 합니다.

API
호출 시점
역할

최초 계정 연동 시

입력된 game_user_id 가 게임 서버에 실제로 존재하는 유저인지 확인합니다.

보상 신청 시

해당 유저가 지정된 퀘스트를 달성했는지 실시간 조회 후 결과 반환 합니다.

두 API 모두 원퀘스트 서버 → 게임사 서버 방향의 Server-to-Server 통신입니다. 게임 클라이언트(앱)에는 추가 개발이 필요하지 않습니다. 게임사가 원퀘스트를 호출하는 API 는 없습니다.

2. 연동 프로세스

안정적인 보상 지급과 유저 편의를 위해 ① 최초 계정 연동 과 ② 인게임 액션 검증 의 2단계로 동작합니다.

Phase 1. 최초 계정 연동 — 유저당 1회

순서
주체
동작

1

User

게임 ID(game_user_id) 입력 후 '연동하기' 선택

2

원퀘스트

게임사 유저 유효성 확인 API 호출

3

Game Server

유저 존재 여부 확인 후 success 반환

4

원퀘스트

유효한 유저이면 game_user_id 를 저장. 이후 같은 퀘스트 그룹의 모든 퀘스트에 재사용

Phase 2. 인게임 액션 검증 — 보상 신청 시마다

순서
주체
동작

1

User

퀘스트 달성 후 ID 입력 없이 '보상 받기' 선택

2

원퀘스트

저장된 game_user_id 로 게임사 인게임 액션 검증 API 자동 호출

3

Game Server

유저의 퀘스트 달성 데이터 조회 및 결과 반환

4

원퀘스트

결과에 따라 유저에게 리워드 지급

하나의 game_user_id 는 원스토어 계정 1개에만 연동됩니다. 이미 다른 원스토어 계정에 연동된 식별자로는 연동할 수 없습니다(중복 참여 방지).

3. 사전 준비 사항

3.1 개발 필수 요건

항목
요건

프로토콜

HTTPS 권장 (HTTP 허용 시 별도 협의). 엔드포인트 호스트는 IP 주소가 아닌 DNS 도메인(호스트명) 으로 제공해 주시기 바랍니다

응답 속도 (SLA)

API 응답은 요청 후 500ms 이내에 완료되어야 합니다

데이터 형식

요청 및 응답 본문은 JSON 형식을 사용합니다 (Content-Type: application/json)

식별자 전달

game_user_id 는 HTTP 메서드 종류와 관계없이 쿼리 파라미터(Query String) 로 수신해야 합니다. 표준이 요구하는 필수 파라미터는 game_user_id 하나입니다

엔드포인트

경로·호스트는 게임 서비스 환경에 맞게 자율 구성 가능합니다. 단 요청·응답 데이터 규격은 반드시 본 표준을 준수해야 합니다

리다이렉트

등록한 URL 이 최종 URL 이어야 합니다. 원퀘스트는 3xx 리다이렉트를 따라가지 않습니다

3.2 방화벽 허용 IP

원퀘스트 서버가 게임사 API 를 호출하므로, 게임사 서버(방화벽)는 아래 원퀘스트 발송 IP(Source IP)에 대해 인바운드 접근을 허용해야 합니다.

환경
허용해야 할 IP 주소 (Source IP)

개발(QA) 서버

211.188.207.190

운영(상용) 서버

211.188.201.250

3.3 콘솔 등록

구현한 API 는 개발자센터 ONEconsole > Quest 메뉴에서 개발사가 직접 등록합니다. 원퀘스트는 여기 등록된 URL 에 game_user_id 쿼리 파라미터만 붙여 호출합니다.

등록 단위
항목
설명

퀘스트 그룹

퀘스트 그룹 당 1개.

퀘스트 (인게임 액션)

퀘스트마다 1개. 경로에 게임사 자체 퀘스트 식별자를 포함하는 방식을 권장합니다

등록 화면에서 통신 테스트를 제공합니다. 입력한 URL 로 실제 호출을 보내 도달 여부와 응답 규격을 확인하며, 통신 테스트를 통과해야 퀘스트를 등록 가능 합니다.

테스트는 "도달 가능하고 규격에 맞는 JSON 을 반환하는가" 를 확인하는 것이므로, 달성/미달성 어느 결과여도 통과합니다. URL 이나 HTTP Method 를 변경하면 다시 테스트해야 합니다.

4. game_user_id

두 API 모두 유저 식별자로 game_user_id 하나만을 필수 파라미터로 사용합니다.

항목
설명

타입

String

형식

UUID — 표준 UUID(36자) 형식 8-4-4-4-12

최대 길이

255자 이내

전달 위치

HTTP 메서드 종류와 관계없이 쿼리 파라미터(Query String) 로 수신

예시

13f664fc-3d8a-f011-94e3-e0451a3b66b3

5. 유저 유효성 확인 API

원퀘스트 이용자가 게임 계정을 최초 연동할 때, 입력한 game_user_id 가 게임 서버에 실제로 존재하는지 확인하는 API 입니다.

5.1 요청 (Request)

항목
값

Method

GET (예시)

Endpoint (예시)

https://{Game_Server_Host}/onequest/users/validate?game_user_id=13f664fc-3d8a-f011-94e3-e0451a3b66b3

Content-Type

application/json

엔드포인트 경로는 예시이며, 게임 서비스 환경에 맞게 구성 후 ONEconsole 에 등록해 주세요. 요청·응답 데이터 규격은 변경할 수 없습니다.

구분
파라미터명
타입
필
설명

Query

game_user_id

String

Y

검증할 게임 내 유저 식별자 (UUID, 최대 255자)

Request Example

5.2 응답 (Response)

필드명
타입
필수
설명

success

Boolean

Y

유효한 유저 여부 (true: 존재함, false: 존재하지 않음)

joined_at

String

N

게임 가입 일시. ISO 8601 형식(타임존 포함)

성공 - 유효한 유저

실패 - 존재하지 않는 유저

6. 인게임 액션 검증 API

유저가 게임 내 특정 퀘스트를 완수하고 보상을 신청하는 시점에, 해당 유저의 실제 달성 여부를 실시간으로 조회·검증하는 API 입니다. 퀘스트마다 ONEconsole 에 등록한 URL 로 호출됩니다.

6.1 요청 (Request)

항목
값

Method

GET (예시)

Endpoint (예시)

https://{Game_Server_Host}/onequest/quests/{quest_id}/verify?game_user_id=13f664fc-3d8a-f011-94e3-e0451a3b66b3

Content-Type

application/json

구분
파라미터명
타입
필수
설명

Path

quest_id

String

N

게임사 자체 퀘스트 식별자. 원퀘스트는 URL 을 해석하지 않고 등록된 URL 그대로 호출하므로, 퀘스트별 조건(레벨·튜토리얼 완료 등)은 게임사 서버가 URL 로 구분합니다

Query

game_user_id

String

Y

게임 내 유저 식별자 (UUID). Phase 1 에서 연동 저장된 값

Request Example

6.2 응답 (Response)

검증 결과에 따라 달성(true) 또는 미달성(false)을 명확히 반환해야 합니다.

필드명
타입
필수
설명

success

Boolean

Y

퀘스트 달성 여부 (true: 달성, false: 미달성)

message

String

Y

결과 메시지. 실패 시 사유 포함 권장(운영 확인용이며 유저에게 그대로 노출되지 않습니다)

성공 - 퀘스트 달성

실패 - 퀘스트 미달성

실패 - 존재하지 않는 유저

7. 예외 처리 및 응답 코드

정상적인 검증 로직 수행이 불가능한 경우(서버 점검 등)에는 적절한 HTTP 상태 코드를 반환해야 합니다.

HTTP Code
상태 (Status)
설명 및 처리 가이드
원퀘스트 측 유저 안내

200

OK

정상 처리. Body 의 success 값으로 달성/미달성 판별

달성: 리워드 지급 / 미달성: 조건 미충족 안내

401 / 403

Unauthorized / Forbidden

허용되지 않은 IP 에서의 요청 (보안 차단)

일시적으로 확인할 수 없음. 원퀘스트 운영 알림 대상(허용 IP 누락 의심)

500

Internal Server Error

게임사 서버 내부 오류

일시적으로 확인할 수 없음

503

Service Unavailable

서버 점검 또는 일시적 서비스 불가. 점검 시 타임아웃을 기다리지 않고 즉시 503 을 반환해야 합니다

"게임 점검 중" 안내

원퀘스트 서버의 호출 정책

항목
값
비고

타임아웃

connect 1초 / read 3초

초과 시 실패(일시적으로 확인 불가) 처리. SLA 500ms 를 지키면 도달하지 않는 값입니다

재시도

없음 (1회 호출)

유저가 다시 시도하면 새 호출이 발생합니다. 검증 API 가 조회 전용이어야 하는 이유입니다

리다이렉트

3xx 미추적 — 실패 처리

등록 URL 이 최종 URL 이어야 합니다

2xx 이지만 본문이 JSON 이 아니거나 success 가 없음

실패 처리

빈 본문 포함

장애 격리

게임사별 차단

특정 게임사 API 실패가 누적되면 일정 시간 호출을 차단하고 유저에게 일시 확인 불가를 안내합니다. 다른 게임사 퀘스트에는 영향이 없습니다

8. 구현 예시

상황: 유저(game_user_id = 13fc-...)가 '레벨 30 달성 (게임사 Quest ID: 1)' 퀘스트를 완료하고 보상을 요청

1

유저 유효성 확인 (최초 연동 시 1회)

  • 원퀘스트 요청: GET /onequest/users/validate?game_user_id=13f664fc-...

  • 게임사 응답: {"success": true}

  • 결과: 유효한 유저 확인. 원스토어 계정과 연동 저장

2

인게임 액션 달성 검증

  • 원퀘스트 요청: GET /onequest/quests/1/verify?game_user_id=13f664fc-... (Source IP: 211.188.201.250)

  • 게임사 서버 로직: (1) Source IP 가 허용 목록에 있는지 확인 → Pass (2) DB 조회: 해당 유저의 레벨 확인 → Lv.32 (조건 충족)

  • 게임사 응답: {"success": true, "message": "Quest Complete"}

3

최종 처리

  • 원퀘스트: 같은 유저·같은 퀘스트는 1회만 지급됩니다

9. 연동 체크리스트

추가 원퀘스트 개발 연동 관련 문의는 quest@onestorecorp.com 으로 부탁 드립니다.

Last updated