Если вы продаёте курсы, вам потребуется отчётность по продажам. Какие курсы покупались и на какую сумму? Кто их покупал и откуда пришли эти пользователи? Какой рекламный канал может увеличить продажи?
В этой статье покажу как получать данные из 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, нужен секретный токен. Получить его можно за минуту:
- Зайдите в свой аккаунт GetCourse.
- Откройте URL вида
https://ACCOUNT.getcourse.ru/saas/account/api, где ACCOUNT - название вашего аккаунта. - Нажмите "Сгенерировать секретный ключ".
- Скопируйте полученный токен и сохраните в надёжное место - повторно показать его 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:
- Откройте вкладку "Модель" (Model view).
- Свяжите
Users[id]→Deals[user_id]. Тип связи: один-ко-многим. - Свяжите
Deals[id]→Payments[deal_id]. Тип связи: один-ко-многим. - Создайте таблицу календаря через DAX:
Calendar = CALENDARAUTO(). - Свяжите
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 с данными Яндекс Метрики и других источников - получите наиболее полный отчёт по продажам вашей онлайн-школы.