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

Базовые представления о получении статистики через stat.uni

После того, как вы поймете как использовать наш метод получения статистики stat.uni (https://sendsay.ru/api/api.html#Универсальная-статистика), перед вами откроется новый дивный мир =)

Все представленные ниже примеры вы можете проверить самостоятельно в АПИ-консоли, при необходимости изменив под ваши конкретные нужды.

Статистика по выпуску

То что вы видите в веб-интерфейсе как статистику по выпуску получено из кэшированных данных, именно поэтому мы отдаем эти сведения моментально.

{
"action": "stat.uni",
"result": "response",
"select": ["issue.id", "issue.name", "issue.subject", "issue.dt:Ys", "issue.group.gid", "issue.group.name", "issue.members", "issue.deliv_ok", "issue.deliv_bad", "issue.readed", "issue.u_readed", "issue.clicked", "issue.u_clicked", "issue.unsubed"],
"filter": [{
"a": "issue.dt:Ys",
"op": ">=",
"v": "2020-04-01 00:00:00"
}, {
"a": "issue.dt:Ys",
"op": "<=",
"v": "2020-04-30 23:59:59"
}, {
"a": "issue.format",
"op": "==",
"v": "e"
}],
"order": ["-issue.dt:Ys"]
}

С помощью данного запроса вы получите список email-выпусков за апрель 2020 года со всей базовой информацией. Так как статистика по выпускам заранее посчитана, то вы можете спокойно запросить данные по всем отправленным выпускам за весь срок жизни вашего аккаунта, при необходимости.

{
"action": "stat.uni",
"select": [
"issue.features",
"sum(issue.members)"
],
"filter": [
{
"a": "issue.dt:YM",
"op": "==",
"v": "2020-06"
},
{
"a": "issue.format",
"op": "==",
"v": "e"
}
]
}

В данном запросе вы получите количество участников email-выпусков (отправленных писем) за июнь 2020 года с разбивкой по значению поля issue.features. Это нужно, например, чтобы посчитать сколько писем было отправлено с PDF-вложениями.

Полый набор и описание полей, описывающих выпуск рассылки (issue.*) всегда можно и нужно смотреть в документации.

Статистика для конкретного получателя

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

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

Нельзя в одном запросе добавить в select параметры, описывающие разные события.

Немного примеров, для того, чтобы понять как это все работает.

Все выпуски, отправленные за сегодня для конкретного емейла

{
"action": "stat.uni",
"result": "response",
"select": [
"deliv.member.email",
"deliv.issue.id",
"deliv.issue.name",
"deliv.issue.dt",
"deliv.status"
],
"filter": [
{
"a": "deliv.member.email",
"op": "==",
"v": "my@secret.email"
},
{
"a": "deliv.issue.dt:YD",
"op": "==",
"v": "CURRENT"
}
]
}

Количество кликов по каждой ссылке за сегодня для конкретного емейла

{
"action": "stat.uni",
"result": "response",
"select": [
"click.member.email",
"click.issue.id",
"click.link.url",
"count(*)"
],
"filter": [
{
"a": "click.member.email",
"op": "==",
"v": "my@secret.email"
},
{
"a": "click.issue.dt:YD",
"op": "==",
"v": "CURRENT"
}
]
}

Если убрать из массива filter запроса объект, ограничивающий результаты конкретным емейлом, то в результате будут выведены все адреса, попадающие под оставшиеся условия запроса.

Мы не лимитируем общее количество строк в результате выполнения запроса, но отправляемые вами запросы должны соответствовать базовым лимитам.

Вывод результата запроса

Результат запроса к stat.uni вы можете получить синхронно, в ответе на сам запрос, и ассинхронно, сохранив результат в файл.

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

За то, как в получите результат выполнения запроса отвечает параметр result. В примерах выше ожидается синхронный ответ и при выполнении запроса в АПИ-консоли, вы увидите результат на экране.

Если же вы трезво оценили сложность запроса и решили сохранить результат в файл, то вам стоит воспользоваться возможностями настройки параметра result апи-запроса.

Сохранить в Файлы -> Отчеты -> stat.uni

"result": "save"

Сохранить результат запроса на внешний FTP в utf8

    "result": [{
"to": "ftp://login:password@ftp.yourserver/path/",
"filename": "Clients",
"format": "csv",
"type": "url_file",
"utf8": "1"
}]

Последовательность работы запроса stat.uni

  1. Сервер находит все строки, подходящие под условия, указанные в filter.
  2. Если указан order, то найденные строки сортируются по указанному правилу. Если порядок не указан, то данные выведутся без сортировки, каждый раз по-разному.
  3. Если указан skip, то из вывода исключается указанное количество найденных строк.
  4. Если указан first, то выводится указанное количество строк; если не указан — выводятся все найденные строки.