Version: 5.4
Qué hacer si los IDs del proyecto no coinciden
Unity IAP

Unity Analytics Raw Data Export (Exportación de datos sin procesar)

Información General

El Unity Analytics Raw Data Export le da a usted un acceso completo a datos de eventos de sin procesar. Esto le permite a usted utilizar los datos en cualquier manera que usted escoja; por ejemplo, construir consultas o visualizaciones de datos personalizada.

REST (Representational State Transfer) API

Cada punto de dato enviado a Unity Analytics se almacena en la tienda de datos de Unity. Las Raw Data Export APIs le permiten a usted descargar sus datos de eventos sin procesar en archivos a medida que los datos se reciben y se almacenan.

Requerimientos

Cada consulta requiere una autenticación básica HTTP utilizando su Unity Project ID (UPID) y API Key.

Limitaciones

  • El periodo de solicitud (startDate a endDate) se limita a 31 días.

  • Google Analytics trae unos limites adicionales.

Flujo de trabajo del usuario

  • Para exportar datos sin procesar, llame la Create Raw Data Export API. Esta solicitud activa un trabajo asíncrono para procesar los datos. El tiempo que esto toma depende de qué tantos datos se están exportando. Para obtener el estado actual o resultado, utilice la Get Raw Data Export API. Una vez la exportación haya finalizado, puede obtener el resultado en la respuesta de esta API. El resultado contiene la lista de archivos y las URLs de descarga correspondientes. Usted puede iterar a través de las URLs y descargar los datos exportados.

Notas:

  • Todas las fechas y tiempo en las solicitudes o respuestas están en la zona horario UTC.
  • Las solicitudes o respuestas de la API utilizan el formato JSON (el cual es formateado para facilitar la lectura en este documento). El formato del archivo de datos es configurable.
  • Los datos se exportan en archivos comprimidos .gzip.
  • La URL base para la API es https://analytics.cloud.unity3d.com.

Create Raw Data Export

Un Raw Data Export es especifico a un proyecto y específico a un conjunto de datos solo (tipo de evento). El periodo de solicitud se limita a 31 días. Esto se puede revisar en lanzamientos futuras.

Utilice el método HTTP siguiente para crear Raw Data Export:

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

Los argumentos se proporciona en la payload de la solicitud, y están en formato JSON con el Content-Type application/json.

Argumento de Solicitud Requerido u opcional Tipo Descripción
startDate Requerido al menos de que continueFrom se especifique cadena La fecha inicial (inclusivo) de la exportación. La fecha está expresa en el formato YYYY-MM-DD (ISO–8601).
endDate requerido cadena La fecha final (exclusiva) de la exportación. La fecha está expresada en el formato YYYY-MM-DD (ISO 8601). Esta es la fecha en la cual se cierra la consulta. Cuando busque por el día actual, utilice la fecha del día siguiente.
format requerido cadena El formato output de los datos: json (newline-delimited json) o tsv
dataset requerido cadena Uno de los siguientes tipos de eventos: appStart, appRunning, deviceInfo, custom, transaction, o userInfo
continueFrom opcional cadena El Raw Data Export ID para continuar exportando datos. Este es utilizado para continuar una exportación previa del punto en el que termino. Mirar Continuing para más información. En vez de especificar una startDate, un Raw Data Export ID se puede especificar en continueFrom. Es un error especificar ambos continueFrom y startDate.

Plantilla para una solicitud utilizando cURL en la linea de comandos:

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

Valores ejemplo:

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

Una solicitud actual utilizando los valores ejemplo:

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

La respuesta utiliza los Raw Data Export Response Attributes en formato JSON.

Raw Data Export Response Attributes (Atributos de respuesta de la exportación de los datos sin procesar)

Response Attribute Tipo Descripción
id cadena El Raw Data Export ID.
upid cadena El Unity Project ID.
createdAt cadena El tiempo creado en formato ISO 8601.
status cadena El estado actual del reporte. Los valores posibles son: running (ejecutando), completed (completado), or failed (fallo).
duration long El tiempo que tomo para exportar los datos (en mili-segundos).
request json Los argumentos de solicitud.
result json El resultado contiene atributos que detallan los datos exportados. El resultado solamente está disponible después de que la exportación haya completado exitosamente. Mirar abajo para los atributos de resultado.
result.size long El tamaño total de los datos exportados (en bytes).
result.eventCount long El número total de eventos exportados.
result.intraDay boolean Cuando la solicitud incluye el día actual, esta no podrá contener todos los datos para el día. Este atributo es FALSE si los datos no están completos para el último día.
result.fileList json La lista de archivos que contienen datos exportados. La lista de archivos es vacía cuando no hay datos.
result.fileList.name cadena El nombre del archivo.
result.fileList.url cadena El URL de descarga para el archivo. Los archivos son comprimidos en formato gzip.
result.fileList.size long El tamaño del archivo en bytes.
result.fileList.date cadena El archivo contiene eventos para esta fecha específica. Esta fecha se basa en el tiempo de envío del evento. Puede haber varios archivos para la misma fecha. La fecha está en formato ISO 8601.

Un ejemplo de una respuesta:

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

Continúe creando desde una Raw Data Export previa

Cuando usted esté ejecutando Raw Data Exports periódicamente, usted debe proporcionar el argumento continueFrom en vez del startDate para asegurarse que continúa del previo Raw Data Export. Los Raw Data Export IDs se pueden recuperar vía las APIs GET o se acceden vía la Dashboard (tabla de comandos).

Raw Data Exports previos en la Unity Analytics Project Dashboard
Raw Data Exports previos en la Unity Analytics Project Dashboard

Get Raw Data Export

Utilice el siguiente método HTTP para obtener un Raw Data Especifico o la situación en curso de exportación:

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

Todos los argumentos requeridos son parte de la ruta del URL.

Un ejemplo de una solicitud:

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

La respuesta es el Raw Data Export en formato JSON. Es el mismo que la respuesta en Create Raw Data Export.

Un ejemplo de una respuesta:

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

Liste todos los Raw Data Exports

Utilice este método HTTP para obtener la lista de todos los Raw Data Exports de un proyecto específico:

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

Todos los argumentos requeridos son parte de la ruta del URL.

Un ejemplo de una solicitud:

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

La respuesta es una lista de Raw Data Exports en formato JSON. Mirar la Raw Data Export Response Attributes para la definición de cada elemento de la lista exportado.

Un ejemplo de una respuesta:

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

Formato TSV

Si usted escoge exportar en formato TSV, los encabezados son proporcionados en un archivo separado en headers.gz. Los archivos de datos no incluyen encabezado.

Un archivo de encabezado ejemplo:

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

Dataset (conjunto de datos)

Cada uno de los seis tipo de datos (tipos de evento) difieren. Mirar abajo para las definiciones de sus esquemas.

Recomendaciones:

  • ts es el timestamp (marca del tiempo) en el que el evento fue generado en el dispositivo. Tenga en cuenta que los timestamps generados por el dispositivo pueden estar sesgados al reloj del dispositivo y latencia al recibir el evento.

  • submit_time es el timestamp (marca de tiempo) en el cual el evento fue recibido por Unity Analytics.

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

Qué hacer si los IDs del proyecto no coinciden
Unity IAP