| name | roistat-reports-api |
| description | Чтение отчётов Roistat, воспроизводимая сверка с сырыми сделками и коллтрекингом, а также строго ограждённая запись сохранённых отчётов. |
Отчёты Roistat
Обязательный порядок
- Доступ бери из
ROISTAT_PROJECT и ROISTAT_API_KEY либо из указанного закрытого файла JSON с правами 0600. Никогда не передавай ключ аргументом.
- Точно задай период, окно, модель атрибуции, канал, фильтры и валюту.
- Считай три источника разными: аналитический отчёт, сырые сделки и коллтрекинг. У каждого есть собственное состояние полноты.
- Сырые сделки и коллтрекинг запрашивай только с явным
--include-personal-data; полученные пакеты остаются закрытыми.
- Проходи всю постраничную выдачу. Статус
partial не превращай в полный отчёт.
- Каждое число должно воспроизводиться из сохранённых ответов и
report-context.json.
Чтение и сверка
Используй scripts/build_roistat_report_pack.py. Он сохраняет исходный ответ аналитики, нормализованные строки, параметры и отдельный расчёт расхождений.
В сверке хранятся обе исходные суммы и разница. Расхождение может быть связано с окном атрибуции, поздним событием CRM, валютой или неполной выгрузкой; причину подтверждай доказательствами.
Запись
scripts/save_roistat_report.py до сетевого вызова проверяет:
- точную контрольную сумму спецификации;
- закрытое подтверждение владельца не старше 24 часов;
- точное совпадение проекта, действия и целевого отчёта;
ROISTAT_WRITE_ARMED=1 и отдельный ROISTAT_WRITE_API_KEY;
- чтение до записи, чтение после записи, неизменность посторонних отчётов и кандидат на откат.
Без --apply выполняется только местная проверка. Любой откат требует нового подтверждения.
Граница публикации
Не публикуй номера проектов, ключи, выгрузки, телефоны, домены, клиентские названия и местные пути. Публичные примеры должны быть только синтетическими.