API Аналитики¶
Общие сведения¶
Аналитическое API позволяет получить отчеты любой сложности. Вы можете выбирать произвольный набор столбцов и фильтровать/сегментировать выборку. Данные можно получать в форматах JSON, XML и Excel.
Получить данные Аналитики¶
POST https://cloud.roistat.com/api/v1/project/analytics/data
Общая информация
Данный метод является основным для получения аналитических отчетов.
В запросе необходимо указать, какие столбцы в отчете вам нужны, за какой период и с какими фильтрами. Столбцы делятся на 2 типа: метрики и измерения (metrics and dimensions). Они задаются в отдельных полях запроса и отдаются так же в отдельных полях в ответе. Подробнее о метриках и измерениях написано ниже. Фильтры используются по аналогии с остальными методами. Подробнее о фильтрах можно будет посмотреть в примерах.
Метрики и измерения
Метрика — это количественный показатель отчета: например, количество визитов и заказов, выручка и так далее. Это те показатели, которые можно суммировать и по которым можно вычислять среднее или максимум/минимум. То есть это всегда числа.
Измерение — это качественный показатель: например, рекламный источник, браузер, пол, возраст, способ заказа и т.п. То есть это любой показатель, который обычно показывается в левой части отчета. По этому показателю идет группировка и вычисление метрик. То есть, если мы хотим увидеть в отчете количество визитов по каждому рекламному каналу, то в нашем отчете будет одно измерение рекламный канал и одна метрика количество визитов.
Чтобы сделать запрос, вам нужно знать список существующих измерений и метрик. Эти списки можно получить с помощью методов /project/analytics/metrics-new
и /project/analytics/dimensions
.
Мультиканальные отчеты
По умолчанию в отчетах Аналитики учитываются все сделки, совершенные в выбранный временной период, при этом даты визитов по сделкам не учитываются. Эту модель мы назвали Стандартной моделью атрибуции (default).
Roistat предоставляет возможность задавать и другие модели атрибуции для расчета метрик:
- Первый клик (first click);
- Последний клик (last click);
- Последний платный клик;
- Модель атрибуции на основе позиции рекламного канала в истории визитов по каждой сделке, или U-образная модель (U-shape);
- Пользовательская модель U-shape;
- Линейная;
- Линейный рост;
- Линейный спад.
Список доступных моделей можно всегда узнать с помощью метода /project/analytics/attribution-models
.
Таким образом, в одном отчете одна и та же метрика может выводиться несколько раз, подсчитанная по разным моделям атрибуции.
Те метрики, которые можно рассчитывать по разным моделям, имеют признак is_has_attribution_model: true
(см. ответ в методе /project/analytics/metrics-new
). То есть любая метрика с таким признаком может считаться по любой доступной модели атрибуции.
Фильтрация по метрикам и измерениям
В данном методе есть возможность отбирать те данные, которые вы хотите включать в отчет.
Фильтровать можно по метрикам и по измерениям.
Параметры фильтрации указываются в теле запроса в массиве filters
.
Важно! Фильтрация по измерениям происходит на этапе обработки данных, по метрикам – после обработки. То есть сначала работает фильтр по измерениям, затем – по метрикам.
Примеры отчетов
Стандартный отчет по рекламным источникам за 1 месяц:
Источник | Визиты | Заявки | Продажи | Прибыль, Р | Расходы, Р | ROI, % |
---|---|---|---|---|---|---|
Яндекс.Директ | 7556 | 128 | 28 | 363204 | 284980 | 27 |
Google Ads | 2373 | 47 | 4 | 40506 | 25157 | 61 |
Итак, нам нужно измерение Источник. Источники имеют несколько уровней вложенности (Например, Директ -> Кампания 1 -> Баннер 232 и т.п.). Нас интересует самый верхний уровень. Смотрим в доступных измерениях его поле name
. Поле title
используется только для отображения в интерфейсах. Аналогично поступаем с метриками.
Пример нужного нам запроса:
{
"dimensions": ["marker_level_1"],
"metrics": ["visits","leads","sales","profit","marketing_cost","roi"],
"period": {
"from":"2016-07-01T00:00:00+0300",
"to":"2016-07-31T23:59:59+0300"
}
}
В ответ придет JSON, в котором поле data
содержит один объект. В этом объекте поле items
— это массив строк нашего отчета. Каждый item — это строка. Внутри такой строки отдельно данные по метрикам и измерениям в соответствующих полях. Также есть разная системная информация, которая подробно будет описана позднее.
Если вы хотите получить эту информацию в читаемом виде, то можете отправить такой запрос к API методу /project/analytics/data/export/excel
. Вместо JSON в ответ вы получите Excel-файл, удобный для просмотра и анализа.
Ограничения
Существуют ограничения на запрос analytics/data по количеству визитов и запрашиваемых измерений за выбранный период.
Ограничение считается по формуле:
(количество визитов) * (количество запрошенных измерений) * (количество запрошенных измерений)
Сейчас максимальный лимит = 1 000 000
Например:
- Если запрашиваются данные по одному измерению, то ограничение по визитам будет равно 1 000 000
- Если запрашиваются данные по двум измерениям, то ограничение по визитам будет равно 250 000
- Если запрашиваются данные по трем измерениям, то ограничение по визитам будет равно примерно 100 000
curl 'https://cloud.roistat.com/api/v1/project/analytics/data?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"dimensions": ["marker_level_1","marker_level_2"],"metrics": ["visits","leads"],"period": {"from":"2022-01-01T00:00:00+0300","to":"2022-07-31T23:59:59+0300"}}'
Тело запроса:
{
"dimensions": [
"marker_level_1",
"marker_level_2"
],
"metrics": [
"visits",
"leads",
"sales",
"marketing_cost",
"roi",
{
"metric": "profit",
"attribution": "first_click"
}
],
"period": {
"from": "2016-07-01T00:00:00+0300",
"to": "2016-07-31T23:59:59+0300"
},
"filters": [
{
"field": "marker_level_1",
"operation": "in",
"value": [
"site1",
"site2",
"site3"
]
},
{
"field": "roi",
"operation": ">",
"value": "0"
}
],
"interval": "1w",
"next_dimensions": [
"marker_level_2"
]
}
{
"data": [
{
"items": [
{
"metrics": [
{
"value": "136",
"formatted": null
"metric_name": "visits",
"attribution_model_id": "default"
},
{
"value": 17.948717948718,
"formatted": "18 %",
"metric_name": "conversion_leads_to_sales",
"attribution_model_id": "default"
},
{
"value": 687.51871428571,
"formatted": "688 р.",
"metric_name": "average_sale",
"attribution_model_id": "default"
},
{
"value": 28.676470588235,
"formatted": "29 %",
"metric_name": "conversion_visits_to_leads",
"attribution_model_id": "default"
},
{
"value": "7",
"formatted": "7",
"metric_name": "sales",
"attribution_model_id": "default"
},
{
"value": 4812.631,
"formatted": "4 813 р.",
"metric_name": "revenue",
"attribution_model_id": "default"
},
{
"value": 2887.579,
"formatted": "2 888 р.",
"metric_name": "profit",
"attribution_model_id": "first_click"
},
{
"value": 596.31223836256,
"formatted": "596 %",
"metric_name": "roi",
"attribution_model_id": "default"
},
{
"value": "39",
"formatted": "39",
"metric_name": "leads",
"attribution_model_id": "default"
},
{
"value": 414.696,
"formatted": "415 р.",
"metric_name": "marketing_cost",
"attribution_model_id": "default"
}
],
"dimensions": {
"marker_level_1": {
"value": "adwords2",
"title": "Google Adwords",
"icon": "https://favicon.yandex.net/favicon/google.com"
}
},
"isHasChild": 1
},
{
"metrics": [
{
"value": "173",
"formatted": "173",
"metric_name": "visits",
"attribution_model_id": "default"
},
{
"value": 11.111111111111,
"formatted": "11 %",
"metric_name": "conversion_leads_to_sales",
"attribution_model_id": "default"
},
{
"value": 387.022,
"formatted": "387 р.",
"metric_name": "average_sale",
"attribution_model_id": "default"
},
{
"value": 31.21387283237,
"formatted": "31 %",
"metric_name": "conversion_visits_to_leads",
"attribution_model_id": "default"
},
{
"value": "6",
"formatted": "6",
"metric_name": "sales",
"attribution_model_id": "default"
},
{
"value": 2322.132,
"formatted": "2 322 р.",
"metric_name": "revenue",
"attribution_model_id": "default"
},
{
"value": 774.045,
"formatted": "774 р.",
"metric_name": "profit",
"attribution_model_id": "first_click"
},
{
"value": 47.145654322865,
"formatted": "47 %",
"metric_name": "roi",
"attribution_model_id": "default"
},
{
"value": "54",
"formatted": "54",
"metric_name": "leads",
"attribution_model_id": "default"
},
{
"value": 526.04,
"formatted": "526 р.",
"metric_name": "marketing_cost",
"attribution_model_id": "default"
}
],
"dimensions": {
"marker_level_1": {
"value": "direct1",
"title": "Яндекс.Директ",
"icon": "https://favicon.yandex.net/favicon/www.direct.yandex.ru"
}
},
"isHasChild": 1
},
{
"metrics": [
{
"value": "102",
"formatted": "102",
"metric_name": "visits",
"attribution_model_id": "default"
},
{
"value": 0,
"formatted": "0.00 %",
"metric_name": "conversion_leads_to_sales",
"attribution_model_id": "default"
},
{
"value": 0,
"formatted": "0.00 р.",
"metric_name": "average_sale",
"attribution_model_id": "default"
},
{
"value": 3.921568627451,
"formatted": "3.92 %",
"metric_name": "conversion_visits_to_leads",
"attribution_model_id": "default"
},
{
"value": 0,
"formatted": "0",
"metric_name": "sales",
"attribution_model_id": null
},
{
"value": 0,
"formatted": "0.00 р.",
"metric_name": "revenue",
"attribution_model_id": "default"
},
{
"value": 0,
"formatted": "0.00 р.",
"metric_name": "profit",
"attribution_model_id": "first_click"
},
{
"value": -100,
"formatted": "-100 %",
"metric_name": "roi",
"attribution_model_id": "default"
},
{
"value": "4",
"formatted": "4",
"metric_name": "leads",
"attribution_model_id": "default"
},
{
"value": 311.062,
"formatted": "311 р.",
"metric_name": "marketing_cost",
"attribution_model_id": "default"
}
],
"dimensions": {
"marker_level_1": {
"value": "facebook5",
"title": "Facebook",
"icon": "https://favicon.yandex.net/favicon/facebook.com"
}
},
"isHasChild": 1
}
],
"mean": {
"metrics": [
{
"value": 654,
"formatted": "654",
"metric_name": "visits",
"attribution_model_id": null
},
{
"value": 13.888888888889,
"formatted": "14 %",
"metric_name": "conversion_leads_to_sales",
"attribution_model_id": null
},
{
"value": 523.624,
"formatted": "524 р.",
"metric_name": "average_sale",
"attribution_model_id": null
},
{
"value": 16.51376146789,
"formatted": "17 %",
"metric_name": "conversion_visits_to_leads",
"attribution_model_id": null
},
{
"value": 15,
"formatted": "15",
"metric_name": "sales",
"attribution_model_id": null
},
{
"value": 7854.36,
"formatted": "7 854 р.",
"metric_name": "revenue",
"attribution_model_id": null
},
{
"value": 3901.49,
"formatted": "3 901 р.",
"metric_name": "profit",
"attribution_model_id": "first_click"
},
{
"value": 94.92625858035,
"formatted": "95 %",
"metric_name": "roi",
"attribution_model_id": null
},
{
"value": 108,
"formatted": "108",
"metric_name": "leads",
"attribution_model_id": null
},
{
"value": 2001.521,
"formatted": "2 002 р.",
"metric_name": "marketing_cost",
"attribution_model_id": "default"
}
],
"dimensions": [],
"isHasChild": 0
},
"dateFrom": "2016-08-18T21:00:00+0000",
"dateTo": "2016-08-25T20:59:59+0000"
}
],
"status": "success"
}
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
project | string | Номер проекта | да |
Тело запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
dimensions | array[string] | перечень измерений | да |
metrics | array[string] или array[object] | перечень метрик. это может быть как просто название метрики (string), так и метрика с указанием модели атрибуции (object) | да |
> metric | string | системное название метрики. можно узнать через метод /project/analytics/metrics-new | нет |
> attribution | string | системное название модели атрибуции. можно узнать через метод /project/analytics/attribution-models | нет |
period | object | временной период | да |
> from | string | начальная дата вида 2016-07-01T00:00:00+0300 | да |
> to | string | конечная дата вида 2016-07-31T00:00:00+0300 | да |
filters | array[object] | фильтры для ограничения данных | нет |
> field | string | параметр, по которому будет идти отбор данных. это могут быть метрики и измерения. Если field - название метрики, то фильтр будет применен после обработки данных, если измерение - до обработки данных | нет |
> operation | string | операция сравнения: >, <, =, <>, >=, <=, in, not_in | нет |
> value | string или array[string] | значение метрики/измерения, по которому идет отбор | нет |
interval | string | интервалы, на которые надо разбить период. значение в формате XmYwZd - число месяцев(m), неделей(w) и/или дней(d). Например:
| нет |
next_dimensions | array[string] | нет |
Параметр | Тип | Описание |
---|---|---|
data | array[object] | |
> items | array[object] | данные по метрикам и измерениям за весь временной период (period) или данные, распределенные по интервалам, если это было указано в запросе (interval) |
>> metrics | array[object] | данные по метрикам за весь временной период (period) или за один интервал, если он был указан в запросе (interval) |
>>> value | string or number | значение метрики |
>>> formatted | null or string | значение метрики в интерфейсе. например, для roi значение value - 0, тогда в интерфейсе вы увидите 0.00 % |
>>> metric_name | string | системное название метрики |
>>> attribution_model_id | null or string | название модели атрибуции, которая используется для подсчета значений метрик |
>> dimensions | object | данные по измерениям за весь временной период (period) или за один интервал, если он был указан в запросе (interval) |
>>> value | string | системное название измерения |
>>> title | string | человекочитаемое название метрики (в интерфейсе) |
>>> icon | string | URL-адрес, где находится иконка для конкретного измерения |
>> isHasChild | integer | характеристика, связанная с детализацией отчета. А именно: можно ли данные по конкретному измерению разбить на группировки по другим измерениям. Или проще: можно ли к данному уровню отчета добавить еще один, "более низкий" уровень: 1 - можно добавить, 0 - нельзя. Например, для прямых визитов можно смотреть статистику только по одному, верхнему уровню, т.е. только по всем прямым визитам сразу, без детализации |
> mean | object | общие и средние значения для соответствующих метрик для выбранного временного периода period (строка "Итого/среднее" в отчете) |
> metrics | array[object] | общие и средние значения для соответствующих метрик для выбранного временного периода period (строка "Итого/среднее" в отчете) |
>> value | string or number | |
>> formatted | string | |
>> metric_name | string | |
>> attribution_model_id | null or string | |
> dateFrom | string | начальная дата периода (параметр from в запросе) |
> dateTo | string | конечная дата периода (параметр to в запросе) |
status | string |
Получить данные Аналитики в формате Excel¶
POST https://cloud.roistat.com/api/v1/project/analytics/data/export/excel
Данный метод аналогичен методу /project/analytics/data
, однако в ответ выдается Excel-файл с отчетом.
Важно! В теле запроса не используются параметры interval
и next_dimensions
. Больше отличий нет.
curl 'https://cloud.roistat.com/api/v1/project/analytics/data/export/excel?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"dimensions": ["marker_level_1","marker_level_2"],"metrics": ["visits","leads"],"period": {"from":"2022-01-01T00:00:00+0300","to":"2022-07-31T23:59:59+0300"}}'
Тело запроса:
{
"dimensions": [
"marker_level_1",
"marker_level_2"
],
"metrics": [
"visits",
"leads",
"sales",
"marketing_cost",
"roi",
{
"metric": "profit",
"attribution": "first_click"
}
],
"period": {
"from": "2016-07-01T00:00:00+0300",
"to": "2016-07-31T23:59:59+0300"
},
"filters": [
{
"field": "marker_level_1",
"operation": "in",
"value": [
"site1",
"site2",
"site3"
]
},
{
"field": "roi",
"operation": ">",
"value": "0"
}
],
"interval": "1w",
"next_dimensions": [
"marker_level_2"
]
}
Документ в формате Excel.
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
project | string | Номер проекта | да |
Тело запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
dimensions | array[string] | перечень измерений | да |
metrics | array[string] или array[object] | перечень метрик. это может быть как просто название метрики (string), так и метрика с указанием модели атрибуции (object) | да |
> metric | string | системное название метрики. можно узнать через метод /project/analytics/metrics | нет |
> attribution | string | системное название модели атрибуции. можно узнать через метод /project/analytics/attribution-models | нет |
period | object | временной период | да |
> from | string | начальная дата вида 2016-07-01T00:00:00+0300 | да |
> to | string | конечная дата вида 2016-07-31T00:00:00+0300 | да |
filters | array[object] | фильтры для ограничения данных | нет |
> field | string | параметр, по которому будет идти отбор данных. это могут быть метрики и измерения. Если field - название метрики, то фильтр будет применен после обработки данных, если измерение - до обработки данных | нет |
> operation | string | операция сравнения: >, <, =, <>, >=, <=, in | нет |
> value | string или array[string] | значение метрики/измерения, по которому идет отбор | нет |
interval | string | интервалы, на которые надо разбить период. значение в формате XmYwZd - число месяцев(m), неделей(w) и/или дней(d). Например:
| нет |
next_dimensions | array[string] | нет |
Документ в формате Excel.
Получить список доступных метрик¶
POST https://cloud.roistat.com/api/v1/project/analytics/metrics-new
Возвращает список доступных метрик. Подробности смотрите в /project/analytics/data
.
{
"metrics": [
{
"name": "impressions",
"title": "Показы",
"info": "Количество показов рекламных объявлений",
"group": "visitsAndConversions",
"is_has_attribution_model": false,
"is_absolute": true,
"order": 98,
"type": "integer",
"formula": "{impressions} ? {impressions} : 0"
},
{
"name": "ctr",
"title": "CTR",
"info": "Показатель кликабельности объявлений\nВизиты / Показы * 100%",
"group": "visitsAndConversions",
"is_has_attribution_model": false,
"is_absolute": false,
"order": 99,
"type": "percent",
"formula": "{impressions} ? (100 * {visitCount} / {impressions}) : 0"
},
{
"name": "visitCount",
"title": "Визиты",
"info": "Уникальные посетители сайта",
"group": "visitsAndConversions",
"is_has_attribution_model": false,
"is_absolute": true,
"order": 100,
"type": "integer",
"formula": "{visitCount} ? {visitCount} : 0"
},
{
"name": "visits2leads",
"title": "Конверсия в заявки",
"info": "Среднее количество конверсий на клик",
"group": "visitsAndConversions",
"is_has_attribution_model": true,
"is_absolute": false,
"order": 150,
"type": "percent",
"formula": "{visitCount} ? (100*{leadCount}/{visitCount}) : 0"
},
{
"name": "leadCount",
"title": "Заявки",
"info": "Заявки (лиды) — это любые обращения, поступившие в ваш бизнес. Например: отправленные формы на сайте, звонки, диалоги онлайн консультантов и т.п.",
"group": "orders",
"is_has_attribution_model": true,
"is_absolute": true,
"order": 200,
"type": "integer",
"formula": "{leadCount} ? {leadCount} : 0"
},
{
"name": "leads2orders",
"title": "Конверсия в продажи",
"info": "Продажи, деленные на заявки",
"group": "visitsAndConversions",
"is_has_attribution_model": true,
"is_absolute": false,
"order": 300,
"type": "percent",
"formula": "{leadCount} ? (100*{paidLeadCount}/{leadCount}) : 0"
},
{
"name": "paidLeadCount",
"title": "Продажи",
"info": "Сделки со статусом «Оплаченные»",
"group": "orders",
"is_has_attribution_model": true,
"is_absolute": true,
"order": 400,
"type": "integer",
"formula": "{paidLeadCount} ? {paidLeadCount} : 0"
},
{
"name": "progressLeadCount",
"title": "Сделки в работе",
"info": "Сделки со статусом «В работе»",
"group": "orders",
"is_has_attribution_model": true,
"is_absolute": true,
"order": 2100,
"type": "integer",
"formula": "{progressLeadCount} ? {progressLeadCount} : 0"
},
{
"name": "visits2orders",
"title": "Абсолютная конверсия",
"info": "Продажи, деленные на визиты",
"group": "visitsAndConversions",
"is_has_attribution_model": true,
"is_absolute": false,
"order": 600,
"type": "percent",
"formula": "{visitCount} ? (100*{paidLeadCount}/{visitCount}) : 0"
},
{
"name": "progressAndPaidLeadsCount",
"title": "Потенциальные продажи",
"info": "Количество сделок из статусов «Оплаченные» и «В работе»",
"group": "orders",
"is_has_attribution_model": true,
"is_absolute": true,
"order": 2600,
"type": "integer",
"formula": "{paidLeadCount}+{progressLeadCount}"
},
{
"name": "canceledLeadCount",
"title": "Отмененные сделки",
"info": "Сделки из группы статусов «Отмененные»",
"group": "orders",
"is_has_attribution_model": true,
"is_absolute": true,
"order": 2300,
"type": "integer",
"formula": "{leadCount}-{progressLeadCount}-{paidLeadCount}"
},
{
"name": "progressLeadsPrice",
"title": "Выручка «В работе»",
"info": "Потенциальная выручка, которая берется у сделок «В работе»",
"group": "profit",
"is_has_attribution_model": true,
"is_absolute": false,
"order": 2200,
"type": "money",
"formula": "{progressLeadsPrice}\n ? {progressLeadsPrice}\n : ({paidLeadCount} ? {paidLeadsPrice}*{progressLeadCount}/{paidLeadCount} : 0)"
},
{
"name": "paidLeadsPrice",
"title": "Выручка",
"info": "Выручка для сделок в статусе «Оплаченные»",
"group": "profit",
"is_has_attribution_model": true,
"is_absolute": true,
"order": 700,
"type": "money",
"formula": "{paidLeadsPrice} ? {paidLeadsPrice} : 0"
},
{
"name": "progressAndPaidLeadsPrice",
"title": "Потенциальная выручка",
"info": "Выручка для сделок со статусами «В работе» и «Оплаченные»",
"group": "profit",
"is_has_attribution_model": true,
"is_absolute": true,
"order": 2700,
"type": "money",
"formula": "({paidLeadsPrice}?{paidLeadsPrice}:0)+({progressLeadsPrice}?{progressLeadsPrice}:({paidLeadCount}?{paidLeadsPrice}*{progressLeadCount}/{paidLeadCount}:0))"
},
{
"name": "revenue_сanceled",
"title": "Выручка отмененных заявок",
"info": "Выручка по заявкам со статусами «Отмененные»",
"group": "profit",
"is_has_attribution_model": true,
"is_absolute": true,
"order": 2750,
"type": "money",
"formula": "{revenue_canceled} ? {revenue_canceled} : 0"
},
{
"name": "leadsCosts",
"title": "Себестоимость",
"info": "Вы можете указать Себестоимость следующими способами:\n1. Указать значение в пункте «Прибыль от сделки» в «Настройки» -> «Настройки проекта»\n2. Создать поле для себестоимости в CRM, заполнять его и выбрать поле из списка в «Настройки» -> «Интеграция с CRM»",
"group": "cost",
"is_has_attribution_model": true,
"is_absolute": true,
"order": 1000,
"type": "money",
"formula": "{leadsCosts}\n ? {leadsCosts}\n : ( {paidLeadsPrice} * (1 - ({$profitFactor} ? {$profitFactor} : 1)) )"
},
{
"name": "profit",
"title": "Прибыль",
"info": "Разница между Выручкой и Себестоимостью",
"group": "profit",
"is_has_attribution_model": true,
"is_absolute": true,
"order": 1100,
"type": "money",
"formula": "{leadsCosts}\n ? ( {paidLeadsPrice} - {leadsCosts} )\n : ( {paidLeadsPrice} * {$profitFactor} )"
},
{
"name": "potentialProfit",
"title": "Потенциальная прибыль",
"info": "Потенциальная прибыль со сделок \"В работе\" и \"Оплаченные\"",
"group": "profit",
"is_has_attribution_model": true,
"is_absolute": true,
"order": 2800,
"type": "money",
"formula": "{$isHasCost}\n ? ( ({paidLeadsPrice} ? {paidLeadsPrice} : 0)\n + ({progressLeadsPrice}\n ? {progressLeadsPrice}\n : ( {paidLeadCount} ? {paidLeadsPrice} * {progressLeadCount} / {paidLeadCount} : 0 ))\n - {leadsCosts} )\n : ( ( ({paidLeadsPrice} ? {paidLeadsPrice} : 0)\n + ({progressLeadsPrice}\n ? {progressLeadsPrice}\n : ( {paidLeadCount} ? {paidLeadsPrice} * {progressLeadCount} / {paidLeadCount} : 0 )) )\n * {$profitFactor} )"
},
{
"name": "meanCheck",
"title": "Средний чек",
"info": "Выручка, деленная на продажи",
"group": "profit",
"is_has_attribution_model": true,
"is_absolute": false,
"order": 800,
"type": "money",
"formula": "{paidLeadCount}?{paidLeadsPrice}/{paidLeadCount}:0"
},
{
"name": "potentialMeanCheck",
"title": "Потенциальный средний чек",
"info": "Потенциальная выручка, деленная на потенциальные продажи",
"group": "profit",
"is_has_attribution_model": true,
"is_absolute": false,
"order": 2900,
"type": "money",
"formula": "({progressLeadCount}+{paidLeadCount})\n ?({paidLeadsPrice}+({progressLeadsPrice}?{progressLeadsPrice}:({paidLeadCount}?{paidLeadsPrice}*{progressLeadCount}/{paidLeadCount}:0)))/({progressLeadCount}+{paidLeadCount})\n :0"
},
{
"name": "meanProfit",
"title": "Средняя прибыль",
"info": "Прибыль, деленная на продажи",
"group": "profit",
"is_has_attribution_model": true,
"is_absolute": false,
"order": 900,
"type": "money",
"formula": "{paidLeadCount}?(({leadsCosts}?({paidLeadsPrice}-{leadsCosts}):({paidLeadsPrice}*{$profitFactor}))/{paidLeadCount}):0"
},
{
"name": "visitsCost",
"title": "Расходы",
"info": "Маркетинговые расходы",
"group": "cost",
"is_has_attribution_model": false,
"is_absolute": true,
"order": 1300,
"type": "money",
"formula": "{visitsCost} ? {visitsCost} : 0"
},
{
"name": "costPerOrder",
"title": "CPO",
"info": "Расходы, деленные на продажи",
"group": "cost",
"is_has_attribution_model": true,
"is_absolute": false,
"order": 1900,
"type": "money",
"formula": "{visitsCost} ? ({paidLeadCount}?{visitsCost}/{paidLeadCount}:0) : 0"
},
{
"name": "roi",
"title": "ROI",
"info": "Возврат инвестиций. Значение должно быть больше 0%",
"group": "profit",
"is_has_attribution_model": true,
"is_absolute": false,
"order": 1400,
"type": "percent",
"formula": "{visitsCost} ? (100*(({leadsCosts} ? ({paidLeadsPrice}-{leadsCosts}) : ({paidLeadsPrice}*{$profitFactor}))-{visitsCost})/{visitsCost}) : 0"
},
{
"name": "romi",
"title": "ROMI",
"info": "Возврат инвестиций с маркетинга",
"group": "profit",
"is_has_attribution_model": true,
"is_absolute": false,
"order": 1500,
"type": "percent",
"formula": "{visitsCost} ? (100 * ({paidLeadsPrice} - {visitsCost})/{visitsCost}) : 0"
},
{
"name": "potentialRoi",
"title": "Потенциальный ROI",
"info": "Потенциальный возврат инвестиций. Значений должно быть больше 0%",
"group": "profit",
"is_has_attribution_model": true,
"is_absolute": false,
"order": 2500,
"type": "percent",
"formula": "{visitsCost}\n ? (100*(\n ({leadsCosts}\n ? ({paidLeadsPrice}+({progressLeadsPrice}?{progressLeadsPrice}:({paidLeadCount}?{paidLeadsPrice}*{progressLeadCount}/{paidLeadCount}:0))-{leadsCosts})\n : (({paidLeadsPrice}+({progressLeadsPrice}?{progressLeadsPrice}:({paidLeadCount}?{paidLeadsPrice}*{progressLeadCount}/{paidLeadCount}:0)))*{$profitFactor}))-{visitsCost})\n /{visitsCost})\n : 0"
},
{
"name": "costPerClick",
"title": "CPC",
"info": "Средняя стоимость клика",
"group": "cost",
"is_has_attribution_model": false,
"is_absolute": false,
"order": 1700,
"type": "money",
"formula": "{visitCount} ? {visitsCost}/{visitCount} : 0"
},
{
"name": "costPerLead",
"title": "CPL",
"info": "Средняя стоимость заявки",
"group": "cost",
"is_has_attribution_model": true,
"is_absolute": false,
"order": 1800,
"type": "money",
"formula": "{leadCount} ? {visitsCost}/{leadCount} : 0"
},
{
"name": "adProfit",
"title": "Чистая прибыль",
"info": "Разница между Прибылью и Расходами",
"group": "profit",
"is_has_attribution_model": true,
"is_absolute": true,
"order": 1200,
"type": "money",
"formula": "({leadsCosts}\n ? ( {paidLeadsPrice} - {leadsCosts} )\n : ( {paidLeadsPrice} * {$profitFactor}) ) - {visitsCost}"
},
{
"name": "clientCount",
"title": "Клиенты",
"info": "Количество клиентов",
"group": "client",
"is_has_attribution_model": false,
"is_absolute": true,
"order": 3000,
"type": "integer",
"formula": "{clientCount} ? {clientCount} : 0"
},
{
"name": "repeatedLeadCount",
"title": "Повторные заявки",
"info": "Разница между Заявками и Клиентами",
"group": "client",
"is_has_attribution_model": false,
"is_absolute": true,
"order": 3200,
"type": "integer",
"formula": "{clientCount} ? ({leadCount} - {clientCount}) : 0"
},
{
"name": "repeatedLeadRate",
"title": "Повторные заявки, %",
"info": "Доля повторных заявок",
"group": "client",
"is_has_attribution_model": false,
"is_absolute": false,
"order": 3300,
"type": "percent",
"formula": "({clientCount} && {leadCount}) ? (({leadCount} - {clientCount}) * 100 / {leadCount}) : 0"
},
{
"name": "clientCost",
"title": "CAC",
"info": "Средняя стоимость привлечения клиента",
"group": "client",
"is_has_attribution_model": false,
"is_absolute": false,
"order": 3600,
"type": "money",
"formula": "{clientCount} ? ({visitsCost} / {clientCount}) : 0"
},
{
"name": "clientPrice",
"title": "LTV",
"info": "Средняя прибыль, принесенная платящим клиентом",
"group": "client",
"is_has_attribution_model": false,
"is_absolute": false,
"order": 3700,
"type": "money",
"formula": "{paidClientCount} ? ({paidLeadsPrice} / {paidClientCount}) : 0"
},
{
"name": "paidClientCount",
"title": "Оплатившие клиенты",
"info": "Количество оплативших клиентов",
"group": "client",
"is_has_attribution_model": false,
"is_absolute": true,
"order": 3100,
"type": "integer",
"formula": "{paidClientCount} ? {paidClientCount} : 0"
},
{
"name": "repeatedSales",
"title": "Повторные продажи",
"info": "Разница между Продажами и Оплатившими клиентами",
"group": "client",
"is_has_attribution_model": false,
"is_absolute": true,
"order": 3400,
"type": "integer",
"formula": "{paidClientCount} ? ({paidLeadCount} - {paidClientCount}) : 0"
},
{
"name": "repeatedSalesRate",
"title": "Повторные продажи, %",
"info": "Доля повторных продаж",
"group": "client",
"is_has_attribution_model": false,
"is_absolute": false,
"order": 3500,
"type": "percent",
"formula": "({paidClientCount} && {paidLeadCount}) ? (({paidLeadCount} - {paidClientCount}) * 100 / {paidLeadCount}) : 0"
},
{
"name": "costProportion",
"title": "ДРР, %",
"info": "Доля рекламного расхода в прибыли",
"group": "cost",
"is_has_attribution_model": true,
"is_absolute": false,
"order": 1600,
"type": "percent",
"formula": "{leadsCosts}\n ? (({paidLeadsPrice} - {leadsCosts}) !== 0\n ? {visitsCost} / ({paidLeadsPrice} - {leadsCosts}) * 100\n : 0)\n : ({paidLeadsPrice}\n ? {visitsCost} / ({paidLeadsPrice} * {$profitFactor}) * 100\n : 0)"
},
{
"name": "potentialCPO",
"title": "Потенциальный CPO",
"info": "Потенциальная стоимость привлеченной продажи",
"group": "cost",
"is_has_attribution_model": true,
"is_absolute": false,
"order": 2400,
"type": "money",
"formula": "{visitsCost} && ({paidLeadCount} || {progressLeadCount})\n ? ({visitsCost}) / ({paidLeadCount}+{progressLeadCount})\n : 0"
},
{
"name": "marginality",
"title": "Маржинальность, %",
"info": "Отношение прибыли к себестоимости",
"group": "profit",
"is_has_attribution_model": true,
"is_absolute": false,
"order": 2000,
"type": "percent",
"formula": "{leadsCosts}\n ? ((({paidLeadsPrice} - {leadsCosts}) / {leadsCosts}) * 100)\n : 0"
},
{
"name": "event_meta_10",
"title": "Корзина",
"info": "Событие Корзина",
"group": "events",
"is_has_attribution_model": false,
"is_absolute": true,
"order": 4200,
"type": "integer",
"formula": "{event_meta_10} ? {event_meta_10} : 0"
},
{
"name": "event_meta_unique_10",
"title": "Корзина (пользователи)",
"info": "Количество пользователей, вызвавших событие Корзина",
"group": "events",
"is_has_attribution_model": false,
"is_absolute": true,
"order": 4300,
"type": "integer",
"formula": "{event_meta_unique_10} ? {event_meta_unique_10} : 0"
}
],
"status": "success"
}
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
project | string | Номер проекта | да |
Тело запроса:
Без параметров.
Параметр | Тип | Описание |
---|---|---|
metrics | array[object] | |
> name | string | системное название метрики |
> title | string | человекочитаемое название метрики |
> info | string | краткое определение метрики |
> group | string | системное название группы метрик, к которой данная метрика относится в Roistat |
> is_has_attribution_model | boolean | параметр, который указывает, рассчитывается ли метрика по какой-нибудь модели атрибуции или нет:
|
> is_absolute | boolean | параметр, связанный с характером подсчета метрики:
|
> order | integer | порядок сортировки метрик (=столбцов) в отчете |
> type | string | тип значения метрики:
|
> formula | string | формула вычисления метрики |
status | string |
Получить список доступных измерений¶
POST https://cloud.roistat.com/api/v1/project/analytics/dimensions
Возвращает список доступных измерений. Подробности смотрите в /project/analytics/data
.
{
"dimensions": [
{
"name": "marker_level_1",
"title": "Источник (уровень 1)",
"order": 100
},
{
"name": "marker_level_2",
"title": "Источник (уровень 2)",
"order": 200
},
{
"name": "marker_level_3",
"title": "Источник (уровень 3)",
"order": 300
},
{
"name": "marker_level_4",
"title": "Источник (уровень 4)",
"order": 400
},
{
"name": "marker_level_5",
"title": "Источник (уровень 5)",
"order": 500
},
{
"name": "marker_level_6",
"title": "Источник (уровень 6)",
"order": 600
},
{
"name": "marker_level_7",
"title": "Источник (уровень 7)",
"order": 700
},
{
"name": "utm_source",
"title": "utm_source",
"order": 800
},
{
"name": "utm_medium",
"title": "utm_medium",
"order": 900
},
{
"name": "utm_campaign",
"title": "utm_campaign",
"order": 1000
},
{
"name": "utm_term",
"title": "utm_term",
"order": 1100
},
{
"name": "utm_content",
"title": "utm_content",
"order": 1200
},
{
"name": "roistat_param1",
"title": "roistat_param1",
"order": 1300
},
{
"name": "roistat_param2",
"title": "roistat_param2",
"order": 1400
},
{
"name": "roistat_param3",
"title": "roistat_param3",
"order": 1500
},
{
"name": "roistat_param4",
"title": "roistat_param4",
"order": 1600
},
{
"name": "roistat_param5",
"title": "roistat_param5",
"order": 1700
},
{
"name": "host",
"title": "Домен",
"order": 1800
},
{
"name": "landing_page",
"title": "Посадочная страница",
"order": 1900
},
{
"name": "referrer",
"title": "Источник",
"order": 2000
},
{
"name": "referrer_host",
"title": "Домен источника",
"order": 2100
},
{
"name": "country",
"title": "Страна",
"order": 2200
},
{
"name": "city",
"title": "Город",
"order": 2300
},
{
"name": "device",
"title": "Устройство",
"order": 1005002
},
{
"name": "browser",
"title": "Браузер",
"order": 1005003
},
{
"name": "ad_position_type",
"title": "Блок показа",
"order": 2400
},
{
"name": "ad_position",
"title": "Позиция показа",
"order": 2500
},
{
"name": "daily",
"title": "День",
"order": 2700
},
{
"name": "weekly",
"title": "Неделя",
"order": 2900
},
{
"name": "monthly",
"title": "Месяц",
"order": 3000
},
{
"name": "order_field_21",
"title": "customer_id",
"order": 3200
},
{
"name": "order_field_4",
"title": "Статус сделки",
"order": 3300
},
{
"name": "order_field_5",
"title": "Город",
"order": 3400
},
{
"name": "order_field_23",
"title": "Дата доставки",
"order": 3500
},
{
"name": "order_field_22",
"title": "Дата отгрузки",
"order": 3600
},
{
"name": "order_field_11",
"title": "Дата отправки",
"order": 3700
},
{
"name": "order_field_3",
"title": "Дизайнер",
"order": 3800
},
{
"name": "order_field_7",
"title": "Касса",
"order": 3900
},
{
"name": "order_field_1",
"title": "Количество картин в заказе",
"order": 4000
},
{
"name": "order_field_13",
"title": "Купон",
"order": 4100
},
{
"name": "order_field_9",
"title": "Оператор",
"order": 4200
},
{
"name": "order_field_19",
"title": "Причина возврата",
"order": 4300
},
{
"name": "order_field_16",
"title": "Причина мусора",
"order": 4400
},
{
"name": "order_field_2",
"title": "Причина отказа",
"order": 4500
},
{
"name": "order_field_17",
"title": "Причина отмены",
"order": 4600
},
{
"name": "order_field_20",
"title": "Причина переделки",
"order": 4700
},
{
"name": "order_field_6",
"title": "Производство",
"order": 4800
},
{
"name": "order_field_8",
"title": "Служба доставки",
"order": 4900
},
{
"name": "order_field_12",
"title": "Тип лида",
"order": 5000
},
{
"name": "order_field_18",
"title": "Тип отгрузки",
"order": 5100
},
{
"name": "event_meta_id",
"title": "События",
"order": 3100
},
{
"name": "hours",
"title": "Час",
"order": 2600
},
{
"name": "week_days",
"title": "День недели",
"order": 2800
},
{
"name": "device_type",
"title": "Тип устройства",
"order": 1005001
}
],
"status": "success"
}
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
project | string | Номер проекта | да |
Тело запроса:
Без параметров.
Параметр | Тип | Описание |
---|---|---|
dimensions | array[object] | |
> name | string | системное название измерения |
> title | string | человекочитаемое название измерения |
> order | integer | порядок сортировки измерений (=уровней) в отчете |
status | string |
Узнать, какие измерения (Прямые визиты, Визиты с сайтов) доступны для конкретного типа группировки в отчете¶
POST https://cloud.roistat.com/api/v1/project/analytics/dimension-values
С помощью данного метода вы можете узнать, какие измерения (Прямые визиты, Визиты с сайтов) доступны для конкретного типа группировки в отчете (Источник (уровень 1), Домен).
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
project | string | Номер проекта | да |
dimension | string | системное название типа группировки (измерения). можно узнать с помощью метода /project/analytics/dimensions | да |
Тело запроса:
Без параметров.
Параметр | Тип | Описание |
---|---|---|
values | array[object] | |
> value | string | системное название |
> title | string | человекочитаемое название |
status | string |
Получить список моделей атрибуции¶
POST https://cloud.roistat.com/api/v1/project/analytics/attribution-models
Данный метод выводит список моделей атрибуции.
{
"models": [
{
"id": "default",
"name": "Стандартная модель атрибуции",
"is_system": true
},
{
"id": "ushape",
"name": "UShape",
"is_system": true
},
{
"id": "first_click",
"name": "Первый клик",
"is_system": true
},
{
"id": "last_click",
"name": "Последний клик",
"is_system": true
}
],
"status": "success"
}
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
project | string | Номер проекта | да |
Тело запроса:
Без параметров.
Параметр | Тип | Описание |
---|---|---|
models | array[object] | |
> id | string | системное название модели атрибуции |
> name | string | человекочитаемое название модели атрибуции |
> is_system | boolean | модели атрибуции могут быть:
|
status | string |
Получить список сделок с фильтрацией по параметрам визита¶
POST https://cloud.roistat.com/api/v1/project/analytics/list-orders
Данный метод позволяет получить список сделок с фильтрацией по параметрам визита.
curl 'https://cloud.roistat.com/api/v1/project/analytics/list-orders?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"period": {"from":"2022-01-01T00:00:00+0300","to":"2022-07-31T23:59:59+0300"}}'
Тело запроса:
{
"orders": [
{
"id": "order_239",
"title": "order_239",
"url": "https://example.crm.com/deal/239",
"source": {
"type": "default",
"icon_url": null,
"title": "Стандарт"
},
"creation_date": "2018-01-29T21:32:24+0000",
"update_date": null,
"paid_date": null,
"status": "progress",
"status_name": "Новый",
"price": 476.978,
"cost": 0,
"visit_id": "239",
"visit": null,
"fields_data": {
"status_name": "Новый",
"Менеджер": "Петров Михаил",
"roistat": 239
},
"is_multichannel": 0,
"visits_count": 1,
"client_phones": [],
"client_emails": [],
"client_name": null,
"client_id": null,
"client_external_id": null
}
],
"status": "success"
}
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
project | string | Номер проекта | да |
Тело запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
period | object | временной период | да |
> from | string | начальная дата вида 2016-07-01T00:00:00+0300 | да |
> to | string | конечная дата вида 2016-07-31T00:00:00+0300 | да |
filters | array[object] | фильтры для ограничения данных | нет |
> field | string | параметр, по которому будет идти отбор данных. это могут быть метрики и измерения. Если field - название метрики, то фильтр будет применен после обработки данных, если измерение - до обработки данных | нет |
> operator | string | операция сравнения: >, <, =, <>, >=, <=, in | нет |
> value | string or array[string] | значение метрики/измерения, по которому идет отбор | нет |
attribution_model_id | string | Модель атрибуции: default, first_click, last_click, ushape. Подробнее https://help.roistat.com/features/Analitika_i_otchety/Analitika/Modeli_atribucii/ | нет |
Параметр | Тип | Описание |
---|---|---|
orders | array[object] | |
> id | string | ID заказа из CRM |
> title | string | название сделки из CRM |
> url | string | URL сделки из CRM |
> source | object | |
>> type | string | системный тип канала (источника сделки) |
>> icon_url | string or null | ссылка на иконку канала (источника сделки) |
>> title | string | человекочитаемое название канала (источника сделки) |
> creation_date | string | дата и время создания заказа в формате UTC0 |
> update_date | null or string | дата и время последнего изменения данных о заказе, в формате UTC0 |
> paid_date | null or string | дата и время оплаты заказа, в формате UTC0 |
> status | string | системное имя статуса |
> status_name | string | название статуса |
> price | integer | выручка по заказу |
> cost | integer | себестоимость |
> visit_id | null or string | номер визита клиента |
> visit | null or object | объект с данными визита. Подробнее о данных визита читайте в методе /project/site/visit/list |
> fields_data | object | дополнительные поля |
> is_multichannel | integer | мультиканальность сделки: 1 - было несколько рекламных касаний, 0 - визит был с одного канала |
> visits_count | integer | количество визитов |
> client_phones | array[object] | |
> client_emails | array[object] | |
> client_name | null or string | |
> client_id | null or string | |
> client_external_id | null or string | |
status | string |
Заполнить значения пользовательских показателей¶
POST https://cloud.roistat.com/api/v1/project/analytics/metrics/custom/manual/value/add
С помощью данного метода можно заполнить значения пользовательских показателей. Чтобы получить список пользовательских показателей, используйте метод /project/analytics/metrics/custom/manual/list.
curl 'https://cloud.roistat.com/api/v1/project/analytics/metrics/custom/manual/value/add?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"manual_custom_metric_id": 4, "source": "Прямые визиты", "value": 9999, "period": {"from":"2022-01-01T00:00:00+0300","to":"2022-07-31T23:59:59+0300"}}'
Тело запроса:
Без параметров.
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
project | string | Номер проекта | да |
Тело запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
manual_custom_metric_id | number | идентификатор показателя (можно получить с помощью /project/analytics/metrics/custom/manual/list) | да |
source | string | источник / рекламный канал | да |
value | number | значение | да |
period | object | период (указывается в формате UTC+0) | да |
> from | string | да | |
> to | string | да |
Без параметров.
Получить список пользовательских показателей¶
GET https://cloud.roistat.com/api/v1/project/analytics/metrics/custom/list
С помощью данного метода можно получить список пользовательских показателей.
{
"data": [
{
"id": 4,
"title": "Начатые чаты",
"type": "integer",
"creation_date": "2021-03-05T12:05:38+0000",
"is_used_in_custom_metric": false
},
{
"id": 3,
"title": "Показанные телефоны",
"type": "integer",
"creation_date": "2021-03-05T12:05:30+0000",
"is_used_in_custom_metric": false
}
],
"total": 2,
"status": "success"
}
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
project | string | Номер проекта | да |
Тело запроса:
Без параметров.
Параметр | Тип | Описание |
---|---|---|
data | array[object] | |
> id | number | ID показателя |
> title | string | название показателя |
> type | string | тип данных |
> creation_date | string | дата создания |
> is_used_in_custom_metric | boolean | используется ли в других пользовательских показателях |
total | integer | |
status | string |
Получить значения пользовательских показателей¶
POST https://cloud.roistat.com/api/v1/project/analytics/metrics/custom/manual/value/list
С помощью данного метода можно получить значения пользовательских показателей.
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
project | string | Номер проекта | да |
Параметр | Тип | Описание |
---|---|---|
data | array[object] | Массив с данными о значении показателя |
> id | number | ID значения показателя |
> manual_custom_metric_id | number | ID пользовательского показателя |
> date_from | string | Начало периода, за который внесено значение показателя |
> date_to | string | Окончание периода, за который внесено значение показателя |
> source | string | Источник, к которому относится значение показателя |
> source_alias | string | Человекочитаемый источник, к которому относится значение показателя |
> value | number | Значение пользовательского показателя |
> creation_date | string | Дата ввода значения показателя |
total | number | Общее количество полученных значений |
status | string | Статус запроса |
Удалить значение пользовательского показателя¶
POST https://cloud.roistat.com/api/v1/project/analytics/metrics/custom/manual/value/delete
С помощью данного метода можно удалить значение пользовательского показателя. Узнать ID значения показателя можно с помощью метода /project/analytics/metrics/custom/manual/value/list.
curl 'https://cloud.roistat.com/api/v1/project/analytics/metrics/custom/manual/value/delete?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"id": 4}'
Тело запроса:
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
project | string | Номер проекта | да |
Тело запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
id | number | ID значения показателя (можно получить с помощью /project/analytics/metrics/custom/manual/value/list) | да |
Параметр | Тип | Описание |
---|---|---|
status | string | Статус запроса |
Получить данные отчета "Воронка статусов"¶
POST https://cloud.roistat.com/api/v1/project/reports/funnel/data
Данный метод позволяет получить данные отчета Воронка статусов.
curl 'https://cloud.roistat.com/api/v1/project/reports/funnel/data?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"period": {"from":"2022-01-01T00:00:00+0300","to":"2022-07-31T23:59:59+0300"}, "funnel": [{"title": "В работе","statuses": ["0","1","2"],"order": "1"}], "dimensions": ["marker_level_1"], "next_dimensions": ["marker_level_2"]}'
Тело запроса:
{
"period": {
"from": "2022-01-31T21:00:00.000Z",
"to": "2022-02-28T20:59:59.999Z"
},
"filters": [
{
"field": "marker_level_1",
"operator": "=",
"value": "yamarket3"
}
],
"funnel": [
{
"title": "В работе",
"statuses": ["0","1","2"],
"order": "1"
},
{
"title": "Оплаченные",
"statuses": ["3"],
"order": "2"
}
],
"dimensions": ["marker_level_1"],
"next_dimensions": ["marker_level_2"]
}
{
"data": {
"date_from": "2022-01-31T21:00:00+0000",
"date_to": "2022-02-28T20:59:59+0000",
"items":[
{
"dimensions": {
"marker_level_1": {
"icon": "https:\/\/favicon.yandex.net\/favicon\/market.yandex.ru",
"title": "Яндекс.Маркет",
"value": "yamarket3"
}
},
"metrics": {
"visits": 2139,
"marketing_cost": 53586.983999999997,
"leads": 99
},
"funnel": {
"1": {
"cost": 541.27272727272725,
"count": 99,
"conversion": 4.6283309957924264,
"status_duration": 29.016828703703705
},
"2": {
"cost": 1531.0285714285715,
"count": 35,
"conversion": 35.353535353535356,
"status_duration": 17.214733796296297
}
},
"is_has_children": true
}
],
"mean": {
"1": {
"cost": 541.27272727272725,
"count": 99,
"conversion": 4.6283309957924264,
"status_duration": 29.016828703703705
},
"2": {
"cost": 1531.0285714285715,
"count": 35,
"conversion": 35.353535353535356,
"status_duration": 17.214733796296297
}
}
},
"status": "success"
}
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
project | string | Номер проекта | да |
Тело запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
period | object | Временной период | да |
> from | string | Начальная дата вида 2016-07-01T00:00:00+0300 | да |
> to | string | Конечная дата вида 2016-07-31T00:00:00+0300 | да |
filters | array[object] | Фильтры для ограничения данных | нет |
> field | string | Параметр, по которому будет идти отбор данных. Это могут быть метрики и измерения. Если field - название метрики, то фильтр будет применен после обработки данных, если измерение - до обработки данных | нет |
> operator | string | Операция сравнения: >, <, =, <>, >=, <=, in | нет |
> value | string or array[string] | Значение метрики/измерения, по которому идет отбор | нет |
funnel | array[object] | Информация о воронках, по которым нужно выгрузить данные | да |
> title | string | Название группы статусов: Не обработан, В работе, Ожидает оплаты или Оплачен | да |
> statuses | array[string] | ID статусов воронки в системе Roistat (можно узнать с помощью метода /project/integration/order/list) | да |
> order | string | Порядковый номер воронки в ответе | да |
dimensions | array[string] | Перечень измерений | да |
next_dimensions | array[string] | Следующий уровень отчета (например, если передать значение "marker_level_2", в ответе в параметре is_has_children будет указано, существует ли данный уровень отчета для каждого источника) | да |
Параметр | Тип | Описание |
---|---|---|
data | array[object] | |
> date_from | string | Начальная дата периода отчета |
> date_to | string | Конечная дата периода отчета |
> items | array[object] | Данные по измерениям, метрикам и воронкам за весь временной период (period) |
>> dimensions | object | Данные по измерениям за весь временной период (period) |
>>> value | string | Системное название измерения |
>>> title | string | Человекочитаемое название измерения (в интерфейсе) |
>>> icon | string | URL-адрес, где находится иконка для конкретного измерения |
>> metrics | array[object] | Данные по метрикам за весь временной период (period) |
>> funnel | array[object] | Информация о воронках, по которым выгружены данные (отображается в порядке, указанном в параметре order) |
>>> cost | string | Расходы |
>>> count | string | Количество заявок, прошедших через статус |
>>> conversion | string | Конверсия |
>>> status_duration | string | Длительность нахождения сделок в статусе |
>> is_has_children | boolean | Параметр, показывающий, существует ли для данной группировки следующий уровень отчета, заданный в next_dimensions |
> mean | object | Общие и средние значения для соответствующих метрик для выбранного временного периода (данные по каждой воронке отображается в порядке, указанном в параметре order ) |
>> cost | string | Расходы |
>> count | string | Количество заявок, прошедших через статус |
>> conversion | string | Конверсия |
>> status_duration | string | Длительность нахождения сделок в статусе |
status | string |