Из API GetCourse в Power BI, Excel, Google Sheets: платежи, заказы, пользователи...

Из API GetCourse в Power BI, Excel, Google Sheets: платежи, заказы, пользователи...

Если вы продаёте курсы, вам потребуется отчётность по продажам. Какие курсы покупались и на какую сумму? Кто их покупал и откуда пришли эти пользователи? Какой рекламный канал может увеличить продажи?

В этой статье покажу как получать данные из API GetCourse в Power BI, Excel и Google Sheets - пользователей, группы, заказы и платежи. Разберём подключение, лимиты, схему данных и типичные ошибки. Готовые функции для Power Query и Google Apps Script - тоже здесь.

Проблемы аналитики курсов

Измерение эффективности рекламы инфобизнеса - крайне сложная задача. Человек не покупает курсы просто посетив сайт. Он смотрит YouTube, листает Telegram, может прогреваться годами и потом что-то купит. Отнести эту покупку последнему значимому источнику (например, переходу с ВК) будет неверно.

Поставить Метрику на YouTube, ВК или Telegram вы не сможете. И если пользователь посмотрел 5 видео на YouTube, 5 постов в Telegram, а потом зашёл в ВК, перешёл на сайт и купил - восстановить эту цепочку не получится.

Что же делать? Можно измерять примерную активность на каждой площадке и соотносить это с продажами. Но проще сразу собирать контакты пользователей, чтобы взаимодействовать с ними через вебинары и другие измеримые активности. Это позволит немного повысить точность аналитики.

GetCourse позволяет загружать в него список пользователей, группировать их, и конечно видеть их заказы и оплаты. Давайте пройдёмся по возможностям загрузки и получения данных из системы GetCourse.

[TGBLOCK]

Что можно получить из API GetCourse

API GetCourse покрывает основные сущности онлайн-школы. Через export-методы вы можете выгружать:

  • Пользователи (users) - список всех зарегистрированных, с email, телефоном, метками, источниками регистрации.
  • Заказы (deals) - оформленные заявки на курсы, с суммами, статусами, привязкой к пользователю.
  • Платежи (payments) - факт оплаты заказа, дата, сумма, способ оплаты.
  • Группы (groups) - сегменты пользователей по любым критериям, нужны для сегментации в аналитике.

Через import-методы вы можете загружать в GetCourse пользователей и заказы. Но это сценарий редкий - обычно нужно именно выгрузить данные наружу для отчётов в Power BI или Excel.

Геткурс интеграции с BI-системами: обзор подходов

Геткурс интеграции с аналитическими системами строятся одним из трёх путей:

1. Прямое подключение через Power Query. Самый быстрый способ запустить отчёт - подключиться напрямую из Power BI или Excel к API GetCourse через готовую функцию M-кода. Минусы: попадаете под лимит 100 запросов в 2 часа, нет промежуточного хранилища.

2. Промежуточная база данных. Скрипт на Python тянет данные из API GetCourse в PostgreSQL/ClickHouse раз в час, а Power BI/Excel/Tableau подключаются уже к базе. Минусы: нужно поддерживать инфру. Плюсы: нет лимитов, быстро, можно хранить историю.

3. Сервисы-коннекторы. Mybi Connect, Albato, Renta. Они сами обрабатывают API GetCourse и отдают данные в нужную BI-систему. Минусы: платно (от 1500-3000 руб/мес), завязка на третью сторону.

В этой статье разбираем самый универсальный путь - геткурс интеграции через Power Query и Google Apps Script. Бесплатно и без подписок, под вашим полным контролем.

Подготовка API GetCourse

Справка API GetCourse находится по официальной ссылке. В соответствии с ней, мы можем загружать в GetCourse пользователей и заказы, а выгружать - пользователей, группы, заказы и платежи.

Сегодня будем работать с экспортом, то есть получать данные ИЗ GetCourse. Чтобы загрузить данные В GetCourse, рекомендую использовать Python. Power Query тут не подойдёт, так как вызовет дублирование данных.

Как получить API-токен GetCourse

Чтобы работать с API GetCourse, нужен секретный токен. Получить его можно за минуту:

  1. Зайдите в свой аккаунт GetCourse.
  2. Откройте URL вида https://ACCOUNT.getcourse.ru/saas/account/api, где ACCOUNT - название вашего аккаунта.
  3. Нажмите "Сгенерировать секретный ключ".
  4. Скопируйте полученный токен и сохраните в надёжное место - повторно показать его GetCourse не сможет.

Важно: API-токен GetCourse даёт полный доступ к данным аккаунта. Не публикуйте его в открытых репозиториях GitHub, не пересылайте в Telegram. Если случайно засветили - перегенерируйте.

Получение ID группы

Если вы планируете получать статистику групп, вам потребуется ID группы. Переходим в пользователей, выбираем группы и жмём изменить напротив выбранной группы - в URL появится её ID.

Лимиты API GetCourse и как их обойти

У API GetCourse есть жёсткие ограничения, о которых нужно знать заранее:

  • 100 запросов за 2 часа на один аккаунт по методам export. Это главный лимит, который ловят все.
  • Экспорт в один поток. Пока не выгрузились платежи, нельзя одновременно грузить пользователей, заказы или группы.
  • Большие данные грузятся пакетами. API возвращает данные кусками по 100-500 записей, нужно делать несколько запросов с offset.

Как обходить лимиты API GetCourse:

  • Ставьте задержки между запросами. Пользователи - без задержки, заказы - 60 сек, платежи - 120 сек, группы - 180 сек. Так запросы идут с интервалом и не пересекаются.
  • Используйте потоки данных в Power BI Service. Поток обновляется по расписанию и не дёргает API при каждом открытии отчёта.
  • Кешируйте в промежуточную БД. Если данных много - выгружайте в PostgreSQL раз в час Python-скриптом, а Power BI подключайте к базе.
  • Не запускайте обновление вручную несколько раз. Один случайный двойной клик может выжрать половину лимита.

На практике: если вы строите отчёт с 4 сущностями (users, deals, payments, groups) и обновляете его 4 раза в день - это уже 16 запросов в день, или 32 запроса в 2 часа при подряд идущих обновлениях. Лимит 100 запросов за 2 часа кажется довольно большим, но кончается быстро.

Схема данных GetCourse: пользователи, заказы, платежи, группы

Перед тем, как строить отчёт, разберитесь со связями между сущностями. Это спасёт от типичных ошибок.

Пользователь (user) - центральная сущность. У каждого свой id, email, телефон. От пользователя ветвятся заказы.

Заказ (deal) - привязан к пользователю через user_id. У заказа есть status (создан, оплачен, отменён), amount (сумма), список товаров (offers).

Платёж (payment) - привязан к заказу через deal_id. У платежа есть amount (сумма платежа, может быть меньше суммы заказа при рассрочке), status, payment_method.

Группа (group) - сегмент пользователей. Связь many-to-many - один пользователь может быть в нескольких группах.

Типичная модель в Power BI:

Users (1) ─── (∞) Deals (1) ─── (∞) Payments
  │
  └── (∞) ─── (∞) Groups (через таблицу-связку)

Связи: Users[id] к Deals[user_id], Deals[id] к Payments[deal_id]. Не забудьте создать измерение календаря и связать с датами заказов/платежей - без этого временные срезы не построить.

GetCourse Power BI и Excel: настройка коннектора

Для подключения GetCourse Power BI или Excel вам потребуется готовая функция с GitHub. После получения кода правим значение main_url на URL своей школы.

Вставляем функцию в Power Query и вызываем с нужными параметрами. В параметре тип можно указать:

  • users - пользователи
  • deals - заказы
  • payments - платежи
  • groups/{ID}/users - данные группы (где {ID} - ID группы)

Функция работает как в Excel, так и в Power BI, но не забывайте про запрет на одновременные запросы и выставление задержки.

Модель данных GetCourse Power BI

После того как загрузили все 4 сущности (users, deals, payments, groups), настройте модель в Power BI:

  1. Откройте вкладку "Модель" (Model view).
  2. Свяжите Users[id]Deals[user_id]. Тип связи: один-ко-многим.
  3. Свяжите Deals[id]Payments[deal_id]. Тип связи: один-ко-многим.
  4. Создайте таблицу календаря через DAX: Calendar = CALENDARAUTO().
  5. Свяжите Calendar[Date] с Deals[created_at] (можно сделать неактивную связь и активировать через USERELATIONSHIP в нужных мерах).

Типичные меры для отчёта GetCourse Power BI:

Total Revenue = SUM(Payments[amount])
Deals Count = COUNTROWS(Deals)
Avg Check = DIVIDE([Total Revenue], [Deals Count])
Active Users = DISTINCTCOUNT(Deals[user_id])
Conversion = DIVIDE([Active Users], COUNTROWS(Users))

Эти 5 мер закрывают 80% типовых вопросов по продажам онлайн-школы.

Данные GetCourse в Google Sheets

Функцию получения данных GetCourse в Google Sheets можно найти на Boosty. Использование стандартное - открываем App Script.

Вставляем код функции, прописывая начальную дату и токен. После сохранения кода и обновления Google-таблицы, в меню появится панель GetCourse с возможностью получения данных.

Если получаете группу - выберите ячейку, вставьте туда ID группы, после чего можно делать получение группы.

Преимущество Google Sheets перед Power BI: легче делиться с командой (просто ссылка на таблицу), можно встроить в Looker Studio для визуализации, есть автоматическое расписание триггеров через Apps Script.

Минус: на больших объёмах (десятки тысяч строк) Google Sheets начинает тормозить. Если у вас больше 50 000 заказов в год - переходите на Power BI или промежуточную базу.

Типичные ошибки при работе с API GetCourse

Ошибка 1: "Превышен лимит запросов". Слишком частое обновление. Решение: ставьте задержки между запросами, используйте потоки данных в Power BI Service.

Ошибка 2: Пустой ответ от API. Часто означает что у токена нет прав на нужную сущность или фильтр дат пустой. Решение: проверьте токен через users (самый простой метод), убедитесь что даты заданы корректно.

Ошибка 3: Дубли заказов после обновления. Power Query не умеет инкрементально догружать данные через export-API GetCourse. Решение: либо полное обновление, либо инкрементальная загрузка через Python в БД.

Ошибка 4: Тормозит обновление в Power BI Desktop. Сильно нагружает машину если 4 сущности грузятся последовательно. Решение: вынесите загрузку в поток данных Power BI Service.

Ошибка 5: Не приходят последние заказы. API GetCourse отдаёт данные с задержкой 5-10 минут. Решение: не пытайтесь делать real-time отчёт, GetCourse это не позволяет.

Ошибка 6: Двойные пользователи при сравнении email. В GetCourse один email может быть только у одного пользователя, но если человек регистрировался с разными email - получите дубли. Решение: чистите данные на уровне пайплайна.

Сравнение способов работы с API GetCourse

СпособПлюсыМинусыКогда выбирать
Power Query (Power BI/Excel)Бесплатно, быстрый стартЛимит 100/2ч, нет историиДо 10К заказов в месяц
Google Sheets + Apps ScriptБесплатно, легко шаритьТормозит на больших данныхДо 30К записей всего
Python + PostgreSQL/ClickHouseБез лимитов, своя историяНужна инфра и кодОт 50К заказов, продакшен
Mybi Connect / AlbatoГотовое решениеОт 1500₽/мес, завязка на сервисКогда нет своего разработчика

FAQ

Как получить токен API GetCourse?

В вашем аккаунте откройте URL https://ВАШ_АККАУНТ.getcourse.ru/saas/account/api и сгенерируйте секретный ключ. Сохраните - повторно показан не будет.

Какие лимиты у API GetCourse?

100 запросов за 2 часа на аккаунт через export-методы. Плюс экспорт идёт в один поток - параллельные запросы блокируют друг друга.

Можно ли получать данные GetCourse в реальном времени?

Нет. API отдаёт данные с задержкой 5-10 минут. Для real-time нужны webhook'и, но через них работают только события вроде "оплата прошла", а не выгрузка истории.

Чем GetCourse Power BI отличается от GetCourse в Excel?

Технически - ничем. Используется один и тот же M-код в Power Query. Разница только в визуализации: Power BI богаче на дашборды, Excel удобнее для разовых выгрузок.

Сколько стоит интеграция GetCourse с Power BI через Mybi?

От 1500-3000 руб/мес в зависимости от объёма данных и количества подключений. Готовая модель данных, не надо писать M-код самому.

Можно ли загружать данные в GetCourse через API?

Да, через import-методы можно загружать пользователей и заказы. Но Power Query для этого не подходит (дублирует запросы), используйте Python.

Итоги

Сам по себе коннектор к GetCourse - несложный. Главное помнить про лимиты API GetCourse и не делать одновременных запросов. Геткурс интеграции с Power BI, Excel и Google Sheets решают 90% задач малой и средней онлайн-школы.

Используйте потоки данных в Power BI Service - и вам не придётся беспокоиться о лимитах API и одновременных запросах. Можно сделать по одному потоку на каждый тип отчёта и выставить разное время обновления, а можно поставить все запросы в один поток и добавить к каждому разную задержку.

Если онлайн-школа выросла и упирается в лимиты - переходите на Python + промежуточная БД (PostgreSQL или ClickHouse). Это снимает все ограничения, даёт историю и позволяет строить более сложные отчёты с присоединением данных из других источников.

Объедините данные GetCourse с данными Яндекс Метрики и других источников - получите наиболее полный отчёт по продажам вашей онлайн-школы.