콘텐츠로 이동

이벤트 속성 전송

개요

게임 이벤트 로그는 필수 속성, 사용자 정의 속성으로 구성됩니다. Hive SDK v4를 연동하면 별도 전송 없이도 자동으로 수집되는 속성이 추가됩니다.


필수 속성

게임 이벤트 로그를 전송할 때 반드시 포함 해야 하는 속성입니다.

필수 속성 네이밍 규칙

필수 속성명은 카멜 케이스(camelCase) 또는 소문자(lowercase)로 전송해야 합니다. user_id와 같이 스네이크 케이스(snake_case)로 전송하면 정상 처리되지 않고 rescue 테이블로 격리됩니다.

속성명 설명 자료형 예시
userId 계정 기준 유저 식별자 STRING 100001
deviceId 단말 기준 유저 식별자 STRING 100000
identifierProvider 유저 식별자 발급 시스템. hive 고정 STRING hive
appId Hive 콘솔 > 앱센터에 등록된 Project ID STRING com.com2us.game.ios
appIdGroup Hive 콘솔 > 앱센터에서 발급하는 Game ID. appId 전송 시 자동 생성 STRING com.com2us.game
eventTime 이벤트 발생 시각. RFC 3339 국제 표준 (타임존 포함) STRING 2026-07-20T14:01:01+09:00
eventName 이벤트를 분류하는 이벤트명 STRING asset_drop
appId / appIdGroup 전송 규칙

이벤트 전송 시 appId 또는 appIdGroup 중 하나를 반드시 포함해야 합니다.

  • appId를 아는 경우: appId만 전송하세요. appIdGroup은 자동 생성됩니다.
  • appId를 모르는 경우: appIdGroup을 직접 전송하세요.
  • 두 값을 동시에 전송하면 appId 기준으로 appIdGroup이 재생성되므로, appId를 전송할때는 appIdGroup을 포함하지 마세요.
필수 속성 전송 시 주의 사항

다음 조건 중 하나라도 해당하면 이벤트 로그가 rescue 테이블로 격리 됩니다.

  • appId 또는 appIdGroup 둘 다 없는 경우
  • 나머지 필수 속성(userId, identifierProvider, deviceId, eventTime,eventName) 중 하나라도 누락되거나 빈 값인 경우
  • 값을 알 수 없는 경우에도 빈 값으로 두지 말고, "0" 또는 "unknown"과 같은 임의의 값을 채워 전송하세요.

eventName 명명 규칙

eventName에 사용할 이벤트명은 아래 규칙을 따라 작성할 것을 권고합니다.

  • 권장 문자: 영문(a–z, A–Z, 대/소문자 구분), 숫자(0–9), 언더바(_)
  • 구분자: 단어 사이는 공백이 아닌 언더바(_)로 구분
  • 형태: 이벤트를 명확하게 설명하는 명사_동사 형태 권장
  • 예시: item_purchase, level_up, tutorial_complete, stage_start
Warning

위 규칙을 준수하지 않은 이벤트명은 분석에 활용하는 데 제한이 있을 수 있습니다.


eventTime 형식 규칙 (RFC 3339)

eventTimeRFC 3339 형식을 따르며, 반드시 타임존 정보를 포함해야 합니다.

형식:

YYYY-MM-DDTHH:MM:SS[.sss]+HH:MM 또는 YYYY-MM-DDTHH:MM:SSZ

허용 예시:

2026-07-20T14:01:01+09:00       (KST, 한국 표준시)
2026-07-20T05:01:01Z            (UTC)
2026-07-20T14:01:01.123+09:00   (밀리초 포함)
2026-07-20T23:01:01-05:00       (미국 동부 시간)

허용되지 않는 예시:

2026-07-20 14:01:01              (타임존 없음 → 격리)
2026-07-20                       (시간 없음 → 격리)
1719835261                       (Unix timestamp → 격리)
14:01:01                         (날짜 없음 → 격리)

eventTime

  • eventTime은 파이프라인에서 UTC로 변환 되어 테이블의 dateTime 컬럼에 저장됩니다. 원본 값은 attributes.eventAttributes.eventTime에 그대로 보존됩니다.
eventTime 전송 시 주의 사항

eventTime은 현재 시각 기준 과거 31일 ~ 미래 31일 범위 내의 값만 허용됩니다. 이범위를 벗어나면 이벤트 로그가 rescue 테이블로 격리됩니다.


사용자 정의 속성

게임에서 전송하고 싶은 정보를 속성명과 속성값으로 구성하여 필수 속성과 함께 직접 전송합니다.


속성명 규칙

규칙 설명 예시
시작 문자 반드시 영문 소문자 또는 대문자 로 시작 level, Stage
대소문자 구분 사용자 정의 속성은 대소문자를 구분합니다 market != Market != MARket
허용 특수문자 특수 문자는 언더스코어(_)만 허용 item_name

사용할 수 없는 속성명 (예약어)

사용자 정의 속성 전송 시 주의 사항

아래 예약어를 속성명으로 사용하면 rescue 테이블로 격리 됩니다. 대소문자와 관계없이 동일하게 적용됩니다.

예약어 비고
attributes 대소문자 무관 (예: Attributes, ATTRIBUTES)
eventAttributes 대소문자 무관
hiveAttributes 대소문자 무관

속성값 규칙

속성값 형태 주의 사항

속성값은 숫자형문자형 2가지만 전송 가능합니다. JSON 객체 , JSON 배열 , JSON 형태의 문자열 형태로 전송 시 rescue 테이블로 격리 됩니다.

자료형 설명 예시
숫자형 정수 또는 소수. 따옴표 없이 전송 "level": 10, "exp": 1.5
문자형 반드시 큰따옴표("")로 감싸서 전송 "character_name": "AA"

속성값이 JSON 객체 , JSON 배열 , JSON 형태의 문자열 형태인 경우 rescue 테이블로 격리 됩니다.

// JSON 객체 (허용되지 않음)
"info": {"key": "value"}

// JSON 배열 (허용되지 않음)
"items": [1, 2, 3]

// JSON 형태의 문자열 (허용되지 않음)
"data": "{\"key\": \"value\"}"


동일 속성명 중복 전송

동일한 속성명을 2개 이상 전송하면 속성값은 랜덤하게 선택되어 1개만 저장 됩니다.


Hive SDK v4 자동 수집 속성

클라이언트에서 Hive SDK v4로 이벤트 로그를 전송할 때만 자동 수집됩니다.

  • 사용자가 동일한 속성명으로 직접 값을 전송하면, SDK가 자동 수집한 값 대신 사용자가 전송한 값 이 저장됩니다.
  • 아래 속성은 테이블의 attributes.eventAttributes에 저장됩니다.

Hive SDK v4 이벤트 로그 전송 기능을 사용하는 경우, SDK가 클라이언트 디바이스에서 직접 수집하여 전송하는 속성입니다.

필수 속성

필수 속성 중 SDK v4가 자동으로 수집하는 속성입니다. (eventName은 제외)

속성명 설명 예시
userId 계정 기준 유저 식별자. Hive SDK 연동 시 AuthV4.getPlayerInfo()playerId 100001
deviceId 단말 기준 유저 식별자. Hive SDK 연동 시 AuthV4.getPlayerInfo()did 100000
identifierProvider 유저 식별자 발급 시스템. 현재 Hive SDK 연동만 지원하므로 hive 고정 hive
appId Hive 콘솔 > 앱센터에 등록된 Project ID com.com2us.game.ios
appIdGroup Hive 콘솔 > 앱센터에서 발급하는 Game ID. appId 전송 시 자동 생성 com.com2us.game
eventTime 이벤트 발생 시각. RFC 3339 국제 표준 (타임존 포함) 2026-07-20T14:01:01+09:00

사용자/계정 식별 정보

속성명 설명 도메인 예시
vid 프로젝트(게임)별로 발급되는 사용자 계정 고유 식별자 (userId와 동일). 로그인 완료 후 유효합니다. Hive 플랫폼 (인증) 136910540
uid 하이브 멤버십 가입 시 발급되는 계정 고유 식별자로, vid의 상위 개념입니다. Hive 플랫폼 (멤버십) 223786026
did 앱 설치 시 디바이스별로 발급되는 고유 식별자 (deviceId와 동일). 앱 재설치 시 신규 발급됩니다. Hive 플랫폼 (프로비저닝) 938743951
vid_type vid의 발급 체계 및 계정 유형입니다. Hive 플랫폼 (앱센터) v4
analytics_id 기기 추적을 위해 클라이언트에서 생성 및 영속화하는 UUID. 앱 삭제 전까지 유지되며, MMP 트래커와 동일한 값을 공유합니다. Hive 플랫폼 (프로비저닝) 1qIXG3uDT4WzhV1e46GIYQ==

시간/식별 정보

속성명 설명 도메인 예시
dateTime 이벤트 로그 전송 시 생성되는 이벤트 발생 일시입니다. (yyyy-MM-dd HH🇲🇲ss 형식) Hive SDK (코어) 2026-01-01 00:00:00
guid 이벤트 로그 전송 시마다 생성되는 UUID (하이픈 제거). 이벤트 로그의 고유 식별 및 중복 제거에 사용됩니다. Hive SDK (코어) ecbfbd7fcdc340e1b8a433999c5290c1
is_hive_time 이벤트 로그의 타임스탬프가 Hive 서버 시간과 동기화되었는지 여부 플래그입니다. (Y/N) Hive SDK (코어) Y
timezone dateTime 값의 기준이 되는 타임존 오프셋 정보입니다. Hive SDK (코어) GMT+09:00
is_url_encode 이벤트 로그 전송 시 URL 인코딩 적용 여부를 나타내는 플래그입니다. (Y 고정) Hive SDK (코어) Y

디바이스 정보

속성명 설명 도메인 예시
model 기기의 하드웨어 모델 식별자입니다. 디바이스 iPhone17,3
os 기기의 운영체제 구분 코드입니다. (iOS: I, Android: A) 디바이스 I
os_version 기기의 운영체제 버전입니다. 디바이스 26.5.2
cpu 기기의 CPU 아키텍처입니다. 디바이스 arm64
language 기기에 설정된 사용자 선호 언어 및 로케일 코드입니다. 디바이스 ko-KR
device_country 기기 지역 설정에 기반한 국가 코드입니다. 디바이스 KR
hive_country 접속 IP를 기반으로 Hive 서버가 판정한 국가 코드. VPN 사용 시 기기 설정과 다를 수 있으며, 판정 불가 시 UNKNOWN으로 기록됩니다. Hive 플랫폼 (코어) KR

SDK/앱 빌드 정보

속성명 설명 도메인 예시
app_version 앱의 내부 빌드 버전입니다. Hive SDK (빌드) 1.0.32
app_version_display 스토어에 노출되는 앱 릴리즈 버전입니다. Hive SDK (빌드) 1.0.32
sdk_version 현재 프로젝트에 적용된 Hive SDK 버전입니다. Hive SDK (빌드) 4.26.4.0
interface_version 현재 적용된 SDK의 인터페이스 버전입니다. Hive SDK (빌드) 4.26.4.0
build_time 적용된 Hive SDK의 빌드 타임스탬프입니다. Hive SDK (빌드) 202605281104

SDK 설정 정보

속성명 설명 도메인 예시
server_id 클라이언트에서 API로 설정한 게임 서버 식별자입니다. Hive SDK (설정) kr
game_language API로 설정된 게임 내 표준 언어 코드입니다. 미설정 시 기기 언어로 대체됩니다. Hive SDK (설정) ko
channel 설정 파일 기준의 플랫폼 채널 구분자입니다. Hive SDK (설정) HIVE
market 앱이 출시된 마켓 코드입니다. (Apple: AP, Google: GO) Hive SDK (설정) AP
company 앱을 서비스하는 퍼블리셔 또는 회사 구분 문자열입니다. Hive 플랫폼 (앱센터) hive
companyIndex 앱을 서비스하는 퍼블리셔 또는 회사 구분 인덱스입니다. Hive 플랫폼 (앱센터) 3
age_gate_u13 13세 미만(COPPA) 연령 게이트 대상 여부입니다. SDK 초기화 전에는 null일 수 있습니다. Hive SDK (설정) false

수신 서버 정보

속성명 설명 도메인 예시
clientIp 이벤트 로그를 전송한 클라이언트의 실제 접속 IP. 수신 서버에서 추출하며, 저장 시 마지막 옥텟이 마스킹 처리됩니다. 수신 서버 (WAS) 123.123.123.0

주의사항 & Tips

  • 필수 속성명은 카멜 케이스 또는 소문자로 전송해야 하며, 스네이크 케이스(user_id)로 보내면 rescue 테이블로 격리됩니다.
  • appId 또는 appIdGroup 중 하나는 반드시 포함해야 하며, 둘 다 없으면 격리됩니다.
  • eventTime은 RFC 3339 형식(타임존 포함)만 허용되며, 현재 시각 기준 과거·미래 31일을 벗어나면 격리됩니다.
  • 사용자 정의 속성명으로 attributes, eventAttributes, hiveAttributes는 사용할 수 없습니다(대소문자 무관).
  • 속성값은 숫자형·문자형만 허용되며, JSON 객체·배열·JSON 형태의 문자열은 격리됩니다.
  • 격리된 로그를 확인하고 재전송하는 방법은 데이터 격리를 참고하세요.

연관 메뉴