РазборBI-дашборды · 18 июля 2026

Как агентству собрать отчёт по всем рекламным кабинетам: Директ, Google MCC, BigQuery

#BI#BigQuery#Google Ads#автоматизация#агентствам#дашборд#Яндекс Директ
Читать нас чаще в Google

У рекламного агентства десятки клиентов, и у каждого — свои кабинеты в Яндекс Директе и Google Ads. Чтобы агентство видело общую картину — расход, клики, конверсии, стоимость лида по всем проектам сразу, — данные нужно собрать из всех кабинетов в одном месте. Вручную это часы рутины каждый месяц: открыть каждый кабинет, выгрузить, свести в таблицу, пересчитать.

Мы автоматизировали это для собственной агентской отчётности и разбираем архитектуру по шагам — честно, чтобы вы могли повторить её у себя (или мы настроим под вас). Продаём не картинку дашборда, а рабочий конвейер данных под ней.

В чём сложность

  • Яндекс Директ. Доступ к статистике идёт по токену на каждый аккаунт. Токенов много, их нужно где-то хранить и удобно обновлять.
  • Google Ads. Аккаунты клиентов разрознены — авторизоваться в каждом по отдельности неудобно и не масштабируется.
  • Объединение. У Директа и Google Ads разные названия площадок, кампаний, валют. Чтобы сравнивать проекты, данные надо привести к одной модели.

Шаг 1. Панель аккаунтов в Google Sheets

Для Яндекс Директа мы получаем OAuth-токен на каждый аккаунт и храним их в обычной Google-таблице — это простая панель управления, с которой работает агентство. Строка = один клиент: название, токен, регион, признак «активен». Подключить нового клиента — добавить строку; отключить — снять галочку. Никакого кода для этого не нужно, всё в знакомом интерфейсе таблицы.

Шаг 2. Google Ads — через управляющий аккаунт (MCC)

Кабинеты клиентов в Google Ads привязываются к управляющему аккаунту (MCC). Это одна точка доступа ко всем аккаунтам под ним: добавили кабинет в управляющий аккаунт — он попал в отчётность, удалили — выпал. Не нужно заводить отдельную авторизацию под каждого клиента: скрипт ходит в API от имени управляющего аккаунта и обходит все дочерние.

Шаг 3. Выгрузка по расписанию — Python + GitHub Actions

Python-скрипты обходят все аккаунты (токены Директа из таблицы, дочерние аккаунты из управляющего аккаунта Google), обращаются к API рекламных систем и выгружают статистику. Запуск — автоматически по расписанию через GitHub Actions: без своих серверов и без ручного старта. Схематично, цикл выглядит так:

# упрощённо: обход всех аккаунтов из панели
for account in accounts_from_sheet():
    token = account["token"]                     # токен Директа из Google Sheets
    rows  = yandex_direct_report(token, date_from, date_to)
    load_to_bigquery(rows, client=account["client"])

for customer in google_ads_children(mcc_id):     # дочерние аккаунты MCC
    rows = google_ads_report(customer, date_from, date_to)
    load_to_bigquery(rows, client=customer.name)

А запуск по расписанию задаётся в одном файле воркфлоу:

name: ads-report
on:
  schedule:
    - cron: "0 6 * * *"    # каждый день в 06:00 UTC
jobs:
  collect:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: python collect.py

Код приведён схематично — как публичный паттерн работы с API. Точная реализация зависит от источников и структуры вашей отчётности.

Шаг 4. Объединение данных — BigQuery + SQL

Все выгрузки складываются в единое хранилище Google BigQuery. SQL-запросы приводят кабинеты к общей модели и размечают данные по клиентам — так видно и один проект, и всё агентство целиком. Заодно считаются производные показатели (CPC, CPA, CR, CTR, ДРР) и сравнения периодов.

-- Единая витрина расходов по всем кабинетам клиентов
SELECT client, 'Яндекс Директ' AS source, date, campaign,
       cost, clicks, impressions, conversions
FROM   `ads.yandex_direct`
UNION ALL
SELECT client, 'Google Ads', date, campaign,
       cost, clicks, impressions, conversions
FROM   `ads.google_ads`;

Шаг 5. Дашборд агентства — Looker Studio

Поверх BigQuery — дашборд в Looker Studio: все клиенты агентства в одном окне, с фильтрами по клиенту, датам и площадкам. Состав показателей и дизайн собираются индивидуально под задачи агентства — это уже вопрос оформления. Как это выглядит и вся архитектура целиком — в кейсе «Отчёт рекламного агентства».

А коннекторов Looker не хватит?

На одном-двух аккаунтах — хватит. Но на десятках кабинетов родные коннекторы упираются в лимиты, не хранят историю так, как нужно, и не дают считать собственные показатели и сравнения. Свой конвейер с хранилищем в BigQuery масштабируется на любое число клиентов, держит историю и остаётся под вашим контролем. Это и есть разница между «картинкой» и рабочей BI-системой.

Вывод

Агентский отчёт по всем кабинетам — это не про красивый дашборд, а про рабочий конвейер данных под ним: панель аккаунтов, сбор по API на расписании, объединение в BigQuery, визуализация. Один раз настроил — дальше данные собираются сами, а команда занимается рекламой и ростом, а не выгрузками.

Хотите такой контур у себя в агентстве?

Настроим сбор со всех кабинетов клиентов, объединение в BigQuery и сводный дашборд.

Обсудить проект

[ FAQ ]

Частые вопросы

Как собрать отчёт сразу по десяткам клиентских кабинетов? +
Через агентские структуры доступа: в Google это MCC, в Яндексе — агентский аккаунт. Они позволяют выгружать данные по всем клиентам одним обращением к API, вместо подключения каждого кабинета вручную. Дальше данные складываются в хранилище с признаком клиента и разворачиваются в общий дашборд.
Как показать каждому клиенту только его данные? +
Через фильтрацию на уровне отчёта: единая витрина данных, но у каждого клиента своя ссылка с закреплённым фильтром или отдельная копия дашборда. Ключевое — данные хранятся в одном месте, поэтому логика расчёта метрик у всех одинаковая и не расходится при правках.
[ АУДИТ ]

Хотите так же — но в своём проекте?

Бесплатно посмотрим вашу рекламу и аналитику и покажем, где теряются заявки. Без обязательств.

Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности.

Больше — в нашем Telegram-канале

Кейсы, разборы и новости digital — без воды.

Подписаться
[ КОММЕНТАРИИ ] 0

Оставить комментарий