Skip to main content
Статистику вы забираете сами — мы не отправляем исходящих запросов к вашей системе. Данные доступны за любой период и обновляются по мере активности пользователей.

Справочник событий

Возвращает список событий, по которым доступна статистика. Ключи из поля type — это же ключи объектов stats и counts в ответах статистики.
string
Ключ события. Используется как ключ в объектах stats и counts.
string
Название события на русском языке — можно показывать в интерфейсе как есть.
Список пополняется. Стройте интерфейс по ответу этого эндпоинта, а не по фиксированному перечню ключей — тогда новые метрики появятся у вас без доработок. Порядок событий в ответе не гарантирован.

Единицы событий

В stats — сумма по событию за период, в counts — сколько раз событие произошло. Единица суммы у каждого события своя:
Сумма crm.sale — в копейках, а не в рублях: 125000 — это 1 250 ₽. Делите на 100 перед показом.

Статистика пользователей

Постраничный список пользователей с их активностью. Здесь приходит public_id каждого пользователя с активностью за период; ещё он приходит в ответе выдачи подписки и в sub токена виджета. Сохраните его, чтобы потом запрашивать статистику по конкретному пользователю.

Параметры запроса

integer
Позиция, с которой продолжить обход. Для первой страницы не передаётся, дальше — значение next_cursor из предыдущего ответа.
integer
default:"20"
Размер страницы, от 1 до 100.
integer
Начало периода, unix-время в секундах. Не передан — считаем с начала истории.
integer
Конец периода, unix-время в секундах. Не передан — считаем по настоящий момент.

Ответ

array
Пользователи, у которых была активность за период.
integer | null
Курсор следующей страницы. null — данные закончились.

Статистика одного пользователя

string
required
Идентификатор пользователя из списка выше.
integer
Начало периода, unix-время в секундах.
integer
Конец периода, unix-время в секундах.

Ответ

string
Идентификатор пользователя в Ai-Seven.
string | null
Ваш идентификатор пользователя.
object
Суммы по каждому событию из справочника за период. События без активности присутствуют со значением 0.
object
Число событий каждого типа за период.
array
Действующие доступы, выданные вами. Поля — как в списке пользователей.
object | null
Профиль пользователя при его согласии на передачу данных вам, иначе null. Поля — как в списке пользователей.
Ответ приходит и для пользователя без активности — со значениями 0. Этим запрос по public_id отличается от списка, куда такой пользователь не попадёт вовсе — даже если у него есть выданные вами доступы.

Пример

Обход всех страниц за последние сутки:

Поведение

Учитывается вся активность пользователя в Ai-Seven, а не только то, что он делал после перехода из вашего кабинета.Генерации считаются штуками и раскладываются по категориям: text, image, video, audio. Составные инструменты попадают в категорию своего результата — например, слайды карусели считаются изображениями, а озвучка — аудио.tokens.spent — сумма списанных токенов за период, включая операции, которые не являются генерацией.
Событие получает пользователь, которому выплачен бонус за покупку в его структуре: прямой бонус, матчинг или бонус за VIP-пакет. Одна выплата — одно событие.В stats — сумма полученных выплат в копейках, точно, без округления. В counts — число выплат. Бонус, который начислен, но не выплачен, события не даёт.Сумма события — это выплата пользователю, а не цена покупки, за которую она начислена.
Событие получает первый пригласитель пользователя — тот, кто пригласил его раньше всех. Если приглашений не было, событие получает текущий пригласитель. Одно событие на каждого приглашённого, сумма — 1. В stats и counts — число приглашённых за период.Время события — время этого первого приглашения. Если приглашения нет — момент, когда пользователь попал в структуру пригласителя, а если нет и его — время создания аккаунта. Регистрации записываются периодически, раз в 5 минут, поэтому появляются в статистике с задержкой до 5 минут — уже со временем приглашения.Каждый приглашённый учитывается один раз. Если у пользователя потом сменится пригласитель, второго события не будет, а первое останется у прежнего пригласителя.
После подключения события регистраций появятся и за прошлые периоды.
В список попадают пользователи, у которых было хотя бы одно событие из справочника за указанный период — генерация, списание токенов, выплата или регистрация приглашённого. Пользователь без единого события за период не вернётся вовсе — это не то же самое, что нули в stats. Выданный вами доступ событием не считается.Сами объекты stats и counts в обоих эндпоинтах устроены одинаково: в них всегда присутствуют все события из справочника, отсутствующие — нулями.
Список включает всех пользователей платформы, а не только пришедших через вашу интеграцию. У пользователей, пришедших не от вас, поле external_user_id равно null. Пользователи обезличены: имя, фото и email приходят только в profile и только с согласия пользователя на передачу данных вам.Если вам нужны только свои — отбирайте по непустому external_user_id на своей стороне.
date_from и date_to — unix-время в секундах, обе границы включительно, с точностью до секунды. Можно указать только одну: без date_from считаем с начала истории, без date_to — по текущий момент.События записываются в момент завершения операции. Генерация, начатая до date_to и завершившаяся после, попадёт в следующий период. Регистрации появляются с задержкой до 5 минут, но со временем приглашения.accesses и profile от периода не зависят — это состояние на момент запроса.

Ошибки

Помимо общих ошибок:
Для регулярной выгрузки берите период, который закончился хотя бы 5 минут назад, и опирайтесь на date_from/date_to, а не на «всё время»: так объём ответа остаётся предсказуемым, регистрации за период уже записаны, и повторный запрос за тот же период даёт те же stats и counts. accesses и profile — состояние на момент запроса.