Читать 19

API метод выгрузки отчета по сквозной аналитике


Предназначение API-методов

С помощью API-методов ниже можно выгрузить статистику по любым метрикам Calltouch, доступных в отчете: "Сквозная аналитика":


Статистику через API можно получить в любом порядке уровней вложенности:



Доступны стандартные уровни: Канал, Источник, Кампания, Объявление, Ключевое слово, Дата (Дни, Недели, Месяцы). 

Группировки по utm-меткам и кампаниям в виде кастомных уровней вложенности недоступны.

Статистику по API можно отфильтровать по любым значениям канала, источника, кампании, объявления и ключевого слова. Фильтрация осуществляется по логическому условию «равно».


За один API-запрос можно сформировать статистику не более, чем за 90 дней.

Если необходимо получить статистику более, чем за 90 дней, можно последовательно отправить несколько API-запросов, разбив их на периоды.

Статистика начинает быть доступной к выгрузке с предыдущего дня от текущей даты.

Описание API-методов

Для скачивания описанной выше статистики по различным метрикам, необходимо последовательно выполнить 3 API-запроса:

  1. Отправить запрос на формирование выгрузки, в ответ он вернет ID формирующийся выгрузки.

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

  3. Как только выгрузка будет сформирована, скачать ее отдельным API-запросом.

Вся выгружаемая статистика базируется на основе отчета по Сквозной аналитике. Если вы хотите сравнить полученную статистику по API со статистикой в ЛК, используйте именно этот отчет.

Для авторизации в API используется стандартный токен и ID личного кабинета Calltouch, получить который можно в разделе:  Интеграции /  Отправка данных во внешние системы / API и Webhooks / API.

Получение по API статистики из групповых личных кабинетов недоступно. В случае такого кейса, необходимо получать статистику из отдельных личных кабинетов, входящих в групповой личный кабинет.

За каждый API-запрос списывается определенное количество API-баллов, доступных для вашей учетной записи. Количество списываемых баллов будет указана для каждого запроса далее в разделе «цена». 

Количество запросов в секунду к API Calltouch ограничено — не более 5 запросов в секунду с одного IP-адреса. Например, если в 1 секунду с одного IP-адреса поступит 11 API-запросов, то 5 выполнятся сразу, а остальные API-запросы завершатся с ошибкой c кодом 429 (Too Many Requests).

Будьте внимательны при проектировании интеграции — если лимит API-баллов будет исчерпан, вы не сможете обращаться к API в течение суток. Подробнее читайте в статье: Система баллов API Calltouch.

Далее описан формат всех трех API-запросов.

API-метод формирования выгрузки статистики по различным метрикам

Цена выполнения запроса: 100 баллов

POST https://api.calltouch.ru/report-service/RestAPI/api/costs-export/create
   

Headers:

  • Access-Token: API-токен Calltouch
  • Site-Id: ID личного кабинета Calltouch

Формат тела запроса: JSON

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

{

    "dateFrom": "2021-04-01",
    "dateTo": "2021-04-03",
    "format": "json",
    "attribution": 0,
    "metrics": [76,77,18,112,113,111],
    "dimensions": ["medium", "source", "campaign",      "content", "term", "days"],
    "filters":     
        [
            {
                        "parameter": "source",
                        "operator": "equals",
                        "value": "yandex"
            },
            {
                        "parameter": "medium",
                        "operator": "equals",
                        "value": "cpc"
            },
            {
                        "parameter": "term",
                        "operator": "equals",
                        "value": "calltouch"
            }
       ]   
}

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

{
    "meta": [],
    "data": {
        "exportId": 120146
    }
}

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

Параметр Обязательно Формат Описание Пример
Запрос
dateFrom Да yyyy-mm-dd Дата начала периода 2022-09-02
dateTo Да yyyy-mm-dd Дата конца периода 2022-09-02
format Нет Строка Формат выгрузки. Возможные значения: json или csv. Если параметр не передан, то по умолчанию json csv
attribution Да Число Модель аттрибуции:
  • 0 — Последнее взаимодействие
  • 1 — Последний непрямой
1
metrics Да Массив ID выгружаемых метрик, см. таблицу ниже «ID метрик и их названий в личном кабинете Calltouch». Первыми двумя метриками обязательно передавать бюджет (id=76) и клики (id=77) и именно в таком порядке: 76,77,...остальные id метрик. 76,77,18,112,113,111
dimensions Да Массив Уровни вложенности:
  • medium — канал
  • source — источник
  • campaign — кампания
  • content — объявление
  • term — ключевое слово
  • days — дата (можно указать либо days либо weeks либо months
Обязательно указать как минимум один уровень вложенности
"medium", "source", "campaign", "content", "term", "days"
filters.parameter Нет Массив Можно выгрузить статистику, подходящую под определенный фильтр. Возможные значения:
  • medium — канал
  • source — источник
  • campaign — кампания
  • content — объявление
  • term — ключевое слово
source
filters.operator Нет Массив Логическое условие фильтра. Всегда «равно». equals
filters.value Нет Массив Фильтруемое значение yandex
Ответ
data.exportId - Число ID формирующийся выгрузки. По нему двумя отдельными API-запросами можно будет получить статус выгрузки и саму выгрузку, как только она будет готова. 120146

ID метрик и их названий в личном кабинете Calltouch:

ID метрики Название в отчете личного кабинета
Площадки
76 Бюджет
75 Показы
77 Клики
22 CTR
23 CPC
108 % в лиды
Поведение
143 Среднее время до уникального звонка
145 Среднее время до уникальной заявки
147 Среднее время на сайте
148 Отказы
120 Средняя длительность звонков
Лиды
2 Все звонки
3 Уникальные звонки
4 Повторные звонки
121 Неудачные звонки
5 Целевые звонки
6 Уникально-целевые звонки
197 Спам-звонки
7 Все заявки
37 Уникальные заявки
38 Повторные заявки
187 Неудачные заявки
39 Целевые заявки
40 Уникально-целевые заявки
8 Все обратные звонки
9 Уникальные обратные звонки
164 Неудачные обратные звонки
10 Целевые обратные звонки
11 Уникально-целевые обратные звонки
198 Спам-обратные звонки
18 Все лиды
19 Уникальные лиды
190 Неудачные лиды
20 Целевые лиды
21 Уникально-целевые лиды
214 Все чаты
215 Уникальные чаты
216 Повторные чаты
217 Неудачные чаты
218 Целевые чаты
219 Уникально-целевые чаты
Сделки
112 Всего сделок
109 % в сделки
110 Средний чек
113 Выручка
111 ROI
201 Маржинальность
Электронная торговля
125 Просмотры товаров
181 Добавлен в корзину
182 Выручка по добавленным в корзину
183 Маржа по добавленным в корзину
184 Удалён из корзины
185 Выручка по удалённым из корзины
186 Маржа по удалённым из корзины
126 Товаров в корзине
127 Выручка по корзине
128 Маржа по корзине
140 Заказ оформлен
131 Количество заказанных товаров
129 Выручка по заказам
130 Маржа по заказам
141 Оплата
134 Количество оплаченных товаров
132 Выручка по оплатам
133 Маржа по оплатам

Как получить ID пользовательских метрик, целей и плановых метрик

В личном кабинете перейдите в меню:  Настройки /  Отчеты / Пользовательские метрики. Напротив каждой метрики указан ID.


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

Также вы можете скопировать список ID из кода. В браузере необходимо зайти в отчет «Сквозная аналитика», открыть инструменты разработчика, перейти на вкладку Network, отфильтровать результаты по слову settings и перезагрузить страницу. Список ID пользовательских метрик будет доступен в объекте data.metric_data.metric_types[5]:


ID целей и плановых метрик находятся там же в объектах data.metric_data.metric_types[6] и data.metric_data.metric_types[7] соответственно.

API-запрос на получение статуса формирования выгрузки

Цена выполнения запроса: 1 балл

POST https://api.calltouch.ru/report-service/RestAPI/api/costs-export/status  

Headers:

  • Access-Token: API-токен Calltouch
  • Site-Id: ID личного кабинета Calltouch

Формат тела запроса: JSON

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

{ 
    "exportIds": [120146,120141,120135]
}

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

{ 
    "meta": [],
    "data": [
        {
            "exportId": 120146,
            "status": "success",
"format": "csv",
            "parts": 1 
        },
        {
            "exportId": 120135,
            "status": "error",
            "format": "json",
            "parts": 0 
        },
        {
            "exportId": 120141,
            "status": "in progress",
            "format": "json",
            "parts": 0 
        }
    ]
}

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

Параметр Обязательно Формат Описание Пример
Запрос
exportIds Да Массив ID's формирующихся выгрузок, полученные в ответе на первый API-запрос. Можно указать несколько, минимум один. 120146,120141,120135
Ответ
data.exportId - Число ID формирующийся выгрузки 120146
data.format - Строка В каком из форматов происходит выгрузка отчета, json или csv json
data.status - Строка Статус формирующийся выгрузки:
  • success — успешно, можно забирать выгрузку отдельным API-запросом.
  • error — ошибка, повторите попытку. В случае нескольких повторов обратитесь к вашему аккаунт-менеджеру Calltouch для выяснения деталей.
  • in progress — выгрузка формируется. В зависимости от периода выборки и объема статистики по вашему сайту формирование выгрузки может занять от нескольких секунд до нескольких часов.
success
data.parts - Число Кол-во частей выгрузки. В случае, если сформированная выгрузка содержит более 1000 строк (не JSON-строк, а строк статистики), она будет поделена на части по 1000 выгрузок. Каждую часть выгрузки необходимо забирать отдельным API-запросом. Актуальное значение появляется после успешного статуса success. 1

API-запрос скачивания сформированной выгрузки

Цена выполнения запроса: 1 балл

POST https://api.calltouch.ru/report-service/RestAPI/api/costs-export/download
   

Headers:

  • Access-Token: API-токен Calltouch
  • Site-Id: ID личного кабинета Calltouch

Формат тела запроса: JSON

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

{

    "exportId": 120146,
    "partNumber": 1
}   

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

{
    "meta": {
        "pagination": {
            "current_page": 1,
            "items_per_page": 3
        },
        "series": [
            [
                "(none)"
            ],
            [
                "cpc"
            ],
            [
                "organic"
            ]
        ],
        "dimensions": [
            { 
                "alias": "medium",
                "name": "Канал" 
             }
         ],
        "columns": [
            {
                "id": 76,
                "name": "Бюджет",
                "type": "currency"
            },
            {
                "id": 77,
                "name": "Клики",
                "type": "plain"
            },
            {
                "id": 18,
                "name": "Все лиды",
                "type": "plain"
            },
            {
                "id": 18,
                "name": "Все лиды %",
                "type": "percent"
            },
            {
                "id": 18,
                "name": "Все лиды цена",
                "type": "currency"
            },
            {
                "id": 112,
                "name": "Всего сделок",
                "type": "plain"
            },
            {
                "id": 113,
                "name": "Выручка",
                "type": "currency"
            },
            {
                "id": 111,
                "name": "ROI",
                "type": "percent"
            }
        ]
    },
    "data": {
        "metrics": [
            [
                0,
                8,
                1,
                0.125,
                0,
                0,
                0,
                0
            ],
            [
                0,
                0,
                3,
                0,
                0,
                0,
                0,
                0
            ],
            [
                0,
                0,
                2,
                0,
                0,
                0,
                0,
                0
            ]
        ]
    }
}

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

Параметр Обязательно Формат Описание Пример
Запрос
exportId Да Число ID успешно сформированной выгрузки. 120146
partNumber Да Число Номер части сформированной выгрузки, если выгрузка была автоматически поделена на части. 1
Ответ
meta.pagination.current_page
Число Текущая часть выгрузки, если выгрузка была автоматически поделена на части. 1
meta.pagination.items_per_page

Всего строк на странице 3
meta.series
Массив Значения выбранных уровней вложенности в заданном порядке. Условно — это строки отчета. [ "(none)" ], [ "cpc" ], [ "organic" ]
meta.dimensions
Массив Значения уровней вложенности в выгрузке, в заданном порядке. [  {   "alias": "medium",  "name": "Канал"   }  ]
meta.columns.id
Число ID выбранных метрик. Условно — это заголовки столбцов отчета. { "id": 76, "name": "Бюджет", "type": "currency" }, { "id": 77, "name": "Клики", "type": "plain" },
meta.columns.name
Текст Названия выбранных метрик
meta.columns.type
Текст Тип выбранной метрики: plain — число percent – процент currency — валюта
data.metrics
Массив Значения выбранных метрик. Условно – это столбцы отчета. [ 0, 8, 1, 0.125, 0, 0, 0, 0 ],

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

"12.05.2023 - 12.05.2023 Отчет по Расходам"

Канал;Источник;Бюджет;Клики;"Все лиды";"Все лиды %";"Все лиды цена"

(none);(direct);0;8;1;0.125;0

"<не заполнено>";"<не заполнено>";0;0;2;0;0

Итого;;0;8;3;0.375;0

Параметр Обязательно Формат Описание Пример
Запрос
exportId Да Число ID успешно сформированной выгрузки. 120146
partNumber Да Число Номер части сформированной выгрузки, если выгрузка была автоматически поделена на части. 1
Ответ
1 строка

Название отчета и даты выгрузки "12.05.2023 - 12.05.2023 Отчет по Расходам"
2 строка 
Названия столбцов Канал;Источник;Бюджет;Клики;"Все лиды";"Все лиды %";"Все лиды цена"
Последняя строка
Итоговая сумма по всем строкам в отчете Итого;;0;8;3;0.375;0
Остальные строки

Таблица значений запрошенных метрик в разрезе запрошенных уровней вложенности (none);(direct);0;8;1;0.125;0 "<не заполнено>";"<не заполнено>";0;0;2;0;0
Не нашли решение проблемы?
Заполните форму, и мы вам поможем.