PC 및 콘솔 - API 엔드포인트 레퍼런스

PC 및 Console API 엔드포인트 레퍼런스

세션 추적과 이벤트 리포팅을 위한 상세한 파라미터 명세와 구현 예제를 제공하는, PC 및 Console server-to-server 엔드포인트에 대한 완전한 API 레퍼런스입니다.

관련 레퍼런스: PC 및 Console은 제품군의 나머지 부분과 동일한 S2S 엔드포인트를 사용합니다. 모바일 및 웹에 해당하는 내용은 SESSION 엔드포인트 레퍼런스EVENT 엔드포인트 레퍼런스를 참고하세요. 이 레퍼런스는 PC 및 Console의 세션 및 이벤트 엔드포인트를 다룹니다.

엔터프라이즈 기능: PC 및 Console 게임 어트리뷰션은 엔터프라이즈 기능입니다. 자세한 내용은 PC 및 Console 게임 어트리뷰션 FAQ 를 참조하거나 고객 성공 매니저에게 문의하세요.

연동 가이드: 완전한 구현 지침과 모범 사례는 PC 및 Console S2S 연동 가이드 를 참조하세요.


세션 알림 엔드포인트

인스톨 어트리뷰션, 리인게이지먼트 추적, 사용자 리텐션 분석을 위해 게임 실행과 세션을 Singular에 리포팅합니다.

엔드포인트 명세

메서드 URL
POST https://s2s.singular.net/api/v1/launch

파라미터는 application/x-www-form-urlencoded 요청 본문으로 전송됩니다. 다음 필수 헤더를 포함하세요:

Content-Type: application/x-www-form-urlencoded

목적

세션 알림 엔드포인트를 사용하여 모든 게임 실행(최초 및 반복 세션)을 거의 실시간으로 리포팅하세요. Singular Device ID로 식별되는 인스톨에 대해 Singular가 수신한 최초 게임 실행이 어트리뷰션 프로세스를 트리거합니다.

어트리뷰션 워크플로우:

  • 최초 세션: 웹 캠페인 클릭과의 매칭을 통해 인스톨 어트리뷰션을 트리거합니다
  • 이후 세션: 사용자 활동, 리텐션, 리인게이지먼트 분석을 위해 추적됩니다
  • 실시간 리포팅: 세션 알림을 실제 게임 실행에 최대한 가깝게 전송하세요

세션 파라미터

필수 파라미터

파라미터 세부 정보
a

유형: String
필수. API 인증을 위한 Singular SDK Key.
검색 위치: Singular UI → 메인 메뉴 → Developer Tools .

중요: Reporting API Key를 사용하지 마십시오. 요청이 거부됩니다.

예시: sdkKey_afdadsf7asf56

p

유형: String
필수. 대소문자를 구분합니다. 사용자가 게임을 플레이하는 플랫폼입니다.
지원되는 값:
예시: PC

  • PC
  • Xbox
  • Playstation
  • Nintendo
  • MetaQuest
i

유형: String
필수. 대소문자를 구분합니다. 역방향 DNS 표기법을 권장합니다. 게임에 고유한 게임 식별자입니다.

중요: 어트리뷰션이 작동하려면 Web SDK Product ID와 정확히 일치해야 합니다. 동일한 게임에 대해 모든 플랫폼에서 같은 값을 사용하세요.

예시: com.singular.game

sdid

유형: UUIDv4
필수. UUID 버전 4 형식을 권장합니다. 고유한 게임 인스톨과 사용자 활동을 식별하는 Singular Device ID입니다.
생성: 최초 실행 시 게임/서버에서 생성되며, 게임 인스톨의 수명 동안 유지됩니다.
예시: 49c2d3a6-326e-4ec5-a16b-0a47e34ed953

os

유형: String
필수. 커스텀 값을 지원합니다. 운영체제 또는 게임 시스템입니다.
플랫폼별 권장 값:
PC: windows, linux, macos, steamos
Xbox: xbox_one, xbox_360, xbox_series_s, xbox_series_x
PlayStation: playstation_3, playstation_4, playstation_5
Nintendo: nintendo_switch
Meta Quest: metaquest, metaquest_2, metaquest_pro
예시: windows

install_source

유형: String
필수. 커스텀 값을 지원합니다. 게임 스토어 또는 배포 방식입니다.
권장 값:
커스텀 값을 지원합니다.
예시: steam

  • steam
  • epicgamestore
  • microsoftstore
  • gog
  • humblestore
  • xbox
  • playstation
  • nintendo
  • metaquest
  • selfdistributed
ip

유형: String
필수. IPv4 또는 IPv6 형식입니다. use_ip=true 인 경우 필수가 아닙니다. 게임 실행 시점의 디바이스 IP 주소입니다.

대안: 명시적으로 전달하는 대신 use_ip=true를 사용하여 HTTP 요청 헤더에서 IP를 추출할 수 있습니다.

예시: 172.58.29.235


선택적 파라미터

다음 선택적 파라미터가 지원됩니다.

파라미터 세부 정보
install_ref

유형: String
선택 사항. 최초 실행 시에만 사용됩니다. JSON URL 인코딩된 Google Install Referrer 정보입니다. Google Play Games 스토어를 통해 배포되는 Native PC 게임에 가장 정확한 어트리뷰션을 제공합니다.

요구사항:

  • 전달하려면 Play Games PC SDK 구현이 필요합니다
  • 최초 게임 실행 시에만 전송해야 합니다

구현 세부 사항은 Native PC용 Google Play Install Referrer 문서 를 참조하세요.
예시: %7B%22install_time_epoch_seconds%22%3A%221568939453%22
%2C%22install_referrer%22%3A%22utm_source%3Dgoogle-play%26utm_medium%3Dorganic%22%7D

match_id

유형: String
선택 사항. 최초 실행 시에만 사용됩니다. 웹 클릭을 게임 인스톨에 매칭하는 결정론적 어트리뷰션을 위한 식별자입니다.

요구사항:

  • 최초 게임 실행 시에만 전송해야 합니다
  • Web SDK 구현의 값과 일치해야 합니다
  • PII인 경우 SHA-256으로 해시 처리해야 합니다

구현 세부 사항은 Match ID 어트리뷰션 을 참조하세요.
예시: matchid_12345

av

유형: String
선택 사항. 애플리케이션 버전 또는 게임 빌드 식별자입니다.
예시: 1.1.5.581823a

global_properties

유형: JSON
선택 사항. URL 인코딩된 JSON입니다. 최대 5개 속성, 각각 최대 200자입니다. 사용자에 대해 저장되며 이후 모든 요청에 걸쳐 유지되는 키-값 쌍입니다.
이전에 설정한 값을 전송하지 않으면 해당 값이 해제됩니다.
예시: %7B%22key1%22%3A%22value1%22%7D

install

유형: Boolean
선택 사항. 게임 인스톨 후 최초 세션임을 나타내는 인스톨 플래그입니다. 재설치 추적 기능에 필요합니다.
예시: true

utime

유형: Integer
선택 사항. UNIX 타임스탬프(초)입니다. UNIX 시간으로 표현한 게임 실행 시각입니다.
예시: 1483228800

umilisec

유형: Integer
선택 사항. UNIX 타임스탬프(밀리초)입니다. UNIX 시간으로 표현한 게임 실행 시각입니다.
예시: 1483228800000

ve

유형: String
선택 사항. 예시: 9.2

세션 시점의 디바이스 OS 버전.
ua

유형: String
선택 사항. URL 인코딩된 User Agent 문자열.
원본: Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15...
예시: Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2014_0...

use_ip

유형: Boolean
선택 사항. Singular에게 ip 파라미터 대신 HTTP 요청에서 IP 주소를 추출하도록 지시합니다.

제한 사항:

  • Singular의 IP 기반 지리적 위치 확인을 방지합니다.
  • 두 글자 국가 코드를 country 파라미터를 통해 제공하십시오.
  • ip 파라미터와 상호 배타적입니다—둘 다 사용하지 마십시오.
  • 데이터 거부를 방지하려면 ip 또는 use_ip 중 하나를 반드시 제공해야 합니다.

예시: true

data_sharing_options

유형: JSON
선택 사항. 데이터 공유에 대한 최종 사용자 동의를 담은 JSON URL 인코딩 값. 반드시 유지되어야 하며 이후 모든 SESSION 및 EVENT 요청에서 전달되어야 합니다.
사용자 동의(옵트인):
사용자 거부(옵트아웃):
예시: %7B%22limit_data_sharing%22%3Atrue%7D

{"limit_data_sharing":false}
{"limit_data_sharing":true}
custom_user_id

유형: String
선택 사항. 크로스 디바이스 트래킹을 위한 내부 사용자 ID.

PII 금지: 개인 식별 정보를 전달하지 마십시오. 원본 이메일 주소, 전화번호, 이름 대신 해시 처리되거나 익명화된 내부 식별자를 사용하십시오.

예시: 123456789abcd


요청 예제

샘플 구현

CURL PYTHON JAVASCRIPT

기본 세션 요청

curl -X POST "https://s2s.singular.net/api/v1/launch" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "ip=172.58.29.235"

Match ID를 포함한 최초 실행

curl -X POST "https://s2s.singular.net/api/v1/launch" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "ip=172.58.29.235" \
  --data-urlencode "match_id=abc123def456" \
  --data-urlencode "install=true"

이벤트 알림 엔드포인트

파트너 Conversion API 지원: Singular의 Conversion API 연동을 통해 이러한 이벤트를 광고 네트워크 파트너에게 전달하려면, 표준 선택적 이벤트 속성(예: eventIdehash 와 같은 해시 처리된 퍼스트 파티 데이터)을 포함하세요. Conversion API 연동을 위한 표준 이벤트 속성 을 참조하세요.

분석, 캠페인 최적화, 파트너 전달을 위해 인게임 이벤트를 Singular에 리포팅합니다.

2026년 7월 15일부터 V2 필수. 2026년 7월 15일 이후에 생성된 계정은 Event Endpoint V2(SDID 기반)를 사용해야 하며, 신규 계정에는 V1을 사용할 수 없습니다. 이미 V1으로 연동된 기존 고객은 영향을 받지 않습니다. V2로 마이그레이션하려면 담당 Singular Customer Success Manager에게 문의하세요.

엔드포인트 명세

메서드 URL
POST https://s2s.singular.net/api/v2/evt

파라미터는 application/x-www-form-urlencoded 요청 본문으로 전송됩니다. 다음 필수 헤더를 포함하세요:

Content-Type: application/x-www-form-urlencoded

목적

이벤트 알림 엔드포인트를 사용하여 원하는 모든 인게임 이벤트를 거의 실시간으로 리포팅하세요. 이벤트 데이터는 분석, 리포팅, 파트너 최적화, 캠페인 성과 측정에 사용됩니다.

이벤트 모범 사례:

  • 표준 이벤트: 자동 파트너 매핑을 위해 Singular 표준 이벤트 이름 을 사용하세요
  • 실시간 리포팅: 이벤트를 실제 발생 시점에 최대한 가깝게 전송하세요
  • 매출 이벤트: 구매 추적 및 ROI 분석을 위해 매출 파라미터를 포함하세요

이벤트 파라미터

필수 파라미터

파라미터 세부 정보
a

유형: String
필수. API 인증을 위한 Singular SDK Key.
검색 위치: Singular UI → 메인 메뉴 → Developer Tools .

중요: Reporting API Key를 사용하지 마십시오. 요청이 거부됩니다.

예시: sdkKey_afdadsf7asf56

p

유형: String
필수. 대소문자를 구분합니다. 사용자가 게임을 플레이하는 플랫폼입니다.
지원되는 값: PC, Xbox, Playstation, Nintendo, MetaQuest
예시: PC

i

유형: String
필수. 대소문자를 구분합니다. 역방향 DNS 표기법을 권장합니다. 게임에 고유한 게임 식별자입니다.
세션 알림 및 Web SDK Product ID에 사용된 값과 일치해야 합니다.
예시: com.singular.game

sdid

유형: UUIDv4
필수. 고유한 게임 인스톨을 식별하는 Singular Device ID입니다.
세션 알림에 사용된 SDID와 일치해야 합니다.
예시: 49c2d3a6-326e-4ec5-a16b-0a47e34ed953

n

유형: String
필수. 최대 32 ASCII 문자입니다. 인게임 액션 또는 마일스톤을 식별하는 이벤트 이름입니다.

권장: 자동 파트너 연동을 위해 Singular 표준 이벤트 이름 을 사용하세요.

예시: sng_achievement_unlocked

os

유형: String
필수. 커스텀 값을 지원합니다. 운영체제 또는 게임 시스템입니다.
세션 알림에 사용된 값과 일치해야 합니다.
예시: windows

install_source

유형: String
필수. 커스텀 값을 지원합니다. 게임 스토어 또는 배포 방식입니다.
세션 알림에 사용된 값과 일치해야 합니다.
예시: steam

ip

유형: String
필수. IPv4 또는 IPv6 형식입니다. use_ip=true 인 경우 필수가 아닙니다. 이벤트 시점의 디바이스 IP 주소입니다.
예시: 172.58.29.235


선택적 파라미터

다음 선택적 파라미터가 지원됩니다.

파라미터 세부 정보
e

유형: JSON
선택 사항. URL 인코딩된 JSON이며, 속성당 최대 500 ASCII 문자입니다. 이벤트에 대한 풍부한 정보를 제공하는 커스텀 이벤트 속성입니다.

권장: 파트너 호환성을 위해 Singular 표준 속성 이름 을 사용하세요.

예시: %7B%22sng_attr_content_id%22%3A5581%7D

is_revenue_event

유형: Boolean
매출 이벤트에 필수. 이벤트를 매출 이벤트로 표시합니다.
이벤트 이름이 __iap__ 이거나 0이 아닌 amt 가 제공된 경우 생략할 수 있습니다.
예시: true

amt

유형: Number
매출 이벤트에 필수. 매출 이벤트의 통화 금액입니다.
cur 파라미터와 함께 사용합니다.
예시: 2.51

cur

유형: String
매출 이벤트에 필수. 매출 이벤트에 대한 ISO-4217 세 자리 통화 코드입니다.
amt 파라미터와 함께 사용합니다.
참조: ISO-4217 통화 코드
예시: EUR

av

유형: String
선택 사항. 애플리케이션 버전 또는 게임 빌드 식별자입니다.
예시: 1.1.5.581823a

global_properties

유형: JSON
선택 사항. URL 인코딩된 JSON입니다. 최대 5개 속성, 각각 최대 200자입니다. 사용자에 대해 저장되는 키-값 쌍입니다.
설정된 경우 이후 모든 요청에 걸쳐 유지되어야 합니다.
예시: %7B%22key1%22%3A%22value1%22%7D

utime

유형: Integer
선택 사항. UNIX 타임스탬프(초)입니다. UNIX 시간으로 표현한 이벤트 시각입니다.
예시: 1483228800

umilisec

유형: Integer
선택 사항. UNIX 타임스탬프(밀리초)입니다. UNIX 시간으로 표현한 이벤트 시각입니다.
예시: 1483228800000

ve

유형: String
선택 사항. 예시: 9.2

세션 시점의 디바이스 OS 버전.
ua

유형: String
선택 사항. URL 인코딩된 User Agent 문자열.
원본: Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15...
예시: Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2014_0...

use_ip

유형: Boolean
선택 사항. Singular에게 ip 파라미터 대신 HTTP 요청에서 IP 주소를 추출하도록 지시합니다.

제한 사항:

  • Singular의 IP 기반 지리적 위치 확인을 방지합니다.
  • 두 글자 국가 코드를 country 파라미터를 통해 제공하십시오.
  • ip 파라미터와 상호 배타적입니다—둘 다 사용하지 마십시오.
  • 데이터 거부를 방지하려면 ip 또는 use_ip 중 하나를 반드시 제공해야 합니다.

예시: true

data_sharing_options

유형: JSON
선택 사항. 데이터 공유에 대한 최종 사용자 동의를 담은 JSON URL 인코딩 값. 반드시 유지되어야 하며 이후 모든 SESSION 및 EVENT 요청에서 전달되어야 합니다.
사용자 동의(옵트인):
사용자 거부(옵트아웃):
예시: %7B%22limit_data_sharing%22%3Atrue%7D

{"limit_data_sharing":false}
{"limit_data_sharing":true}
custom_user_id

유형: String
선택 사항. 크로스 디바이스 트래킹을 위한 내부 사용자 ID.

PII 금지: 개인 식별 정보를 전달하지 마십시오. 원본 이메일 주소, 전화번호, 이름 대신 해시 처리되거나 익명화된 내부 식별자를 사용하십시오.

예시: 123456789abcd


요청 예제

샘플 구현

CURL PYTHON JAVASCRIPT

표준 이벤트

curl -X POST "https://s2s.singular.net/api/v2/evt" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "n=sng_level_achieved" \
  --data-urlencode 'e={"sng_attr_level":"5","sng_attr_score":"1250"}' \
  --data-urlencode "ip=172.58.29.235"

매출 이벤트

curl -X POST "https://s2s.singular.net/api/v2/evt" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "a=your_sdk_key" \
  --data-urlencode "i=com.singular.game" \
  --data-urlencode "sdid=49c2d3a6-326e-4ec5-a16b-0a47e34ed953" \
  --data-urlencode "p=PC" \
  --data-urlencode "os=windows" \
  --data-urlencode "install_source=steam" \
  --data-urlencode "n=__iap__" \
  --data-urlencode "is_revenue_event=true" \
  --data-urlencode "amt=9.99" \
  --data-urlencode "cur=USD" \
  --data-urlencode "ip=172.58.29.235"

응답 처리

두 엔드포인트 모두 일관된 JSON 응답을 반환하며, 성공 또는 오류를 판단하기 위해 status 필드 검증이 필요합니다.

응답 형식

중요: 모든 응답은 HTTP 200 상태 코드를 반환합니다. 성공 ( ok ) 또는 실패( error )를 판단하려면 항상 응답 본문의 status 필드를 검증하세요.

완전한 응답 코드 문서와 오류 처리 전략은 S2S 응답 코드 및 오류 처리 를 참조하세요.


추가 리소스