Version: 5.5
사용자 속성
데이터 초기화

Unity 애널리틱스 원시 데이터 익스포트

개요

Unity 애널리틱스 원시 데이터 익스포트를 사용해 원시 이벤트 데이터에 완전하게 액세스할 수 있습니다. 이를 통해, 커스텀 쿼리 또는 데이터 시각화를 구성하는 등 데이터를 원하는 방법으로 사용할 수 있습니다.

다음 두 가지 방법으로 원시 데이터 익스포트에 액세스할 수 있습니다.

  • Unity 애널리틱스 대시보드 사용자 인터페이스
  • REST API 호출

애널리틱스 대시보드 사용자 인터페이스

Unity 애널리틱스 대시보드를 사용하면 코드를 작성하지 않고도 원시 이벤트 데이터를 익스포트하고 액세스할 수 있습니다. Unity 애널리틱스 대시보드(analytics.cloud.unity3d.com)에서 프로젝트를 선택하고 Analytics > Raw Data Export 로 이동해야 합니다.

Raw Data Export 화면
Raw Data Export 화면

다음, 해당 화면의 Export 섹션에서 다음 절차를 따라야 합니다. 1. 익스포트할 Data Set(appRunning, appStart, custom, deviceInfo, transaction 또는 userInfo 등)을 지정합니다. 2. Start Date 를 지정하거나, 드롭다운 상자에서 Previous Job Id 를 선택하여 이전 작업에 데이터를 계속 익스포트합니다. 3. End Date 를 지정합니다. 4. 디폴트 파일 포맷은 JSON입니다. Export as JSON 아래의 드롭다운 메뉴에서 항목을 클릭하고 선택하여 원하는 파일 포맷을 지정합니다.

Raw Data Export 화면의 Export 섹션과 Activity 테이블
Raw Data Export 화면의 Export 섹션과 Activity 테이블

원시 데이터 익스포트에서는 자동으로 작업을 만들고 화면의 Activity 테이블에 표시합니다.

작업이 완료된 후에는 Download 열에서 파일을 선택하여 데이터를 다운로드할 수 있습니다.

REST(Representational State Transfer) API

Unity 애널리틱스로 전송되는 모든 데이터 포인트는 Unity의 데이터 저장소에 저장됩니다. Raw Data Export API를 사용하면 원시 이벤트 데이터가 수신 및 저장될 때 원시 이벤트 데이터를 파일에 다운로드할 수 있습니다.

요구 사항

모든 요청에는 Unity 프로젝트 ID(UPID)와 API 키를 사용한 HTTP 기본 인증이 요구됩니다.

제한

  • 요청 기간(startDate부터 endDate까지)은 31일로 제한됩니다.

  • 사용 제한은 변경될 수 있습니다.

사용자 워크플로

원시 데이터를 익스포트하려면 Create Raw Data Export API를 호출합니다. 이 요청에 따라 데이터를 처리하는 비동기 작업이 트리거됩니다. 작업 소요 시간은 익스포트하는 데이터 양에 따라 다릅니다.

현재 상태 또는 결과를 얻으려면 Get Raw Data Export API를 사용하여 폴링합니다. 익스포트 완료 후 이 API의 리스폰스에서 결과를 얻을 수 있습니다. 결과에는 파일 리스트와 해당 다운로드 URL이 포함됩니다. URL을 모두 여러 번 살펴보고 익스포트된 데이터를 다운로드할 수 있습니다.

참고:

  • 요청 또는 리스폰스의 모든 날짜와 시간은 UTC 시간대에 따릅니다.
  • API 요청 또는 리스폰스에는 JSON 포맷(이 문서에서는 읽기 쉬운 포맷으로 변경됨)이 사용됩니다. 데이터 파일 포맷은 설정 가능합니다.
  • 데이터는 .gzip 압축 파일로 익스포트됩니다.
  • API의 URL 베이스는 https://analytics.cloud.unity3d.com입니다.

원시 데이터 익스포트 만들기

원시 데이터 익스포트는 프로젝트 하나와 데이터 집합 하나(이벤트 타입)로 한정됩니다. 요청 기간은 31일로 제한됩니다.

다음 HTTP 메서드를 사용하여 원시 데이터 익스포트를 만들어야 합니다.

POST api/v2/projects/{UNITY_PROJECT_ID}/rawdataexports

인수는 요청 페이로드에서 제공되고, JSON 포맷 및 application/json 콘텐츠 타입입니다.

요청 인수 필수 또는 선택 타입 설명
startDate continueFrom이 지정된 경우를 제외하고 필수 문자열 익스포트의 시작 날짜(포함)입니다. 날짜는 YYYY-MM-DD 포맷(ISO–8601)으로 표시됩니다.
endDate 필수 String 익스포트 종료 날짜(포함)입니다. 날짜는 YYYY-MM-DD 포맷(ISO 8601)으로 표시됩니다. 이 날짜는 쿼리를 종료할 날짜입니다. 현재 날짜를 검색하는 경우 익일 날짜를 사용해야 합니다.
format 필수 String 출력 데이터 포맷: json(줄로 구분된 json) 또는 tsv.
dataset 필수 String appStart, appRunning, deviceInfo, custom, transaction, 또는 userInfo 이벤트 타입 중 하나입니다.
continueFrom 선택 String 데이터 익스포트 재개를 위한 원시 데이터 익스포트 ID입니다. 이전 익스포트를 종료한 지점에서 익스포트를 재개하기 위해 사용합니다. 자세한 내용은 재개를 참조하십시오. startDate를 지정하지 않고 continueFrom에서 이전 원시 데이터 익스포트 ID를 대신 지정할 수 있습니다. continueFrom과 startDate를 모두 지정하면 오류가 발생합니다.

커맨드 라인에서 cURL을 사용하는 요청의 템플릿:

curl --user {UNITY_PROJECT_ID}:{API_KEY} --request POST --header "Content-Type: application/json" --data {REQUEST_JSON}
https://analytics.cloud.unity3d.com/api/v2/projects/{UNITY_PROJECT_ID}/rawdataexports

예시 값:

UNITY_PROJECT_ID = aa43ae0a-a7a7-4016-ae96-e253bb126aa8
API_KEY = 166291ff148b2878375a8e54aebb1549
REQUEST_JSON = { "startDate": "2016-05-15" , "endDate": "2016-05-16", "format": "tsv", "dataset": "appStart" }

예시 값을 사용한 실제 요청:

curl --user aa43ae0a-a7a7-4016-ae96-e253bb126aa8:166291ff148b2878375a8e54aebb1549 --request POST --header "Content-Type: application/json" --data '{ "startDate": "2016-05-15" , "endDate": "2016-05-16", "format": "tsv", "dataset": "appStart" }' https://analytics.cloud.unity3d.com/api/v2/projects/aa43ae0a-a7a7-4016-ae96-e253bb126aa8/rawdataexports

리스폰스에는 JSON 포맷의 공통 원시 데이터 익스포트 리스폰스 속성이 사용됩니다.

원시 데이터 익스포트(Export) 리스폰스 속성

리스폰스 속성 타입 설명
id String 원시 데이터 익스포트 ID
upid String Unity 프로젝트 ID
createdAt String ISO 8601 포맷으로 표시한 만든 시간
status 문자열 익스포트의 현재 상태입니다. 가능한 값은 running, completed, 또는 failed입니다.
duration Long 데이터 익스포트에 소요된 시간(밀리초 단위)
request Json 요청 인수
result Json 결과에는 익스포트된 데이터를 상술하는 속성이 포함됩니다. 익스포트가 성공적으로 완료된 후에만 결과를 사용할 수 있습니다. 결과 속성은 아래를 참조하십시오.
result.size Long 익스포트된 전체 데이터 크기(바이트 단위)
result.eventCount Long 익스포트된 총 이벤트 수
result.intraDay 부울 요청에 현재 날짜가 포함된 경우 해당 날짜의 일부 데이터가 요청에 포함되지 않을 수 있습니다. 마지막 날 데이터가 불완전한 경우 이 속성은 TRUE입니다.
result.fileList Json 익스포트된 데이터가 포함된 파일을 나열한 리스트입니다. 데이터가 없으면 빈 파일 리스트가 표시됩니다.
result.fileList.name String 파일 이름
result.fileList.url String 파일 다운로드 URL입니다. 파일은 gzip 포맷으로 압축됩니다.
result.fileList.size Long 파일 크기(바이트 단위)
result.fileList.date String 파일에는 이 특정 날짜의 이벤트가 포함됩니다. 이 날짜는 이벤트 제출 시간 기준입니다. 날짜가 같은 파일이 2개 이상 있을 수 있습니다. 날짜는 ISO 8601 포맷입니다.

리스폰스 예제:

{  
   "id":"8228d1e9-31b3-4a5e-aabe-55d9c8afa052",
   "upid":"beff3f49-b9ed-41a4-91ea-677e9b85e71e",
   "createdAt":"2016-05-10T10:10:10.100+0000",
   "status":"running",
   "duration" : 0,
   "request":{  
      "startDate":"2016-05-01",
      "endDate":"2016-05-02",
      "format":"json",
      "dataset":"appRunning"
   }
}

이전 원시 데이터 익스포트에서 계속 만들기

정기 원시 데이터 익스포트를 실행하는 경우 이전 원시 데이터 익스포트가 중단된 시점부터 익스포트가 계속되도록 startDate 대신 continueFrom 인수를 제공해야 합니다. 이전 원시 데이터 익스포트 ID는 GET API를 통해 페치하거나 대시보드를 통해 액세스할 수 있습니다.

Unity 애널리틱스 프로젝트 대시보드에 표시된 이전 원시 데이터 익스포트
Unity 애널리틱스 프로젝트 대시보드에 표시된 이전 원시 데이터 익스포트

원시 데이터 익스포트(Export) 가져오기

특정 원시 데이터 익스포트나 진행 중인 익스포트 상태를 가져오려면 다음 HTTP 메서드를 사용해야 합니다.

GET api/v2/projects/{UNITY_PROJECT_ID}/rawdataexports/{raw_data_export_id}

모든 필수 인수는 URL 경로의 일부입니다.

요청 예제:

curl --user {UNITY_PROJECT_ID}:${API_KEY} https://analytics.cloud.unity3d.com/api/v2/projects/{UNITY_PROJECT_ID}/rawdataexports/${ID}

리스폰스는 JSON 포맷으로 된 원시 데이터 익스포트입니다. 원시 데이터 익스포트 만들기의 리스폰스와 동일합니다.

리스폰스 예제:

{  
   "id":"6601f70e-6a0b-48ed-909f-26711af82b49",
   "status":"completed",
   "createdAt":"2016-05-21T04:41:54.000+0000",
   "duration":8631714000,
   "request":{  
      "startDate":"2016-02-11T00:00:00.000+0000",
      "endDate":"2016-03-11T00:00:00.000+0000",
      "format":"tsv",
      "dataset":"custom"
   },
   "result":{  
      "size":78355,
      "eventCount":17473,
      "fileList":[  
         {  
            "name":"headers.gz",
            "url":"https://uca-export.s3.amazonaws.com/staging/devTest/custom/appid%3DUNITY_PROJECT_ID/jid%3D6601f70e-6a0b-48ed-909f-26711af82b49/headers.gz?AWSAccessKeyId=AKIAJUXGNF66F4XPWSWA&Expires=1463872651&Signature=PnzIeeI%2FNxSOlKkLVpLcfK%2FxVpU%3D",
            "size":105
         },
         {  
            "name":"part-4b0cf376-3478-4bc8-845e-f73aff5c0be4.gz",
            "url":"https://uca-export.s3.amazonaws.com/staging/devTest/custom/appid%3DUNITY_PROJECT_ID/jid%3D6601f70e-6a0b-48ed-909f-26711af82b49/part-4b0cf376-3478-4bc8-845e-f73aff5c0be4.gz?AWSAccessKeyId=AKIAJUXGNF66F4XPWSWA&Expires=1463872651&Signature=xZk3%2BzQNTQ6yjK2Mh%2FaH338ABn8%3D",
            "size":78250,
            "date":"2016-02-13T00:00:00.000+0000"
         }
      ],
      "intraDay":false
   }
}

모든 원시 데이터 익스포트(Export) 나열(List)

특정 프로젝트의 모든 원시 데이터 익스포트 리스트를 얻으려면 다음 HTTP 메서드를 사용합니다.

GET api/v2/projects/{UNITY_PROJECT_ID}/rawdataexports

모든 필수 인수는 URL 경로의 일부입니다.

요청 예제:

curl --user {UNITY_PROJECT_ID}:${API_KEY} https://analytics.cloud.unity3d.com/api/v2/projects/${UNITY_PROJECT_ID}/rawdataexports/

리스폰스는 JSON 포맷으로 된 원시 데이터 익스포트 리스트입니다. 각 익스포트 리스트 요소의 정의는 원시 데이터 익스포트 리스폰스 속성을 참조하십시오.

리스폰스 예제:

[
{  
   "id":"6601f70e-6a0b-48ed-909f-26711af82b49",
   "status":"completed",
   "createdAt":"2016-05-21T04:41:54.000+0000",
   "duration":8631714000,
   "request":{  
      "startDate":"2016-02-11T00:00:00.000+0000",
      "endDate":"2016-03-11T00:00:00.000+0000",
      "format":"tsv",
      "dataset":"custom"
   },
   "result":{  
      "size":78355,
      "eventCount":17473,
      "fileList":[  
         {  
            "name":"headers.gz",
            "url":"https://uca-export.s3.amazonaws.com/staging/devTest/custom/appid%3DUNITY_PROJECT_ID/jid%3D6601f70e-6a0b-48ed-909f-26711af82b49/headers.gz?AWSAccessKeyId=AKIAJUXGNF66F4XPWSWA&Expires=1463872651&Signature=PnzIeeI%2FNxSOlKkLVpLcfK%2FxVpU%3D",
            "size":105
         },
         {  
            "name":"part-4b0cf376-3478-4bc8-845e-f73aff5c0be4.gz",
            "url":"https://uca-export.s3.amazonaws.com/staging/devTest/custom/appid%3DUNITY_PROJECT_ID/jid%3D6601f70e-6a0b-48ed-909f-26711af82b49/part-4b0cf376-3478-4bc8-845e-f73aff5c0be4.gz?AWSAccessKeyId=AKIAJUXGNF66F4XPWSWA&Expires=1463872651&Signature=xZk3%2BzQNTQ6yjK2Mh%2FaH338ABn8%3D",
            "size":78250,
            "date":"2016-02-13T00:00:00.000+0000"
         }
      ],
      "intraDay":false
   }
},
{  
   "id":"6601f70e-6a0b-48ed-909f-26711af82b48",
   "status":"completed",
   "createdAt":"2016-05-21T04:41:54.000+0000",
   "duration":8631714000,
   "request":{  
      "startDate":"2016-02-11T00:00:00.000+0000",
      "endDate":"2016-03-11T00:00:00.000+0000",
      "format":"tsv",
      "dataset":"custom"
   },
   "result":{  
      "size":78355,
      "eventCount":17473,
      "fileList":[  
         {  
            "name":"headers.gz",
            "url":"https://uca-export.s3.amazonaws.com/staging/devTest/custom/appid%3DUNITY_PROJECT_ID/jid%3D6601f70e-6a0b-48ed-909f-26711af82b48/headers.gz?AWSAccessKeyId=AKIAJUXGNF66F4XPWSWA&Expires=1463872651&Signature=PnzIeeI%2FNxSOlKkLVpLcfK%2FxVpU%3D",
            "size":105
         },
         {  
            "name":"part-4b0cf376-3478-4bc8-845e-f73aff5c0be4.gz",
            "url":"https://uca-export.s3.amazonaws.com/staging/devTest/custom/appid%3DUNITY_PROJECT_ID/jid%3D6601f70e-6a0b-48ed-909f-26711af82b48/part-4b0cf376-3478-4bc8-845e-f73aff5c0be4.gz?AWSAccessKeyId=AKIAJUXGNF66F4XPWSWA&Expires=1463872651&Signature=xZk3%2BzQNTQ6yjK2Mh%2FaH338ABn8%3D",
            "size":78250,
            "date":"2016-02-13T00:00:00.000+0000"
         }
      ],
      "intraDay":false
   }
}
]

TSV 포맷(TSV format)

TSV 포맷으로 익스포트하는 옵션을 선택하면 헤더가 headers.gz 라는 별도의 파일에 포함되어 제공됩니다. 데이터 파일에는 헤더가 포함되지 않습니다.

헤더 파일 예제:

ts  appid   type    userid  sessionid   remote_ip   platform    sdk_ver debug_device    user_agent  submit_time name    custom_params

데이터 집합

여섯 가지 데이터 타입(이벤트 타입)은 모두 서로 다릅니다. 각 타입의 스키마 정의는 아래를 참조하십시오.

참고:

  • ts는 기기에서 이벤트가 생성된 시간의 타임스탬프입니다. 기기에서 생성된 타임스탬프는 기기 시계와 이벤트 수신 지연 속도로 인해 왜곡될 수 있습니다.

  • submit_time은 Unity 애널리틱스에서 이벤트를 수신한 시간의 타임스탬프입니다.

AppStart 이벤트

{
   "namespace":"com.unity.analytics.commons.schema",
   "name":"AppStartEvent",
   "type":"record",
   "fields":[
       {"name": "ts",   "type": "long", "default": 0}, 
       {"name": "appid", "type": "string", "default": ""},
       {"name": "type", "type": "string", "default": ""}, 
       {"name": "userid", "type": "string", "default": ""},
       {"name": "sessionid", "type": "string", "default": ""},
       {"name": "remote_ip", "type": "string", "default": ""},
       {"name": "platform", "type": "string", "default": ""},
       {"name": "sdk_ver", "type": "string", "default": ""},
       {"name": "debug_device", "type": "boolean", "default": false},
       {"name": "user_agent", "type": "string", "default": ""},
       {"name": "submit_time", "type": "long", "default": 0} 
   ]
}

AppRunning 이벤트

{
   "namespace":"com.unity.analytics.commons.schema",
   "name":"AppRunningEvent",
   "type":"record",
   "fields":[
       {"name": "ts",   "type": "long", "default": 0}, 
       {"name": "appid", "type": "string", "default": ""},
       {"name": "type", "type": "string", "default": ""},
       {"name": "userid", "type": "string", "default": ""},
       {"name": "sessionid", "type": "string", "default": ""},
       {"name": "remote_ip", "type": "string", "default": ""},
       {"name": "platform", "type": "string", "default": ""},
       {"name": "sdk_ver", "type": "string", "default": ""},
       {"name": "debug_device", "type": "boolean", "default": false},
       {"name": "user_agent", "type": "string", "default": ""},
       {"name": "submit_time", "type": "long", "default": 0}, 
       {"name": "duration", "type": "int", "default": 0}
   ]
}

Custom 이벤트

{
   "namespace":"com.unity.analytics.commons.schema",
   "name":"CustomEvent",
   "type":"record",
   "fields":[
       {"name": "ts",   "type": "long", "default": 0}, 
       {"name": "appid", "type": "string", "default": ""},
       {"name": "type", "type": "string", "default": ""},
       {"name": "userid", "type": "string", "default": ""},
       {"name": "sessionid", "type": "string", "default": ""},
       {"name": "remote_ip", "type": "string", "default": ""},
       {"name": "platform", "type": "string", "default": ""},
       {"name": "sdk_ver", "type": "string", "default": ""},
       {"name": "debug_device", "type": "boolean", "default": false},
       {"name": "user_agent", "type": "string", "default": ""},
       {"name": "submit_time", "type": "long", "default": 0}, 
       {"name": "name", "type": "string", "default": ""},
       {
           "name":"custom_params",
           "type":["null",{
               "type":"map",
               "values": ["string","null"],
               "default": ""
           }],
           "default": null
       }
   ]
}

DeviceInfo 이벤트

{
   "namespace":"com.unity.analytics.commons.schema",
   "name":"DeviceInfoEvent",
   "type":"record",
   "fields":[
       {"name": "ts",   "type": "long", "default": 0}, 
       {"name": "appid", "type": "string", "default": ""},
       {"name": "type", "type": "string", "default": ""}, 
       {"name": "userid", "type": "string", "default": ""},
       {"name": "sessionid", "type": "string", "default": ""},
       {"name": "remote_ip", "type": "string", "default": ""},
       {"name": "platform", "type": "string", "default": ""},
       {"name": "sdk_ver", "type": "string", "default": ""},
       {"name": "debug_device", "type": "boolean", "default": false},
       {"name": "user_agent", "type": "string", "default": ""},
       {"name": "submit_time", "type": "long", "default": 0}, 
       {"name": "debug_build", "type": "boolean", "default": false},
       {"name": "rooted_jailbroken", "type": "boolean", "default": false},
       {"name": "processor_type", "type": "string", "default": ""},
       {"name": "system_memory_size", "type": "string", "default": ""},
       {"name": "make", "type": "string", "default": ""},
       {"name": "app_ver", "type": "string", "default": ""},
       {"name": "deviceid", "type": "string", "default": ""},
       {"name": "license_type", "type": "string", "default": ""},
       {"name": "app_install_mode", "type": "string", "default": ""},
       {"name": "model", "type": "string", "default": ""},
       {"name": "engine_ver", "type": "string", "default": ""},
       {"name": "os_ver", "type": "string", "default": ""},
       {"name": "app_name", "type": "string", "default": ""},
       {"name": "timezone", "type": "string", "default": ""},
       {"name": "ads_tracking", "type": "boolean", "default": false},
       {"name": "adsid", "type": "string", "default": ""}
   ]
}

Transaction 이벤트

{
   "namespace":"com.unity.analytics.commons.schema",
   "name":"TransactionEvent",
   "type":"record",
   "fields":[
       {"name": "ts",   "type": "long", "default": 0},
       {"name": "appid", "type": "string", "default": ""},
       {"name": "type", "type": "string", "default": ""},
       {"name": "userid", "type": "string", "default": ""},
       {"name": "sessionid", "type": "string", "default": ""},
       {"name": "remote_ip", "type": "string", "default": ""},
       {"name": "platform", "type": "string", "default": ""},
       {"name": "sdk_ver", "type": "string", "default": ""},
       {"name": "debug_device", "type": "boolean", "default": false},
       {"name": "user_agent", "type": "string", "default": ""},
       {"name": "submit_time", "type": "long", "default": 0},        {
           "name":"receipt",
           "type":["null",{
               "type":"record",
               "name": "receiptRecord",
               "fields":[
                   {"name": "data", "type": "string", "default": ""},
                   {"name": "signature", "type": "string", "default": ""}
               ]
           }],
           "default": null
       },
       {"name": "currency", "type": "string", "default": "USD"},
       {"name": "amount", "type": "float", "default": 0},
       {"name": "transactionid", "type": "long", "default": 0},
       {"name": "productid", "type": "string", "default": ""}
   ]
}

UserInfo 이벤트

{
   "namespace":"com.unity.analytics.commons.schema",
   "name":"UserInfoEvent",
   "type":"record",
   "fields":[
       {"name": "ts",   "type": "long", "default": 0},
       {"name": "appid", "type": "string", "default": ""},
       {"name": "type", "type": "string", "default": ""},
       {"name": "userid", "type": "string", "default": ""},
       {"name": "sessionid", "type": "string", "default": ""},
       {"name": "remote_ip", "type": "string", "default": ""},
       {"name": "platform", "type": "string", "default": ""},
       {"name": "sdk_ver", "type": "string", "default": ""},
       {"name": "debug_device", "type": "boolean", "default": false},
       {"name": "user_agent", "type": "string", "default": ""},
       {"name": "submit_time", "type": "long", "default": 0},
       {"name": "sex", "type": "string", "default": ""},
       {"name": "custom_userid", "type": "string", "default": ""},
       {"name": "birth_year", "type": "int", "default": 0}
   ]
}

사용자 속성
데이터 초기화