Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Экспорт необработанных данных в аналитике Unity

Обзор

Экспорт необработанных данных Unity Analytics предоставляет вам полный доступ к необработанным данным о событиях. Это позволяет использовать данные любым удобным для вас способом, например, для создания пользовательских запросов или визуализации данных.

Есть два способа доступа к экспорту необработанных данных:

  • Unity AnalyticsПлатформа данных, предоставляющая аналитику для вашей игры Unity. Подробнее
    См. в Словарь
    панели управления
  • Вызывая REST API

Экспорт необработанных данных предоставляет данные за период с июня 2016 года.

Пользовательский интерфейс панели Analytics

Панель мониторинга Unity Analytics позволяет экспортировать необработанные данные о событиях и получать к ним доступ без написания кода. На панели инструментов Unity Analytics (analytics.cloud.unity3d.com) выберите свой проект и перейдите к АналитикаСокращение от Unity Analytics
См. в разделе Словарь
> Экспорт необработанных данных.

Затем выполните следующие действия в разделе Экспорт этого экрана:

  1. Укажите набор данных, который вы хотите экспортировать (например, appRunning, appStart, custom, deviceInfo или transaction).
  2. Укажите Дату начала или продолжите экспорт данных из предыдущего задания, выбрав Идентификатор предыдущего задания в раскрывающемся списке.
  3. Укажите дату окончания.
  4. По умолчанию используется формат файла JSON. Укажите предпочтительный формат файла, нажав и выбрав элемент в раскрывающемся меню в разделе Экспортировать как JSON.
Раздел «Экспорт» и таблица «Активность» на экране «Экспорт необработанных данных»
Раздел «Экспорт» и таблица «Активность» на экране «Экспорт необработанных данных»

Экспорт необработанных данных автоматически создает задание и отображает его в таблице Активность на экране.

После завершения работы вы можете загрузить свои данные, выбрав файлы в столбце Загрузить.

API REST (Representational State Transfer)

Каждая точка данных, отправляемая в Unity Analytics, сохраняется в хранилище данных Unity. API-интерфейсы экспорта необработанных данных позволяют загружать необработанные данные событий в файлы по мере их получения и сохранения.

Требования

Для каждого запроса требуется базовая аутентификация HTTP с использованием вашего идентификатора проекта Unity (UPID) и ключа API.

Ограничения

  • Период запроса (от startDate до endDate) ограничен 31 днем.
  • Ограничения на использование могут быть изменены.
  • Unity Analytics хранит файлы необработанных данных, созданные для запроса, в течение 14 дней. (Чтобы получить доступ к данным по истечении 14 дней, отправьте новый запрос.)

Рабочий процесс пользователя

Чтобы экспортировать необработанные данные, вызовите Create Raw Data Export API. Этот запрос запускает асинхронное задание для обработки данных. Время, которое это займет, зависит от объема экспортируемых данных.

Чтобы получить текущий статус или результат, проведите опрос с помощью Get Raw Data Export API. После завершения экспорта вы можете получить результат в ответе этого API. Результат содержит список файлов и соответствующие URL-адреса загрузки. Вы можете просмотреть URL-адреса и загрузить экспортированные данные.

Примечания:

  • Все даты и время в запросах и ответах указаны в часовом поясе UTC.
  • Запросы или ответы API используют формат JSON (который в этом документе отформатирован для удобочитаемости). Формат файла данных настраивается.
  • Данные экспортируются в сжатые файлы .gzip.
  • Основой URL для API является https://analytics.cloud.unity3d.com.

Создать экспорт необработанных данных

Экспорт необработанных данных относится к проекту и к отдельному набору данных (типу события). Период запроса ограничен 31 днем.

Используйте следующий метод HTTP для создания экспорта необработанных данных:

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

Аргументы предоставляются в полезной нагрузке запроса и в формате JSON с приложением Content-Type/json.

Аргумент запроса Обязательный или необязательный Тип Описание
startDate Требуется, если не указано continueFrom string Дата начала (включительно) экспорта. Дата указывается в формате ГГГГ-ММ-ДД (ISO-8601).
endDate Обязательный String Конечные данные (эксклюзивные) экспорта. Дата указывается в формате ГГГГ-ММ-ДД (ISO 8601). Это дата закрытия запроса. При поиске текущего дня используйте дату следующего дня.
format Обязательный String Формат выходных данных: json (json с разделителями строк) или tsv.
dataset Обязательный String Один из следующих типов событий: appStart, appRunning, deviceInfo, custom или transaction.
continueFrom Необязательный String Идентификатор экспорта необработанных данных, из которого следует продолжить экспорт данных. Это используется для продолжения предыдущего экспорта с момента его завершения. См. Продолжение для получения дополнительной информации. Вместо указания startDate в continueFrom можно указать предыдущий идентификатор экспорта необработанных данных. Будет ошибкой указывать и 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

Example values:

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.

Атрибуты ответа на экспорт необработанных данных

Атрибут ответа Тип Описание
id String Идентификатор экспорта необработанных данных.
upid String Идентификатор проекта Unity.
createdAt String Созданное время в формате ISO 8601.
status string Текущий статус экспорта. Возможные значения: выполняется, завершено или не выполнено.
duration Long Время, которое потребовалось для экспорта данных (в миллисекундах).
request Json Аргументы запроса.
result Json Результат содержит атрибуты, детализирующие экспортированные данные. Результат доступен только после успешного завершения экспорта. Ниже приведены атрибуты результата.
result.size Long Общий размер экспортируемых данных (в байтах).
result.eventCount Long Общее количество экспортированных событий.
result.intraDay Boolean Если запрос включает текущий день, он может не содержать всех данных за этот день. Этот атрибут имеет значение TRUE, если данные за последний день неполные.
result.fileList Json Список файлов, содержащих экспортируемые данные. Список файлов пуст, когда нет данных.
result.fileList.name String Имя файла.
result.fileList.url String The download URL for the file. The files are compressed in gzip format.
result.fileList.size Long Размер файла в байтах.
result.fileList.date String Файл содержит события для этой конкретной даты. Эта дата основана на времени отправки события. На одну и ту же дату может быть несколько файлов. Дата в формате 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" } }

Продолжить создание из предыдущего экспорта необработанных данных

При периодическом экспорте необработанных данных необходимо указать аргумент continueFrom вместо startDate, чтобы убедиться, что вы продолжаете с предыдущего экспорта необработанных данных. Идентификаторы предыдущего экспорта необработанных данных можно получить с помощью GET API или получить к ним доступ через панель управления.

Предыдущий экспорт необработанных данных на панели управления проекта Unity Analytics
Предыдущий экспорт необработанных данных на панели управления проекта Unity Analytics

Получить экспорт необработанных данных

Используйте следующий 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 } }

Список всех экспортируемых необработанных данных

Используйте этот HTTP-метод, чтобы получить список всех экспортов необработанных данных для определенного проекта:

ПОЛУЧИТЬ 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, заголовки предоставляются в отдельном файле в headers.gz. Файлы данных не содержат заголовков.

Пример файла заголовков:

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

Набор данных

Каждый из шести типов данных (типов событий) отличается. См. ниже определения их схем.

Примечания:

  • ts — это отметка времени, когда событие было сгенерировано на устройстве. Обратите внимание, что временные метки, генерируемые устройством, могут быть искажены из-за часов устройства и задержки при получении события.
  • submit_time – это отметка времени, когда событие было получено Unity Analytics.
  • Если поле в записи не содержит данных, для значения этого поля устанавливается значение по умолчанию для типа данных поля (0 для чисел, "" для строк и false для логических значений). Вложенные поля, такие как поле IAP TransactionEvent.receipt, в экспорте в формате JSON являются исключением из этой политики. При экспорте вложенных полей в формате JSON любые поля, не содержащие данных, не включаются в объект JSON для этой записи.

Событие 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": "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": "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} ] }

Пользовательское событие

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

Событие транзакции

{ "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": "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": ""} ] }
Поле данных Определение Набор данных
ts Отметка времени (в миллисекундах), когда событие было создано на устройстве. Обратите внимание, что временные метки, сгенерированные устройством, могут быть искажены из-за часов устройства и задержки при получении события. All datasets
appid Идентификатор, который назначается каждому приложению на панели инструментов Unity Analytics. All datasets
type Тип запрашиваемого события (например, Custom, DeviceInfo, Transaction и т. д.) All datasets
userid Идентификатор, сгенерированный Unity Analytics для идентификатора пользователя All datasets
sessionid Unity Analytics сгенерировал идентификатор сеанса. Если игра повторно открывается после более чем 30 минут бездействия, создается новый идентификатор сеанса. All datasets
remote_ip IP-адрес, с которого был воспроизведен сеанс. Обратите внимание, что это поле было удалено и больше недоступно. Not used
platform Платформа, на которой игралась сессия All datasets
sdk_ver Версия Unity Analytics SDK, используемая для этого события. Если sdk_ver начинается с «u», значит, это движок, созданный инструментом Analytics. В противном случае это из плагина Analytics для версий Unity старше 5.2. All datasets
debug_device Логическое значение, показывающее, было ли событие отправлено из разрабатываемой сборкиРазрабатываемая сборка включает символы отладки и включает профилировщик. Подробнее
См. в Словарь
. Установите значение TRUE для событий, поступающих из редактора Unity.
All datasets
user_agent Поле заголовка запроса User-Agent All datasets
submit_time Отметка времени (в миллисекундах), когда событие было получено Unity Analytics. All datasets
duration Длительность (количество секунд), в течение которой выполнялся этот сеанс, рассчитанная SDK. AppRunning
name Название пользовательского события (например, «LevelComplete») Custom
custom_params Список параметров Custom Event и соответствующие им значения. Custom
receipt Включает данные, возвращаемые магазинами приложений платформы, такими как App Store и Google Play. Transaction
currency Код валюты платежа (например, USD, EUR, CAD и т. д.) в коде ISO 4217. Transaction
amount Общая десятичная сумма потраченной валюты Transaction
transactionid Уникальный идентификатор этой транзакции, заданный SDK. Каждой транзакции присваивается уникальный идентификатор, не путать с идентификатором транзакции магазина. Transaction
productid Идентификатор продукта для покупки в приложении для конкретного магазина (например, com.mygame.100coins). Transaction
debug_build Логическое значение, показывающее, было ли событие отправлено из разрабатываемой сборки. Установите значение TRUE для событий, поступающих из редактора Unity. DeviceInfo
rooted_jailbroken Логическое значение, установленное в TRUE в случае рутированного / взломанного телефона, не отправляется для обычного телефона. DeviceInfo
processor_type Тип процессора устройства DeviceInfo
system_memory_size Системная память устройства DeviceInfo
make Производитель устройства (например, «OSXEditor») DeviceInfo
app_ver Версия приложения (например, «1.0») DeviceInfo
deviceid Уникальный идентификатор устройства. Обратите внимание, что это поле было удалено и больше недоступно. Not used
license_type Тип лицензии (например, «advanced_pro») DeviceInfo
app_install_mode Сообщает, установлено ли приложение через магазин приложений («магазин»), ad hoc («ad hoc»), установку разработчика («выпуск dev»), симулятор («симулятор») или предприятие («предприятие»). DeviceInfo
model Модель устройства (например, «MacBookPro11,3») DeviceInfo
engine_ver Версия движка Unity (например, «5.5.0a3») DeviceInfo
os_ver OS Version (eg. “Mac OS X 10.11.5”) DeviceInfo
app_name Идентификатор пакета или имя пакета (например, «com.Company.ProductName») DeviceInfo
timezone ISO code (eg. “GMT–7”) DeviceInfo
ads_tracking Логическое значение, указывающее, ограничил ли пользователь отслеживание рекламы. DeviceInfo
adsid Рекламный идентификатор. На iOSмобильной операционной системе Apple. Подробнее
См. в Словарь
, собранном при включении Unity Ads. На андроиде постоянно. Обратите внимание, что это поле было удалено и больше недоступно..
Not used

  • 2018–08–01 — удалено поле remote_ip. Он больше не доступен.
  • 2018–06–28 – удалено событие UserInfo.
  • 2018–06–04 – удален идентификатор устройства и идентификатор объявления из события DeviceInfo. Устаревшее событие UserInfo.
  • 2017–06–21 — Включение пустых вложенных полей в экспорт JSON изменено в Unity 2017.1
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3