Version: 5.4
프로젝트 ID가 일치하지 않는 경우 수행할 작업
Unity IAP

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

개요

Unity Analytics Raw Data Export gives you full access to raw event data. This lets you use the data in whatever way you choose; for example, to construct custom queries or data visualizations.

REST(Representational State Transfer) API

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

요구 사항

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

제한

  • The request period (startDate to endDate) is limited to 31 days.

  • Google Analytics brings additional limits.

사용자 워크플로

  • To export raw data, call the Create Raw Data Export API. This request triggers an asynchronous job to process the data. The time this takes depends on how much data is being exported. To get the current status or result, poll using the Get Raw Data Export API. Once the export is completed, you can get the result in the response of this API. The result contains the list of files and the corresponding download URLs. You can loop through the URLs and download the exported data.

참고:

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

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

A Raw Data Export is specific to a project and specific to a single dataset (event type). The request period is limited to 31 days. This may be revised in future releases.

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

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

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

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

Template for a Request using cURL on the command line:

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) 리스폰스 속성

Response Attribute 타입 설명
id 문자열 원시 데이터 익스포트 ID
upid 문자열 Unity 프로젝트 ID
createdAt 문자열 ISO 8601 포맷으로 표시한 만든 시간
status 문자열 익스포트의 현재 상태입니다. 가능한 값은 running, completed, 또는 failed입니다.
duration long 데이터 익스포트에 소요된 시간(밀리초 단위)
request json 요청 인수
result json 결과에는 익스포트된 데이터를 상술하는 속성이 포함됩니다. 익스포트가 성공적으로 완료된 후에만 결과를 사용할 수 있습니다. 결과 속성은 아래를 참조하십시오.
result.size long 익스포트된 전체 데이터 크기(바이트 단위)
result.eventCount long 익스포트된 총 이벤트 수
result.intraDay boolean When the request includes the current day it might not contain all the data for the day. This attribute is FALSE if the data is incomplete for the last day.
result.fileList json 익스포트된 데이터가 포함된 파일을 나열한 리스트입니다. 데이터가 없으면 빈 파일 리스트가 표시됩니다.
result.fileList.name 문자열 파일 이름
result.fileList.url 문자열 파일 다운로드 URL입니다. 파일은 gzip 포맷으로 압축됩니다.
result.fileList.size long 파일 크기(바이트 단위)
result.fileList.date 문자열 파일에는 이 특정 날짜의 이벤트가 포함됩니다. 이 날짜는 이벤트 제출 시간 기준입니다. 날짜가 같은 파일이 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":"success",
   "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":"success",
   "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":"success",
   "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 Event

{
   "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 Event

{
   "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 Event

{
   "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 Event

{
   "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 Event

{
   "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 Event

{
   "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}
   ]
}

프로젝트 ID가 일치하지 않는 경우 수행할 작업
Unity IAP