Быстрый старт
UStats — это платформа для аналитики маркетплейсов с AI-помощником. Система автоматически собирает данные с Ozon, Wildberries и МойСклад, позволяет создавать дашборды с помощью AI и экспортировать их в Google Sheets.
Доступны готовые выгрузки: РНП, ОПИУ, контроль остатков, КТР-рекомендации, фин отчёт по SKU, unit-экономика и другие — их можно сразу выгружать в Google Sheets без настройки дашборда.
Первые шаги
-
1
Создайте проект
Перейдите в раздел "Проекты" и создайте новый проект. Проект — это изолированное рабочее пространство для вашего бизнеса.
-
2
Подключите маркетплейс
В настройках проекта добавьте подключение к одному из маркетплейсов: Ozon, Wildberries или МойСклад. Вам понадобятся API-ключи для доступа к данным.
-
3
Запустите синхронизацию
Настройте автоматическую синхронизацию данных. Система начнет собирать информацию о заказах, продажах, рекламе и остатках.
-
4
Создайте дашборд
Используйте AI-конструктор или создайте дашборд вручную. Настройте SQL-запросы для анализа ваших данных.
-
5
Экспортируйте в Google Sheets
Настройте автоматический экспорт дашборда в Google Sheets с периодическим обновлением.
Проекты
Проект в UStats — это изолированное рабочее пространство со своей базой данных и настройками. Один проект может содержать несколько подключений к маркетплейсам.
Создание проекта
Для создания нового проекта:
- Перейдите в раздел "Проекты"
- Нажмите кнопку "Создать проект"
- Укажите название и описание проекта
- Настройте параметры синхронизации (опционально)
Рекомендуется создавать отдельный проект для каждого бизнеса или бренда. Это позволит лучше организовать данные и аналитику.
Настройки проекта
В настройках проекта вы можете:
- Включить/выключить автоматическую синхронизацию
- Настроить уведомления об ошибках
- Управлять доступом пользователей
- Настроить расписание синхронизации
Подключение маркетплейсов
UStats поддерживает интеграцию с основными маркетплейсами и системами учета. Для каждого маркетплейса требуется настройка API-ключей.
Wildberries
Получение API-ключа
- Войдите в личный кабинет продавца Wildberries
- Перейдите в раздел "Настройки" → "Доступ к API"
- Создайте новый токен доступа
- Скопируйте токен (он отображается только один раз)
Поддерживаемые данные
- Заказы и продажи
- Остатки на складах
- Рекламные кампании и статистика
- Акции и промо-коды
- Отчеты по реализации (ОТЧ)
- Воронка продаж (NM Report)
Ozon
Получение API-ключа
- Войдите в личный кабинет продавца Ozon
- Перейдите в "Настройки" → "API"
- Создайте новый ключ доступа
- Скопируйте Client ID и API Key
API-ключи следует хранить в безопасности. Не передавайте их третьим лицам. В UStats ключи хранятся в зашифрованном виде.
МойСклад
Для подключения МойСклад требуется:
- Логин и пароль от аккаунта
- Или токен доступа (рекомендуется)
Настройка синхронизации
После подключения маркетплейса настройте параметры синхронизации:
- Частота обновления: от 5 минут до ежедневного
- Типы данных: выберите, какие данные нужно синхронизировать
- Период истории: за какой период загружать исторические данные
Создание дашбордов
Дашборд в UStats — это таблица с метриками, где каждая ячейка может содержать SQL-запрос или текст. Дашборды можно создавать вручную или с помощью AI-конструктора.
Структура дашборда
Дашборд состоит из:
- Строки: метрики (например, "Заказы руб.", "Выкупы шт.")
- Столбцы: периоды времени (даты)
- Ячейки: SQL-запросы или текст
Создание вручную
- Перейдите в "Дашборды" → "Создать дашборд"
- Выберите шаблон или создайте пустой
- Добавьте строки и столбцы
- Для каждой ячейки с данными создайте SQL-запрос
- Нажмите "Сохранить"
Пример SQL-запроса для ячейки
SELECT SUM(finished_price)/100.0
FROM wb_orders
WHERE date::date = CURRENT_DATE - INTERVAL '1 days'
Все SQL-запросы должны возвращать одно значение (скаляр). Используйте агрегатные функции: SUM, COUNT, AVG, MAX, MIN.
Типы ячеек
- Текст: для заголовков строк и столбцов
- Формула (SQL): для вычисляемых значений
AI-конструктор дашбордов Beta
AI-конструктор позволяет создавать дашборды за секунды, просто описав что нужно на русском языке.
Как использовать
- Нажмите кнопку "🤖 AI Помощник" в конструкторе дашбордов
- Опишите, какой дашборд вам нужен (например: "Покажи продажи за последние 7 дней по дням")
- AI сгенерирует структуру дашборда и SQL-запросы
- Система автоматически проверит SQL-запросы и исправит ошибки (до 3 попыток)
- Просмотрите результат и примените, если все корректно
Примеры запросов
"Покажи продажи за последние 7 дней по дням"
"Создай дашборд с метриками: заказы в рублях, выкупы в рублях, реклама в рублях за последние 14 дней"
"Покажи динамику продаж по дням за последний месяц"
Автоисправление SQL
Если AI сгенерировал SQL-запрос с ошибкой, система автоматически:
- Определит тип ошибки (синтаксис, тип данных, несуществующая таблица)
- Отправит ошибку обратно в AI для исправления
- Повторит попытку до 3 раз
- Покажет результат с индикацией успешных/неуспешных запросов
Чем более детально вы опишете свои требования, тем точнее AI создаст дашборд. Укажите конкретные метрики, периоды и маркетплейсы.
SQL-запросы
UStats использует PostgreSQL для хранения данных. Все SQL-запросы выполняются в контексте проекта (изолированная база данных).
Основные правила
- Запросы должны начинаться с
SELECT - Запрещены операции INSERT, UPDATE, DELETE, DROP, ALTER
- Запрос должен возвращать одно значение (скаляр)
- Используйте агрегатные функции для группировки данных
Типы данных в таблицах
Важно: типы полей nm_id
При работе с nm_id обратите внимание на типы данных:
| Таблица | Тип nm_id | Пример JOIN |
|---|---|---|
wb_products |
STRING (VARCHAR) | s.nm_id::INTEGER = p.nm_id |
wb_orders |
INTEGER | o.nm_id = p.nm_id::INTEGER |
wb_sales |
INTEGER | s.nm_id = p.nm_id::INTEGER |
Работа с датами
В таблицах используются разные типы для дат:
wb_orders.date— типTIMESTAMPwb_sales.date— типDATE
Фильтрация по дате (TIMESTAMP)
SELECT SUM(finished_price)/100.0
FROM wb_orders
WHERE date::date = CURRENT_DATE - INTERVAL '1 days'
Фильтрация по дате (DATE)
SELECT SUM(finished_price)/100.0
FROM wb_sales
WHERE date = CURRENT_DATE - INTERVAL '1 days'
Примеры запросов
Сумма заказов за сегодня
SELECT COALESCE(SUM(finished_price)/100.0, 0)
FROM wb_orders
WHERE date::date = CURRENT_DATE
Средний чек за последние 7 дней
SELECT COALESCE(AVG(finished_price)/100.0, 0)
FROM wb_orders
WHERE date::date >= CURRENT_DATE - INTERVAL '7 days'
Сумма рекламы для конкретного товара
SELECT COALESCE(SUM(sum)/100.0, 0)
FROM wb_advert_day_stat
WHERE nm_id = 169318150
AND date >= CURRENT_DATE - INTERVAL '2 days'
JOIN с приведением типов
SELECT SUM(s.finished_price)/100.0
FROM wb_sales s
JOIN wb_products p ON s.nm_id::INTEGER = p.nm_id::INTEGER
WHERE s.date = CURRENT_DATE - INTERVAL '1 days'
Всегда используйте COALESCE для обработки NULL значений. Это гарантирует, что в ячейке будет отображаться 0 вместо пустого значения.
Шаблоны дашбордов
Шаблоны — это готовые структуры дашбордов, которые можно использовать как основу для создания собственных дашбордов.
Доступные шаблоны
- Пустой шаблон: для создания дашборда с нуля
- Продажи по дням: базовый шаблон для анализа продаж
- Реклама и эффективность: анализ рекламных кампаний
- Остатки и логистика: мониторинг складских остатков
Использование шаблона
- При создании дашборда выберите шаблон
- Шаблон будет применен к вашему дашборду
- Вы можете редактировать структуру и SQL-запросы
- Сохраните изменения
Готовые решения (выгрузки)
В UStats доступны готовые отчёты и выгрузки, которые автоматически формируются из данных маркетплейсов и могут выгружаться в Google Sheets по расписанию. Не нужно настраивать дашборд или писать SQL — выберите нужный отчёт и укажите таблицу для экспорта.
Как использовать готовые решения
- Перейдите в раздел «Google Sheets» или «Экспорт»
- Создайте новую выгрузку и выберите тип «Готовое решение»
- Выберите один из доступных отчётов из списка
- Укажите период, фильтры (если нужны) и настройте расписание обновления
- Укажите Google-таблицу и лист — данные будут подставляться автоматически
Доступные выгрузки
📈 Аналитика и продажи
РНП (Рука на пульсе)
Комплексный дашборд для мониторинга ключевых показателей в реальном времени: план по дням и месяцу, прогноз, факт, динамика по неделям, данные по каждому дню. Включает заказы, выкупы, показы, корзину, конверсии, выручку, комиссии, логистику, остатки и рекламу по товарам. Подходит для ежедневного контроля бизнеса на Wildberries.
РНП v2 (Расширенный)
Таблица с детальными метриками по каждому товару: заказы, остатки, цена, % выкупа, логистика, показы, конверсии, CTR/CR/CPC из рекламы, прогнозная маржинальность, ДРР, выкупы, акции, СПП. Цветовая разметка по источникам данных (воронка, финотчёт, реклама). Удобно для углублённого анализа по артикулам.
ОПИУ (Отчет по продажам и использованию)
Детальный финансовый отчёт за период: выручка, выкупы, возвраты, комиссия WB, логистика (заказы и возвраты), услуги WB (хранение, приёмка, эквайринг, штрафы), валовая маржа, к оплате. Итоги слева, разбивка по дням справа. Основан на данных детального отчёта Wildberries.
Ежедневный отчёт по продажам
Сводный отчёт за день с ключевыми метриками и динамикой. Подходит для быстрой ежедневной сводки.
💰 Финансы и рентабельность
Фин отчёт SKU
Финансовый отчёт по SKU: выручка, расходы (логистика, хранение, приёмка, эквайринг, штрафы, комиссия WB), валовая и операционная прибыль, налог, итоговая прибыль, ROI. Есть фильтр по периоду и автофильтры по данным.
Unit-экономика
Отчёт по unit-экономике товаров: картинки, закупочные цены, маркировка, себестоимость, маржинальность, ROI. Использует данные из финотчёта и загруженную себестоимость.
Отчет по нерентабельным товарам
Список товаров с отрицательной или низкой рентабельностью для оптимизации ассортимента и цен.
📦 Остатки и логистика
Контроль остатков WB
Мониторинг остатков на складах Wildberries: прогнозы дефицита, статусы риска, рекомендации по поставкам. Можно фильтровать по артикулу, статусу риска и типу рекомендации, задать целевой запас в днях.
КТР и перераспределение остатков
Отчёт-советчик по перераспределению остатков между складами для оптимизации КТР (Коэффициент Территориального Распределения) и снижения затрат на логистику. Два листа: «Рекомендации» (куда и сколько переместить) и «Аналитика» (продажи и остатки по округам). Настраиваются параметры: горизонт планирования (недели), минимальный остаток, пороги для рекомендаций.
💰 Конкуренты и цены
Мониторинг цен конкурентов
Отслеживание цен конкурентов по выбранным брендам и категориям с историей изменений. Данные поступают из парсера Wildberries.
Готовые решения используют те же данные, что и конструктор дашбордов (заказы, продажи, реклама, финотчёт, остатки). Убедитесь, что синхронизация с маркетплейсом настроена и данные за нужный период загружены.
Типы выгрузки
В системе доступны два варианта экспорта в Google Sheets:
- Готовые решения (пресеты) — отчёты из списка выше. Выбираете тип отчёта, период и фильтры, данные подставляются по шаблону.
- Кастомные дашборды — таблицы, созданные в конструкторе дашбордов (свои строки, столбцы и SQL-запросы).
Интеграция с Google Sheets
UStats позволяет автоматически экспортировать дашборды в Google Sheets с периодическим обновлением данных.
Настройка экспорта
- Перейдите в раздел "Google Sheets"
- Нажмите "Создать экспорт"
- Выберите источник данных: готовое решение (отчёт из списка выше) или шаблон дашборда (кастомный дашборд)
- Для готового решения — выберите тип отчёта (РНП, ОПИУ, КТР и т.д.), период и при необходимости фильтры
- Укажите ID таблицы Google Sheets и название листа
- Настройте диапазон для записи данных
- Укажите частоту обновления (от 5 минут)
- Настройте сервисный аккаунт Google
Сервисный аккаунт Google
Создание сервисного аккаунта
- Перейдите в Google Cloud Console
- Создайте новый проект или выберите существующий
- Включите Google Sheets API
- Создайте сервисный аккаунт
- Скачайте JSON-файл с ключами
- Предоставьте доступ к таблице для сервисного аккаунта
Предоставление доступа к таблице
- Откройте Google Sheets таблицу
- Нажмите "Настройки доступа"
- Добавьте email сервисного аккаунта (например:
new-351@analog-medium-415913.iam.gserviceaccount.com) - Установите права "Редактор"
Частота обновления
Вы можете настроить автоматическое обновление данных в Google Sheets:
- Каждые 5 минут: для критичных данных
- Каждые 15 минут: стандартная частота
- Каждые 30 минут: для аналитики
- Каждый час: для отчетов
- Ежедневно: для сводных отчетов
- Вручную: обновление по кнопке
Формат данных
Данные экспортируются в следующем формате:
- Первая строка — заголовки (даты)
- Первый столбец — метрики (названия строк)
- Остальные ячейки — значения из SQL-запросов
- Пустые значения заменяются на 0
Ручное обновление
Вы можете в любой момент обновить данные в Google Sheets вручную, нажав кнопку "Обновить сейчас" в списке экспортов.
Настройка синхронизации
Синхронизация данных происходит асинхронно через очереди. Это позволяет обрабатывать большие объемы данных без блокировки интерфейса.
Типы синхронизации
Автоматическая синхронизация
Система автоматически запускает синхронизацию по расписанию:
- Цены: обновление цен товаров
- Остатки: синхронизация складских остатков
- Заказы: загрузка новых заказов, продаж и возвратов
- Реклама: обновление статистики рекламных кампаний
- Акции: синхронизация промо-акций
- Отчеты: загрузка отчетов по реализации и воронке продаж
Ручная синхронизация
Вы можете запустить синхронизацию вручную через интерфейс или командную строку:
php artisan sync:wb-orders --connection_id=1 --days=7
Лимиты API
Система автоматически учитывает лимиты API маркетплейсов:
- Wildberries: различные лимиты для разных типов данных (от 1 до 600 запросов в минуту)
- Ozon: лимиты согласно документации API
Логи синхронизации
Все операции синхронизации логируются. Вы можете просмотреть логи в разделе "Логи":
- Статус выполнения (успешно/ошибка)
- Тип данных
- Время начала и окончания
- Детали ошибок (если были)
API
UStats предоставляет REST API v1 для программного доступа к данным маркетплейсов. Данные читаются из таблиц вашей базы по проекту. API-ключ создаётся в личном кабинете и привязан к проекту.
Полная документация с описанием всех эндпоинтов и параметров: Документация API.
Авторизация
В каждом запросе передавайте API-ключ в заголовке:
Authorization: Bearer <ваш_токен>
Ключ создаётся в личном кабинете UStats: Профиль → блок API-ключи. Выберите проект и название ключа. Токен показывается один раз — сохраните его.
Базовый URL
https://api.ustats.io/v1/
Все эндпоинты — GET, ответ — JSON. Пагинация: per_page (до 1000), page. Период: date_from, date_to (формат YYYY-MM-DD); максимальный диапазон — 90 дней (где применимо).
Эндпоинты по маркетплейсам
Информация о токене
GET /v1/me— информация о текущем токене (проект, лимиты)
Данные Wildberries
Заказы, товары, продажи, цены, отчёт по периодам, остатки, возвраты, реклама (по товарам и кампаниям), платное хранение, воронка продаж. Фильтры: период, nm_id, артикул, склад, кампания и др.
GET /v1/data/wb/orders— заказыGET /v1/data/wb/products— товарыGET /v1/data/wb/sales— продажиGET /v1/data/wb/report-detail-by-period— отчёт по периодамGET /v1/data/wb/stocks— остатки на складахGET /v1/data/wb/returns— возвратыGET /v1/data/wb/advert-product-stats— статистика рекламыGET /v1/data/wb/sales-funnel-daily— воронка продаж- и другие (цены, рекламные товары, платное хранение)
Данные Ozon
Заказы, товары, остатки, возвраты, цены, статистика рекламы, фин отчёт о реализации.
GET /v1/data/ozon/orders— заказыGET /v1/data/ozon/products— товарыGET /v1/data/ozon/stocks— остаткиGET /v1/data/ozon/returns— возвратыGET /v1/data/ozon/realization— фин отчёт о реализации- и другие (цены, реклама)
Данные МойСклад
Товары, склады, остатки.
GET /v1/data/ms/products— товарыGET /v1/data/ms/warehouses— складыGET /v1/data/ms/stocks— остатки
Лимиты и ответы
Rate limit: ограничение запросов в минуту на один токен (в заголовках X-RateLimit-Limit, X-RateLimit-Remaining). При превышении — ответ 429.
Успех: {"success": true, "data": [...], "meta": {"pagination": {...}}}
Ошибка: {"success": false, "error": {"code": "...", "message": "..."}}
Список всех эндпоинтов, параметры фильтров и коды ошибок — в документации API.
Часто задаваемые вопросы
Общие вопросы
Как часто обновляются данные?
Вы можете настроить частоту обновления от 5 минут до ежедневного. По умолчанию используется автоматическое расписание в зависимости от типа данных.
Сколько данных можно хранить?
Ограничений по объему данных нет. Каждый проект имеет изолированную базу данных PostgreSQL.
Безопасны ли мои данные?
Да. Все данные хранятся в изолированных базах данных. API-ключи шифруются. Система соответствует стандартам безопасности.
Дашборды
Сколько дашбордов можно создать?
Количество дашбордов не ограничено. Вы можете создавать столько дашбордов, сколько необходимо для вашего бизнеса.
Можно ли экспортировать дашборд в Excel?
Сейчас поддерживается только экспорт в Google Sheets. Экспорт в Excel планируется в будущих версиях.
Работает ли AI-конструктор на мобильных устройствах?
Да, AI-конструктор доступен через браузер на любых устройствах. Интерфейс адаптирован для мобильных экранов.
SQL-запросы
Можно ли использовать JOIN между таблицами?
Да, но важно учитывать типы данных. При JOIN таблиц с разными типами nm_id используйте приведение типов: s.nm_id::INTEGER = p.nm_id
Что делать, если SQL-запрос возвращает ошибку?
Система автоматически попытается исправить ошибку с помощью AI (до 3 попыток). Если ошибка не исправлена, проверьте синтаксис запроса и типы данных.
API
Где получить API-ключ?
В личном кабинете UStats: Профиль → блок API-ключи. Выберите проект и создайте ключ. Токен показывается один раз — сохраните его. Полная документация по эндпоинтам и параметрам — на странице Документация API.
Google Sheets
Как часто обновляется Google Sheets?
Вы можете настроить частоту от 5 минут до ежедневного обновления. Также доступно ручное обновление по кнопке.
Можно ли экспортировать несколько дашбордов в одну таблицу?
Да, вы можете создать несколько экспортов в одну таблицу на разные листы или диапазоны.
Решение проблем
Синхронизация не работает
Проверьте API-ключи
- Убедитесь, что API-ключи актуальны и не истекли
- Проверьте права доступа ключа
- Для Wildberries: убедитесь, что ключ имеет права на нужные типы данных
Проверьте логи
Перейдите в раздел "Логи" и найдите последние записи синхронизации. Ошибки будут отмечены статусом "FAILED" или "ERROR".
SQL-запрос не работает
Типичные ошибки
- Ошибка типа данных: используйте приведение типов для
nm_id - Ошибка с датами: используйте
date::dateдля TIMESTAMP полей - Таблица не найдена: проверьте название таблицы и подключение к правильному проекту
Примеры исправлений
Было (ошибка):
SELECT * FROM wb_orders WHERE nm_id = '123456'
Стало (правильно):
SELECT * FROM wb_orders WHERE nm_id = 123456
Google Sheets не обновляется
- Проверьте доступ сервисного аккаунта к таблице
- Убедитесь, что указан правильный ID таблицы и название листа
- Проверьте диапазон для записи данных
- Попробуйте обновить вручную через кнопку "Обновить сейчас"
AI-конструктор не создает дашборд
- Проверьте подключение к интернету
- Убедитесь, что OpenAI API ключ настроен корректно
- Попробуйте более простой запрос
- Проверьте логи в консоли браузера (F12)