콘텐츠로 이동

테스트 로그 전송

개요

테스트 로그를 전송해 데이터가 의도한 대로 수집되는지 확인할 수 있습니다. 테스트는 샌드박스 환경과 상용 환경에서 모두 진행할 수 있으며, 두 환경 모두 아래 순서로 진행합니다.

단계 내용 메뉴
1. 테스트 로그 보내기 테스트할 환경에서 테스트 로그를 전송합니다. 데이터 > 이벤트 > [소스 생성] 탭 또는 [ETL 시뮬레이션] 탭
2. 수신 확인 전송한 데이터가 수집되었는지 확인합니다. 데이터 > 이벤트 > [데이터 미리보기] 탭 또는 BigQuery
3. 지표 구성 확인 수집된 데이터로 원하는 지표를 만들 수 있는지 확인합니다. Create (차트, 퍼널, 리텐션, 랭킹 등)

테스트 환경

환경 전송 대상 저장 데이터셋 지표 반영
샌드박스 샌드박스 수신 주소 analytics_N_sandbox 상용 지표에 포함되지 않음
상용 상용 수신 주소 analytics_N_live 상용 지표에 포함됨

상용 환경에서 테스트하는 경우

상용 환경에 전송한 테스트 로그는 실제 지표에 포함됩니다. 실제 지표에 영향을 주지 않도록 아래와 같이 준비한 뒤 테스트하세요.

  1. 테스트 전용 appId를 발급받습니다.

    Hive 콘솔 > 앱센터에서 테스트용 앱을 등록해 테스트 전용 appId를 발급받습니다. 자세한 내용은 App ID 관리를 참고하세요.

  2. 테스트 데이터가 지표에 포함되지 않도록 아래 메뉴 중 하나로 제외합니다.

    메뉴 제외 방법
    지표 제외 유저 관리 테스트에 사용한 유저를 지표 제외 유저로 등록
    지표 필터 관리 테스트 appId 또는 QA 서버를 제외 조건으로 등록
    시간 설정 정식 출시일을 지표 시작일로 설정해 출시 전 테스트 데이터 제외

1. 테스트 로그 보내기

테스트할 환경에서 테스트 로그를 전송합니다. 개발자는 소스 코드를 적용해 실제 이벤트로 전송하고, 비개발자는 ETL 시뮬레이션으로 샘플 데이터를 전송할 수 있습니다.

방법 대상 설명
소스 생성 개발자 생성된 소스 코드를 앱 클라이언트 또는 서버에 적용하고, 테스트 이벤트를 발생시켜 로그를 전송합니다.
ETL 시뮬레이션 비개발자 코드 작성 없이 콘솔에서 필드 값을 입력해 샘플 데이터를 전송합니다.

소스 생성으로 전송 (개발자)

  1. 데이터 > 이벤트에서 테스트할 이벤트를 선택한 뒤, [소스 생성] 탭으로 이동합니다.
  2. 클라이언트 개발자 또는 서버 개발자 탭에서 소스 코드를 확인해 앱 클라이언트 또는 서버에 적용합니다.
  3. 테스트할 환경에서 테스트 이벤트를 발생시켜 로그를 전송합니다.
Note

서버에서 Fluentd 또는 HTTP로 전송하는 경우, 테스트할 환경의 수신 주소로 전송해야 합니다. 상용·샌드박스 수신 주소는 이벤트 로그 전송에서 확인할 수 있습니다.

ETL 시뮬레이션으로 전송 (비개발자)

  1. 테스트할 환경의 애널리틱스 콘솔에서 데이터 > 이벤트로 이동해 테스트할 이벤트를 선택합니다.
  2. [ETL 시뮬레이션] 탭에서 각 이벤트 수집 테이블 필드에 테스트할 값을 입력합니다.
  3. 전송 버튼을 클릭합니다.

[소스 생성] 탭과 [ETL 시뮬레이션] 탭의 자세한 내용은 이벤트를 참고하세요.


2. 수신 확인

전송한 테스트 로그가 수집되었는지 아래 두 가지 방법 중 하나로 확인합니다.

데이터 미리보기에서 확인

데이터 > 이벤트에서 테스트한 이벤트를 선택한 뒤, [데이터 미리보기] 탭에서 조회 기간을 테스트 로그를 전송한 날짜로 설정해 조회합니다.

  • 테스트 로그가 목록에 표시되는지 확인합니다.
  • 전송한 속성값이 의도한 대로 수집되었는지 확인합니다.

BigQuery에서 직접 확인

애널리틱스 콘솔에서 BigQuery 조회 권한을 신청하면, BigQuery에서 저장된 데이터를 직접 조회할 수 있습니다. 이벤트 로그는 t_raw_event_log 테이블에 저장됩니다.

SELECT userId, deviceId, appIdGroup, appId,
    DATETIME(TIMESTAMP_ADD(dateTime, INTERVAL 32400 SECOND)) AS dateTime_kst,  -- UTC로 저장된 dateTime을 KST로 변환
    SAFE_CAST(
            JSON_VALUE(attributes, '$.eventAttributes.level') AS INT64
        ) AS level -- level을 이벤트속성으로 보낸경우
FROM `habq-storage.analytics_N_sandbox.t_raw_event_log`  -- 상용 환경에서 테스트한 경우 analytics_N_live
WHERE identifierProvider = 'hive'  -- 유저 식별자 발급 시스템 (hive 고정)
  AND eventName = '{테스트한 이벤트명}'
  AND appId = 'com.sample.test.aos'  -- 테스트에 사용한 appId
  AND JSON_VALUE(attributes, '$.hiveAttributes._dataSource') IN ('custom_server', 'custom_sdk')  -- 직접 전송한 이벤트(서버, SDK)만 조회
  -- KST로 조회하는 경우
  AND dateTime >= TIMESTAMP_SUB(TIMESTAMP('2026-09-30 00:00:00'), INTERVAL 32400 SECOND)
  AND dateTime <  TIMESTAMP_SUB(TIMESTAMP('2026-10-07 00:00:00'), INTERVAL 32400 SECOND)
  -- checksum 기준으로 중복을 제거하는 경우
  QUALIFY ROW_NUMBER() OVER (PARTITION BY checksum ORDER BY bigqueryRegistTimestamp DESC) = 1
LIMIT 100
  • t_raw_event_log는 dateTime 기준 일별 파티션 테이블이므로, 조회 시 날짜 조건을 함께 지정하세요.
  • 전송 규칙을 위반한 로그는 t_raw_event_log가 아닌 격리 테이블(t_raw_event_log_rescue)에 저장됩니다. 데이터가 보이지 않으면 격리 테이블의 errorReason을 확인하세요.

테이블 구조와 격리 사유는 이벤트 저장 구조를 참고하세요.


3. 지표 구성 확인

데이터 수신이 확인되면, Create 메뉴에서 차트·퍼널·리텐션·랭킹 등을 만들어 수집된 데이터로 원하는 지표를 구성할 수 있는지 확인합니다.

  • 측정 값과 차원 값에 사용할 속성이 선택 목록에 표시되는지 확인합니다.
  • 집계 결과가 전송한 테스트 데이터와 일치하는지 확인합니다.

각 기능의 사용 방법은 차트, 퍼널, 리텐션, 랭킹을 참고하세요.


주의사항 & Tips

샌드박스를 제공하지 않는 이벤트

환불, MMP(Airbridge 등) 데이터는 Hive가 직접 처리하지 않고 마켓(Google Play 등)이나 MMP 같은 써드파티가 Hive로 전송합니다.

써드파티는 샌드박스 환경을 제공하지 않고 상용 환경에서만 Hive로 데이터를 전송하므로, Hive에서는 써드파티를 통해 수집된 데이터가 상용 건인지 샌드박스 건인지 구분할 수 없습니다. 이로 인해 샌드박스에서 처리된 데이터가 상용 데이터에 포함되어 표시될 수 있습니다.

  • 상용 환경에 전송한 테스트 로그는 실제 지표에 포함됩니다. 상용 환경에서 테스트할 때는 상용 환경에서 테스트하는 경우를 참고해 테스트 데이터를 지표에서 제외하세요.
  • appId 필드에는 Hive 콘솔 > 앱센터에 등록된 appId를 입력해야 합니다. 잘못된 값을 입력하면 데이터가 수집되지 않을 수 있습니다.

연관 메뉴