Прикладная практика · Antigravity · 1.0.0

От рекламных расходов к понятному дашборду

Соедините лиды, заказы, оплаты и возвраты. Получите расходы на привлечение и денежную выручку по каналам — с понятными ограничениями расчёта.

Скачать учебные исходники

Вымышленная компания «Линия», сентябрь 2026. Добровольная самопроверка: сдавать работу не требуется. Вопросы обсуждаем в Zoom и чате школы.

1. Постройте свой результат

  1. Распакуйте архив в отдельную папку. В ней семь входных файлов, README и контракт результата. Готовых ответов и расчётного кода нет.
  2. Откройте папку через New Project в Antigravity и выберите Local. Если ваш клиент предлагает имя и Create, завершите этот диалог.
  3. Отправьте запрос ниже. После завершения сохраните первую попытку и откройте output/dashboard.html в браузере. Python standard library нужен для запуска расчёта.
Прочитай только семь входов из input/ этого проекта и artifact-contract.json. Самостоятельно напиши воспроизводимый расчёт сквозной аналитики и интерактивный дашборд для синтетической компании «Линия». Не подставляй заранее известные количества или итоги: выводи их из CSV.

Сначала зафиксируй период, единицы, валюту, денежный подход, атрибуцию и unknown/null из measurement-contract.json. Проверь схемы, строгие флаги true/false, идентификаторы, неотрицательные входные суммы, положительные суммы успешных денежных операций, временной порядок и связи transaction→order→lead→channel. Идентичный повтор ID учитывай один раз; конфликтующий ID, неподдерживаемая оплата или возврат без оплаты/сверх оплаты должны остановить расчёт с понятной диагностикой.

Разделяй события формы, лиды, квалификации, созданные заказы, оплаченные заказы и впервые оплатившие компании. Применяй правила тестовых строк, фиксированного периода, pending/succeeded, возвратов и неизвестного источника. Для общего среза используй полный пул расходов из источника; неизвестную аллокацию отдельного канала не превращай в нулевую стоимость. Для CPL/CPQL/CAC и долей сохраняй числитель, знаменатель и value; undefined value остаётся null. Общий показатель считай из общих числителя и знаменателя, а не средним каналов.

Создай output/build_dashboard.py на Python 3 standard library и запусти из корня проекта: python3 output/build_dashboard.py. Пути вычисляй относительно самого output/build_dashboard.py и корня проекта: никаких личных абсолютных путей, зависимости от cwd вызывающего процесса или runtime timestamps в генерируемых артефактах. Код и результаты должны воспроизводиться в свежей копии проекта. Сохрани output/report.json, output/channel-report.csv, output/dashboard.html, output/interpretation.md, output/source-hashes.json и output/checks.md в форматах artifact-contract.json. JSON, CSV и HTML должны исходить из одного рассчитанного отчёта. Не используй float для денежной арифметики, не изменяй входные файлы и инструкции, не читай материалы вне проекта.

Дашборд — один responsive автономный HTML с русским интерфейсом: без CDN, внешних запросов и fetch локального JSON. KPI и подписи сделай крупными и читаемыми. На ширине 390px вся страница не должна прокручиваться по горизонтали; широкая таблица может прокручиваться внутри собственного контейнера. Явно подпиши метод: «первый сохранённый источник лида; денежный отчёт по фиксированной сентябрьской когорте». Добавь доступный с клавиатуры фильтр канала и кнопку сброса. KPI, диаграммы и таблицы должны обновляться согласованно из текущего среза. Покажи синтетический статус, период, RUB, определения показателей, источники и ограничения. Неизвестные значения отображай как «нет данных» или «неизвестно», не как ноль. Себестоимости, налогов и полного P&L нет: прибыль неизвестна. Разницу net revenue и acquisition cost можно показать только под этим точным смыслом, не как прибыль.

В checks.md перечисли реально выполненные проверки и наблюдавшийся exit status команды. Повтори запуск собственного генератора и проверь воспроизводимость результатов. В source-hashes.json вычисли реальные SHA256 и размер каждого входного файла с относительными путями. Не выдавай модельный self-check за независимую приёмку. В interpretation.md объясни результаты, ограничения и следующий проверяемый шаг без коммерческого ROI или рекомендации реального рекламного бюджета.

Все материалы — локальные synthetic draft-only. Никаких внешних API, рекламных изменений, CRM/таск-менеджера, сообщений, оплат или подписания. В финале перечисли созданные файлы, выполненные команды, наблюдавшиеся результаты запуска и оставшиеся ограничения.

2. Проверьте смысл чисел

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

Открыть настоящий результат и независимый разбор

Этот пример выполнен 11 октября в отдельном Local-проекте установленного Antigravity. Расчётный Python, JSON, CSV, HTML и пояснения создала модель. Сохранённые версии и замечания описаны в разборе; вручную результаты не исправлялись.

Открыть проверенный дашборд Скачать код и разбор

Проверка и ограничения · JSON отчёта · Таблица каналов

Расчётный код модели · SHA256 входов · Пояснения модели · Выполненная самопроверка

Сверка по учебным входамРезультат
Лиды / квалифицированные / события формы27 / 16 / 28
Созданные подходящие заказы / оплатившие компании8 / 7
Расходы на привлечение300 000 ₽
Успешные оплаты / возврат / денежный net336 000 / 48 000 / 288 000 ₽
Неизвестный источникОдна оплата; отдельные расходы и CAC неизвестны

Это учебная денежная аналитика одной когорты с заданной атрибуцией. Живые рекламные кабинеты, CRM, банковские платежи и причинный эффект рекламы этим примером не проверяются. Отдельно доступен видеоразбор готового расчёта · 2:29 с русской озвучкой и субтитрами.

Примените к одной своей таблице

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

Материалы пяти тем мастер-класса · Практика: встреча → задачи