tech

테스트 로그로 수집 구조와 지표 검증하기: 이벤트 로그 전송 2편

이벤트 전송 기능을 개발하기 전에 테스트 로그를 전송하면, 이벤트와 속성이 의도한 구조와 자료형으로 수집되는지, 수집된 데이터로 원하는 지표를 구성할 수 있는지 미리 확인할 수 있다. Hive 애널리틱스에서는 데이터 > 이벤트의 ETL 시뮬레이션으로 테스트 로그를 전송하고, 데이터 미리보기와 BigQuery에서 수집 결과를, Create에서 지표 구성을 확인한다. 상용 환경에서 테스트한다면 별도의 테스트용 앱 ID를 사용하고, 테스트 데이터를 지표 집계에서 제외하는 방법도 함께 정한다.

이벤트 전송 기능 개발 전에 데이터를 검증해야 하는 이유

이벤트 전송 기능을 개발하기 전에는 데이터가 정상적으로 수집되는지, 해당 구조로 원하는 지표를 구성할 수 있는지 확인해야 한다. 이벤트명과 속성이 정해져 있더라도 실제 값의 형식이나 자료형이 분석 기준과 다르면, 개발을 마친 뒤에야 속성 누락이나 지표 계산 문제를 발견하게 된다.

데이터 분석 담당자는 테스트 로그를 전송한 뒤 이벤트와 속성이 의도한 구조로 수집되는지, 지표에 필요한 속성이 모두 포함되었는지 확인한다. 각 속성의 자료형과 값의 형식도 점검하고, 수집된 데이터에 연산과 차원을 적용해 원하는 지표를 구성할 수 있는지 살펴본다.

예를 들어 콘텐츠 완료 이벤트에 이용자 식별자가 포함되지 않으면 완료 이용자 수를 계산할 수 없다. 플레이 시간이 문자형으로 설정되어 있거나 값의 단위가 정해지지 않았다면 평균 플레이 시간도 의도한 기준으로 확인하기 어렵다. 개발 전에 샘플 데이터를 전송해 실제 수집 형태와 지표 결과를 점검하면 이벤트 구조와 전송 기준을 구체화할 수 있다.

Hive 애널리틱스에서 테스트 로그를 검증하는 방법

Hive 애널리틱스의 데이터 > 이벤트에서는 등록된 이벤트와 속성을 확인하고, ETL 시뮬레이션이나 코드 구현으로 테스트 로그를 전송할 수 있다. 각 속성에 분석 상황에 맞는 샘플 값을 입력하면 실제 로그 전송 기능을 개발하기 전에 데이터 수집 결과와 지표 활용 가능성을 확인할 수 있다.

테스트 로그 검증은 전송 환경과 앱 ID를 준비해 로그를 전송한 뒤, 수집 결과와 지표 구성을 확인하는 순서로 진행한다.

  1. 환경 선택
    검증 목적에 따라 테스트 로그를 전송할 샌드박스 또는 상용 환경을 선택한다. 데이터 미리보기와 BigQuery에서 결과를 확인할 때도 로그를 전송한 환경의 데이터를 조회해야 한다.
  2. 앱 ID 준비
    Hive 콘솔의 앱센터 또는 프로젝트 설정에 등록된 앱 ID를 준비한다.

    상용 환경의 테스트 데이터 구분
    상용 환경에서 테스트 데이터와 실제 서비스 데이터를 명확하게 구분하려면 별도의 테스트용 앱 ID를 등록해 사용하는 것을 권장한다. 게임 출시 전에 테스트한다면 정식 출시일을 시간 설정 > 지표 시작일로 설정해 출시 이전에 수집된 데이터를 지표 집계에서 제외할 수 있다. 이미 서비스 중인 게임이라면 지표 필터 관리에 테스트용 앱 ID를 등록하거나 지표 제외 유저 관리에 테스트 계정을 등록해 해당 데이터를 지표 집계에서 제외할 수 있다. 테스트 데이터의 구분 기준과 서비스 상태에 따라 필요한 방법을 선택한다.

  3. 테스트 로그 전송
    분석 담당자가 ETL 시뮬레이션에서 직접 전송하거나, 개발자가 소스 생성에서 확인한 코드를 구현해 전송할 수 있다. 이벤트 속성에는 분석 상황을 가정한 샘플 값을 입력하고, 전송 전에 이용자 식별자와 콘텐츠 정보, 수치형 속성 등이 정의한 자료형과 값의 형식에 맞는지 확인한다.
  4. 수집 결과 확인
    데이터 미리보기에서 이벤트 수신 여부와 전달된 속성값을 확인한다. 원본 데이터를 자세히 살펴봐야 한다면 BigQuery에서 이벤트 데이터를 직접 조회해 입력한 값이 올바른 속성명과 자료형으로 저장되었는지 점검한다.

    BigQuery 조회 권한 신청
    수집된 이벤트와 속성의 원본 데이터는 BigQuery에서 직접 조회할 수 있다. BigQuery를 이용하려면 애널리틱스 관리자 권한을 획득한 뒤, 애널리틱스 계정 메뉴에서 BigQuery 조회 권한을 신청한다.

  5. 지표 구성 확인
    Create에서 수집된 이벤트를 측정값으로 선택하고 필요한 연산과 차원을 적용한다. 계산된 수치가 예상과 일치하는지, 속성값에 따라 결과가 원하는 기준으로 구분되는지 확인해 해당 데이터로 분석 목적에 맞는 지표를 구성할 수 있는지 검증한다.

contents_success 테스트 로그로 이벤트 검증하기

콘텐츠 완료 이용자 수와 평균 플레이 시간, 최고 점수를 분석하려면 contents_success 이벤트가 의도한 구조로 수집되는지 검증해야 한다. 환경 선택부터 지표 구성 확인까지의 과정은 다음과 같다.

이벤트 로그 전송 1편 함께 보기
contents_success 이벤트를 선택해 속성을 설정하고 소스를 생성하는 과정은 「이벤트 템플릿으로 수집 구조 정의하기: 이벤트 로그 전송 1편」에서 확인할 수 있다.

1. 환경 선택

실제 서비스에서 사용할 데이터 구조를 확인하기 위해 상용 환경에서 검증을 진행한다. 상용 애널리틱스 콘솔에 접속해 데이터 > 이벤트에서 contents_success 이벤트를 선택하고 ETL 시뮬레이션 탭으로 이동한다.

2. 앱 ID 준비

상용 환경에서 사용할 테스트용 앱 ID가 Hive 콘솔의 앱센터 또는 프로젝트 설정에 등록되어 있는지 확인한다.

3. 테스트 로그 전송

테스트 로그는 분석 담당자가 ETL 시뮬레이션에서 직접 전송하거나, 개발자가 소스 생성에서 제공하는 코드를 게임에 적용해 전송할 수 있다. 두 방법 모두 로그 전송에 필요한 필수 속성 userId, deviceId, identifierProvider, appId, eventTime, eventName을 입력해야 한다. identifierProvider에는 hive를, appId에는 앞서 준비한 테스트용 앱 ID를 입력한다. appIdGroup은 appId를 입력하면 자동으로 생성되므로 따로 입력하지 않아도 된다.

3.1 ETL 시뮬레이션에서 전송하기

이벤트에 사전 정의된 속성과 자료형을 확인하고, 필수 속성 6개의 값을 변경한다. 이어서 characterLv, modeTypeId, modeTypeName, score, playTimeSec를 분석 상황에 맞는 샘플 값으로 바꾼 뒤 테스트 로그를 전송한다.

contents_success ETL 시뮬레이션에서 캐릭터 레벨, 콘텐츠 유형, 점수와 플레이 시간 속성값을 설정한 화면
상용 환경의 ETL 시뮬레이션에서 테스트용 앱 ID와 속성값을 입력해 contents_success 테스트 로그를 전송한다.

3.2 생성한 소스로 전송하기

개발자는 소스 생성에서 개발 환경에 맞는 코드를 확인하고, 필수 속성 6개와 이벤트 세부 속성값을 실제 게임 데이터와 연결한다. 콘텐츠 완료가 확정되는 시점에 contents_success 이벤트가 발생하도록 코드를 적용한 뒤, 구현한 기능을 실행해 테스트 로그를 전송한다. 자세한 구현 방법은 Hive 개발자 사이트의 이벤트 전송 가이드를 참고한다.

로그 전송 시 주의 사항
아래 규칙을 지키지 않으면 로그가 정상적으로 수집되지 않고 별도의 격리 테이블인 t_raw_event_log_rescue에 저장된다.

  • eventTime은 타임존을 포함한 RFC 3339 형식으로 입력하고, 현재 시각을 기준으로 과거 10년부터 미래 5년까지의 범위로 설정한다. 형식이 올바르지 않거나 허용 범위를 벗어나면 로그가 격리된다.
  • appId에는 Hive 콘솔의 앱센터 또는 프로젝트 설정에 등록된 앱 ID를 입력한다. 등록되지 않았거나 잘못된 값을 입력하면 로그가 격리된다.

4. 수집 결과 확인

4.1 데이터 미리보기에서 확인하기

전송 후에는 데이터 미리보기에서 contents_success가 수신되었는지 확인한다. 이용자와 디바이스 식별자, 앱 ID, 이벤트명과 attributes에 포함된 속성값도 함께 살펴본다.

contents_success 데이터 미리보기에서 수신된 테스트 로그와 속성값을 확인하는 화면
데이터 미리보기에서 contents_success의 수신 여부와 전달된 속성값을 확인한다.

4.2 BigQuery에서 확인하기

원본 데이터를 더 자세히 살펴보려면 BigQuery에서 테스트용 앱 ID와 이벤트명을 조건으로 데이터를 조회한다. 전송한 characterLv, modeTypeId, modeTypeName, score, playTimeSec가 의도한 값과 자료형으로 저장되었는지 확인한다.

BigQuery에서 contents_success 테스트 로그의 캐릭터 레벨, 콘텐츠 유형, 점수와 플레이 시간을 조회한 화면
BigQuery에서 테스트 로그의 속성값과 자료형이 의도한 구조로 저장되었는지 직접 조회한다.

5. 지표 구성 확인

수집 결과에 문제가 없다면 Create에서 contents_success 이벤트를 선택하고 다음과 같이 지표를 구성한다.

  • userId에 COUNT DISTINCT 연산을 적용해 콘텐츠 완료 이용자 수를 확인한다.
  • playTimeSec에 AVG 연산을 적용해 평균 플레이 시간을 확인한다.
  • score에 MAX 연산을 적용해 최고 점수를 확인한다.
  • characterLv와 modeTypeName을 차원으로 선택해 캐릭터 레벨별, 콘텐츠별 결과를 비교한다.
contents_success 테스트 데이터로 완료 이용자 수, 평균 플레이 시간과 최고 점수를 구성한 차트 화면
수집된 테스트 데이터로 완료 이용자 수, 평균 플레이 시간과 최고 점수를 구성해 결과를 확인한다.

완료 이용자 수와 평균 플레이 시간, 최고 점수를 구성할 수 있고 캐릭터 레벨과 콘텐츠에 따라 결과가 구분된다면 이벤트가 분석 목적에 맞게 준비된 것이다. 값이 누락되거나 결과가 예상과 다르다면 속성명과 자료형, 샘플 값을 다시 확인한다. 필요한 내용을 수정한 뒤 테스트 로그를 다시 전송하고, 변경된 이벤트 설정을 반영해 개발 소스를 다시 생성한다.

검증이 끝나면 확정된 소스와 이벤트 발생 시점, 각 속성에 전달할 값을 개발자에게 전달해 실제 로그 전송 기능 개발을 요청한다.

Hive 애널리틱스 시작해보기

이벤트와 속성을 구성한 뒤 테스트 로그를 전송하면 개발을 요청하기 전에 데이터 수집 구조와 지표 활용 가능성을 확인할 수 있다. 검증 과정에서 발견한 내용을 반영해 이벤트 설정과 소스를 확정한 뒤 개발자에게 전달한다.

Hive 애널리틱스는 Hive SDK를 통해 수집한 게임 이벤트를 기반으로 이용자 행동과 게임 지표를 분석할 수 있는 게임 전문 애널리틱스 솔루션이다. 지금 Hive 애널리틱스에서 테스트 로그를 전송하고, 수집된 데이터로 원하는 지표를 구성할 수 있는지 확인해보자.

김동완 기자

애널리틱스가 게임 운영과 의사결정에 도움이 되기를 바랍니다. 앞으로도 게임 운영에 유용하게 활용할 수 있는 다양한 기능과 활용 방법을 꾸준히 소개할 예정이니, 애널리틱스에 많은 관심 부탁드립니다.


TOP