Перейти к основному содержимому

Data API

Краткое содержание

Инструмент для получения неагрегированных данных (событий и сессий) из МТС Аналитики. Подходит для самостоятельной обработки статистики без использования интерфейса сервиса.

Как работает API
API работает асинхронно:

  1. Создание задачи с параметрами выгрузки.
  2. Выполнение задачи сервисом.
  3. Скачивание результата в формате файла.

Какую программу использовать
Рекомендуется использовать Postman (версия не ниже v 11.1.3) или Insomnia.

Этап 1. Добавить коллекцию в Postman

  1. Скачать файл коллекции.
  2. Импортировать в Postman через меню FileImport.

Этап 2. Получить авторизационный токен и ID потока
Необходимы:

  • Авторизационный токен.
  • Flow ID (идентификатор потока).
    Получить их можно через обращение на почту analytics.support@mts.ru.

Этап 3. Запросить данные

  1. Добавить токен в запрос.
  2. Создать задачу с указанием параметров (например, временных рамок, flowIds).
  3. Использовать request_id для автоматического добавления в последующие GET-запросы.

Шаг 3. Запросить результат по задаче
Возможные действия:

  • Получить статус задачи по task id.
  • Получить данные всех задач с пагинацией.

Шаг 4. Выгрузить файлы
Использовать task id для скачивания. Файлы доступны в течение суток, формат — CSV.

Предоставляемые параметры событий и сессий
В таблице перечислены поля данных, включая:

  • Идентификаторы сессий и событий.
  • Информацию о пользователе (регион, возраст, устройство).
  • Параметры рекламы, A/B-тестов, UTM-меток.
  • Статусы задач и временные метки.

Доступен для Web и App

Data API позволяет получать неагрегированные данные (события и сессии), собранные МТС Аналитикой. Используйте API, если необходимо самостоятельно обрабатывать статистические данные, не используя интерфейс МТС Аналитики.

Как работает API

API работает aсинхронно. Сначала создается задача, где описываются параметры выгрузки, затем задача выполняется сервисом. Далее можно скачать результат задачи в формате файла.

Этапы работы с Data API
  1. Добавление коллекции с запросами.
  2. Получение авторизационного токена.
  3. Запрос данных.

Какую программу использовать

Вы можете использовать удобную для вас программу, например, Postman или Insomnia.

Важно

В этой статье описана работа с Data API через Postman. Версия Postman должна быть не ниже v 11.1.3.

Этап 1. Добавить коллекцию в Postman

Коллекция — файл, который содержит все примеры запросов к системе.

  1. Скачайте Коллекцию.

  2. Импортируйте коллекцию. Выберите в левом верхнем углу FileImport. В открывшееся окно перенесите файл

import

Результат этапа 1

Вы добавили в Postman коллекцию с запросами.

Этап 2. Получить авторизационный токен и ID потока

Для доступа к API и потоку данных ресурса вам необходимы:

  1. Авторизационный токен.
  2. Flow ID (идентификатор потока).

Чтобы их получить, обратитесь на почту analytics.support@mts.ru.

Результат этапа 2

Вы получили токен, Flow ID и имя технического пользователя (для доступов) от команды МТС Аналитики.

Этап 3. Запросить данные

Все возможные запросы размещены в коллекции. Рекомендуем отправлять их последовательно. Перед отправкой каждого укажите актуальные для ваших задач параметры — описаны ниже.

Если запросы выполняются вручную

После POST-запроса установите параметр request_id в окружение, чтобы он автоматически добавлялся в GET-запросы.

Шаг 1. Добавить токен

Полученный токен добавьте в поле TokenSave

img

Шаг 2. Создать задачу

  1. Выберите тип задачи без указания модели атрибуции.

  2. Заполните значения параметров, которые соответствуют задачам вашего продукта. В заголовок добавьте токен.

Заметка

receiveFrom и receiveTo можно заменить на:

  • occurrenceFrom / occurrenceTo
  • occurrenceDttmFrom / occurrenceDttmTo

Пример запроса:

curl --request POST \
--url https://gw.intp.mts-corp.ru/mtsa-data-api/2/v2/dataexporttasks \
--header 'Accept-Encoding: gzip' \
--header 'Content-Type: application/json' \
--header 'Authorization:Bearer {{TOKEN}}'
--data '{
"event": "HIT",
"filter": {
// "occurrenceFrom": "2023-04-01T00:00:00+03:00",
// "occurrenceTo": "2024-05-01T00:00:00+03:00"
"receiveFrom": "2024-04-01T00:00:00+03:00",
"receiveTo": "2024-05-01T00:00:00+03:00"
// "occurrenceDttmFrom": "2024-09-20T17:00:00",
// "occurrenceDttmTo": "2024-10-20T18:00:00"
},
"flowIds": [
"0ad8fafe-8030-818b-3cd000167",
"0ad8fafe-8030-818b-3cd000166"
]
}'

Описания параметров запроса:

ПараметрОпределениеДопустимое значение
URLСсылка на сервер для обращения
flowIdsИдентификаторы потоков данных
EventНазвание событияHIT, SESSION
ModelНазвание модели атрибуцииLAST_CLICK, LAST_PAID_CLICK, POST_CLICK, POST_VIEW
WindowОкно атрибуции1 — 180
receiveFromНачало временного периода, когда событие принято на стороне сервераЗаполняется как время сервера по стандарту ISO 8601
receiveToОкончание временного периода, когда событие принято на стороне сервераЗаполняется как время сервера по стандарту ISO 8601
occurrenceFromНачало временного периода, когда событие принято на стороне клиентаЗаполняется как время клиента в стандартном виде
occurrenceToОкончание временного периода, когда событие принято на стороне клиентаЗаполняется как время клиента в стандартном виде
occurrenceDttmFromАктуален только для задач без атрибуции. Начало временного периода, когда событие принято на стороне клиента, по местному времениЗаполняется как время клиента в стандартном виде без указания часового пояса
occurrenceDttmToАктуален только для задач без атрибуции. Окончание временного периода, когда событие принято на стороне клиента, по местному времениЗаполняется как время клиента в стандартном виде без указания часового пояса

Ответ:

Структура задачи с заполненным task id (в скрипте — id). Он пригодится для отслеживания статуса выполнения задачи

{
"id": "0ad8fafe-8030-818b-3cd0001",
"event": "HIT",
"status": "CREATED",
"attribution": {
"model": "LAST_CLICK",
"window": 30
},
"filter": {
"occurrenceFrom": "2023-03-31T21:00:00Z",
"occurrenceTo": "2024-04-30T21:00:00Z",
"receiveFrom": null,
"receiveTo": null
},
"flowIds": [
"0ad8fafe-8030-818b-3cd000166",
"0ad8fafe-8030-818b-3cd000167"
],
"result": {
"partsCount": 1
}
}

Шаг 3. Запросить результат по задаче

Варианты запроса:

  • Получить информацию о задаче и её статус по id (идентификатор получен в ответе на Шаге 2)
  • Получить ответ по всем задачам без пагинации
  • Получить ответ по всем задачам с пагинацией. Список задач разбивается по страницам — это полезно, когда задач много

Пример ответа:

При успешном завершении задачи в поле status будет значение SUCCESS

{
"id": "0ad8fafe-8b39-1030-818b-3cd5660001",
"event": "HIT",
"status": "SUCCESS",
"attribution": {
"model": "LAST_CLICK",
"window": 1
},
"filter": {
"occurrenceFrom": null,
"occurrenceTo": null,
"receiveFrom": "2023-09-27T20:00:00Z",
"receiveTo": "2023-09-28T14:00:00Z"
},
"result": {
"partsCount": 1
}
}

PartsCount — количество файлов, которые были созданы по запросу.

Возможные статусы
СтатусОписание
CREATEDЗадание создано
IN_PROGRESSВыполняется задание выборки данных
SUCCESSВыборка выполнена, результат сохранен
FAILEDПроизошла ошибка
RESULT_CLEANED_AS_TOO_OLDРезультат устарел

Шаг 4. Выгрузить файлы

Чтобы получить данные, используйте task id. Для отправки запроса нажмите Send and Download.

Запрос по task id с указанием части (страницы):

task

Заметка

Скачать данные можно в течение суток, потом файл будет недоступен. Первому файлу присваивается номер 0.

Ответ:

Один или несколько файлов. В ответе может быть несколько файлов, если объем данных будет слишком большим для одного файла. Файл сформируется в формате CSV.

Результат этапа 4

Вы получили файл для дальнейшей работы с данными.

Предоставляемые параметры событий и сессий

НазваниеТипОписание
flowIdUUIDУникальный идентификатор потока, который присваивается МТС Аналитикой, — значение Flow ID
ma_process_dttmDateTimeВремя завершения выполнения запроса на сервере
ma_process_offsetInt16Смещение на сервере (время сервера)
ma_referer_hostStringХост URL источника, из которого пользователь перешел на ваш ресурс. В МТС Аналитике этот адрес проставляется в каждое событие сессии
ma_hit_idUInt64Уникальный идентификатор события
ma_session_idUInt64Уникальный идентификатор сессии
ma_client_idUInt64Уникальный идентификатор клиента: 1st-party cookie файл браузера. Формируется в авторизованной и в неавторизованной зоне, отправляется автоматически с каждым событием с SDK
ma_hit_nameStringУникальное название конкретного события
ma_hit_typeStringТип события. Возможные значения: pageview — просмотр страницы, event — событие, ecommerce — событие электронной коммерции
ma_hit_dataStringПеречень параметров события электронной коммерции. Заполняется автоматически, если реализована разметка электронной коммерции
contentObjectStringНабор пользовательский параметров события
ma_hit_indxUInt32Порядковый номер события пользователя в его сессии
ma_session_indxUInt32Порядковый номер сессии пользователя
ma_cs_fingerprintStringЦифровой отпечаток на клиенте
ma_screen_titleStringНазвание страницы, на которой произошло событие. Передаётся, только если оно указано в коде сайта
ma_url_hostStringДомен сайта. Например, a.mts.ru
ma_url_pathStringСтраница, на которой произошло событие пользователя
ma_url_paramsStringДополнительные параметры ссылки после знака ?. В них могут содержаться, например, UTM-метки
ma_geo_subdivision_nameStringНазвание региона, где находится устройство
ma_geo_city_nameStringНазвание населённого пункта, где находится устройство
ma_user_ageStringВозрастной диапазон пользователя
ma_user_sexStringПол пользователя
ma_screen_resolutionStringРазрешение экрана устройства
ma_device_nameStringНазвание устройства пользователя
ma_device_typeStringВозможные значения: ПК, игровые консоли, смартфоны, планшеты, цифровые медиа-ресиверы
ma_browser_nameStringНазвание браузера, в котором пользователь просматривает сайт
ma_os_nameStringНазвание операционной системы устройства
ma_occurrence_dttmDateTimeДата и время в точности до секунды, когда событие произошло у клиента
ma_occurrence_offsetInt16Часовой пояс устройства в формате отклонения времени совершения события от UTC в минутах. Например, 180 означает, что клиентское время GMT+3
ma_receive_dttmDateTimeДата и время в точности до секунды, когда событие пришло событие на сервер МТС Аналитики
UserAuthStringПризнак авторизации на ресурсе. Например, возможные значения: 1 — авторизован, 0 — не авторизован
own_user_idStringУникальный идентификатор пользователя. Генерируется на стороне ресурса. Позволяет связать сессии в разных браузерах с одним пользователем
ProjectNameStringПроект, с которым связано событие. Например, название акции
RegionStringРегион, установленный пользователем на устройстве
TouchPointStringТочка касания с продуктом. Например, лендинг или сайт
ClientIDStringИдентификатор, который проставляется другой системой аналитики. Может использоваться для сравнения данных систем аналитики
mclientIDStringПользовательский идентификатор, который используется, например, для определения ветки A/B-теста
mtsIDStringРекламный идентификатор МТС. Например, заполняется, если нужно запустить рекламную кампанию в МТС AdTech
mtsIDLastSyncStringВремя последней авторизации
MultiAccountTypeStringТип аккаунта, если на вашем ресурсе один пользователь может создать несколько учётных записей
AccountTypeStringТип аккаунта. Используйте, если на ресурсе можно создать несколько аккаунтов. Например, B2C и B2B
CurrentTariffStringТип подписки или тарифа пользователя
ProfileTypeStringЛюбой атрибут профиля пользователя. Например, пол или уровень среднего чека
GRClientIDStringЛюбой атрибут пользователя. Например, email
GRIDStringНапример, статус подтверждения профиля пользователя. Возможные значения: 1 — профиль подтверждён, 0 — профиль не подтверждён
ProductUIDStringИдентификатор продукта, с которым связано событие. Например, ID категории товара
ProfileStatusStringСтатус подтверждения профиля пользователя
AdvertIDStringРекламный идентификатор. Например, значение ID рекламной системы, которую она формирует в браузере пользователя
DeviceIDStringПроизвольный идентификатор устройства
SessionIDStringКастомный идентификатор сессии. Например, номер сессии из другой системы аналитики. Можно использовать для сравнения систем
HitIDStringКастомный идентификатор события
TimeStampStringВремя, когда произошло событие в формате UNIX
InteractionTypeStringТип совершённого события. Например, возможные значения: non-interactions, interactions, conversions
EventGroupStringГруппа, которая объединяет категории событий. Например, покупка техники
EventNameStringГруппа, которая объединяет разные EventGroup
ScreenNameStringКастомное название страницы
EventCategoryStringКатегория события
EventActionStringВзаимодействие пользователя с объектом сайта. Например, клик по кнопке или просмотр баннера
EventLabelStringЯрлык события. Например, «Подключить»
EventContentStringКонтент в событии. Например, текст кнопки или поисковый запрос на ресурсе
EventContextStringКонтекст, в котором было совершено событие. Например, сценарий покупки смартфона
EventValueStringЦенность события. Например, стоимость товара или другая нематериальная ценность
ProductCategoryStringКатегория продукта
ProductNameStringНазвание категории товара, с которой связано событие. Например, аксессуары
ProductIdStringИдентификатор продукта, с которым связано событие. Например, ID категории товара
funnelNameStringНазвание воронки. Если передаёте, обязательно заполните параметр «funnelStep»
funnelStepStringШаг воронки
ButtonLocationStringМесто расположения кнопки на экране. Например, pop-up
FilterNameStringНазвания применённых фильтров
AppThemeStringТема браузера. Например, тёмная
EcoStringНазвание экосистемного модуля
FormIDStringИдентификатор формы на сайте
FormOrderIdStringИдентификатор отправленной заявки
ElementPositionStringНомер элемента интерфейса. Например, порядковый номер карточки в каталоге
EventPositionStringУстаревшее поле ElementPosition. Сохранено для обратной совместимости
ProductPromoStringНаличие акции на продукт
EventProductPromoLabelStringУстаревшее поле ProductPromo. Сохранено для обратной совместимости
ProductAvailabilityStringНаличие товара в электронной коммерции. Например, возможные значения: 1 — товар в наличии, 0 — товара нет в наличии
EventProductAvailabilityStringУстаревшее поле ProductAvailability. Сохранено для обратной совместимости. Наличие товара в электронной коммерции. Например, возможные значения: 1 — товар в наличии, 0 — товара нет в наличии
DeliveryTermsStringУсловия доставки
EventProductDeliveryTermsStringУстаревшее поле DeliveryTerms. Сохранено для обратной совместимости. Условия доставки
PaymentTypeStringСпособ оплаты
DeliveryTypeStringСпособ доставки
BannerIdStringИдентификатор рекламного баннера
BannerNameStringНазвание баннера
abNameStringНазвание А/В-теста. Актуально, если эксперимент запускается не в МТС Аналитике, а в другом сервисе
abVariantStringВарианты в А/В-тесте. Актуально, если эксперимент запускается не в МТС Аналитике, а в другом сервисе
LastUTMSourceStringПоследний источник по вашей версии
LastUTMMediumStringПоследний канал по вашей версии
LastUTMCampaignStringПоследняя кампания по вашей версии
MtsIDAuthStateStringID сессии авторизации
CD1StringПользовательский параметр №1
CD2StringПользовательский параметр №2
CD3StringПользовательский параметр №3
CD4StringПользовательский параметр №4
CD5StringПользовательский параметр №5
CD6StringПользовательский параметр №6
CD7StringПользовательский параметр №7
CD8StringПользовательский параметр №8
CD9StringПользовательский параметр №9
CD10StringПользовательский параметр №10