Одна из самых первых и приоритетных задач для любой data-driven команды — это автоматизация маркетинговой отчетности. Ручной сбор метрик съедает часы рабочего времени, порождает ошибки и замедляет принятие решений.

В этом руководстве я покажу, как надежно автоматизировать экспорт данных из Meta Ads в Google BigQuery. Но главное — мы сделаем это так, чтобы соблюсти интересы двух часто конфликтующих команд: дата-инженеров и маркетинг-менеджеров.

Чаще всего этот конфликт сводится к двум запросам

  • Маркетинг-менеджерам нужны свежие, гранулярные данные прямо сейчас. Они хотят, чтобы дашборды собирались максимально быстро, а данные позволяли докопаться до эффективности конкретного рекламного креатива.
  • Дата-инженерам важна стабильность. Им нужна прозрачное понимание стоимости дата-архитектуры, масштабируемость и полный контроль над пайплайнами.

Renta позволяет управлять выгрузками из тысяч рекламных аккаунтов Meta Ads с интервалом обновления каждые 15 минут. При этом управлять потоками данных можно как через no-code интерфейс, так и с помощью систем оркестрации данных, таких как Airflow или Dagster.

Перед тем, как мы перейдем к создания дата пайплайна, давайте разберемся как устроено Meta Ads API.

Как утроен Meta Ads Insights API?

Meta Ads Insights API содержит только статистические данные для различных объектов рекламного аккаунта (таких как кампании или креативы).

Однако этих данных недостаточно, так как они не содержат метаданные, такие как статусы модерации или настройки таргета.

При построении хранилища под отчётность Facebook Ads архитектурно правильно разделять данные на четыре типа сущностей: статистика, метаданные по креативам ads, группам объявлений adsets и кампаниям campaigns.

Таблица (Сущность)Описание и состав данных
Ad statistics (Статистика)Основная таблица с метриками.
Содержит показы, клики, расходы (spend), лиды и другие конверсии в разрезе идентификаторов объектов и UTM-параметров.
Ad campaign metadata (Метаданные кампаний)Структурные данные верхнего уровня.
Здесь хранятся глобальные настройки кампаний, метод закупки и цели таргета (objective).
Adset metadata (Метаданные групп объявлений)Детали на уровне адсетов.
Включает бюджеты (daily_budget, lifetime_budget), настройки оптимизации и статусы.
Ad metadata (Метаданные объявлений)Специфичная информация по самим креативам.
Включая статусы модерации и ссылки на превью (preview_shareable_link).

Проектирование схемы данных для Meta Ads

На практике, Meta Ads объекты постоянно меняются со стороны команды маркетинга. Менеджеры могут в любой момент переименовать кампанию, изменить настройки группы объявлений или поменять статус креатива.

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

Теперь это чревато реальной потерей данных. В официальном обновлении Ads Insights API от Meta с января 2026 года Facebook ограничил выгрузку исторических данных.

Например, статистика с разбивкой (breakdowns) по частоте показов теперь отдается только за последние 6 месяцев.

В тоже время, если в таблице статистики хранить только ID, а актуальные названия и атрибуты — в отдельных таблицах метаданных, мы получаем невероятно гибкую и надежную систему.

На практике это работает следующим образом: таблицы метаданных при каждом обновлении просто перезаписываются целиком (full refresh) и всегда содержат самую свежую, последнюю версию атрибутов. Когда маркетологу нужен отчет в BI-системе, дата-инженеры просто «джойнят» (JOIN) тяжелую таблицу статистики по ID с легкими таблицами актуальных метаданных.

В свою очередь, таблица статистики обновляется инкрементально с фиксированным периодом пересчета (в Renta мы называем это overwrite period). Это необходимо, чтобы актуализировать данные, которые могут прийти с задержкой — например, конверсии в рамках окна атрибуции или корректировки рекламного бюджета.

Рекомендуемая длительность периода пересчёта — 7 дней. В Renta период overwrite настраивается индивидуально под задачи отчётности.

Как настроить репликацию данных

Чтобы не собирать каждый поток вручную, в Renta есть готовые шаблоны (Pre-built Templates). Они сами создают пайплайны с нужной схемой данных и обновляют данные в Google BigQuery.

Вам достаточно выбрать интеграцию типа Pre-built templates и указать базовые настройки:

НастройкаОписание
Ad accountsРекламные кабинеты, из которых забираем данные.
TemplatesСам шаблон — Facebook Ads Performance report.
Date RangeПериод для стартовой выгрузки исторических данных.
РасписаниеЧастота регулярных обновлений (например, каждые 15 минут).

После чего Renta создаст четыре связанных пайплайна, применит настройки атрибуции Meta, задаст 7-дневный период пересчета (overwrite period) для статистики и запустит синхронизацию. На выходе вы получаете четыре таблицы с чистыми данными.

Ниже вы найдете готовый SQL-запрос, который объединяет их в единую плоскую таблицу (flat table) для загрузки в BI.

Глобально вся настройка в интерфейсе Renta сводится к трем этапам:

  1. Подключить рекламный кабинет Facebook (источник данных).
  2. Добавить Google BigQuery (хранилище).
  3. Запустить сам шаблон пайплайнов.

Давайте приступим к настройке.

Подключение источника Facebook Ads

Для начала нужно дать Renta доступ к вашим рекламным кабинетам.

Откройте каталогStep 1

Перейдите в раздел Connections → Catalog в левом боковом меню Renta.

Откройте каталог
Выберите источникStep 2

В категории Advertising найдите карточку Facebook Ads.

Выберите источник
Запустите авторизациюStep 3

Нажмите Log in to your Facebook Ads account. Платформа перенаправит вас на страницу входа Facebook (используется безопасный протокол OAuth).

Запустите авторизацию
Выдайте доступыStep 4

Проверьте запрашиваемые права и разрешите Renta получать статистику аккаунта (кнопка Continue или Reconnect).

Выдайте доступы
Сохраните источникStep 5

Придумайте понятное название для подключения (оно будет отображаться только в интерфейсе Renta) и нажмите Save.

Сохраните источник

Подключение хранилища Google BigQuery

Источник готов. Теперь укажем платформе, куда складывать собранные данные.

Откройте хранилищаStep 1

Перейдите в раздел Destinations и нажмите кнопку + Add destination в правом верхнем углу.

Откройте хранилища
Выберите базу данныхStep 2

В каталоге найдите и выберите Google BigQuery.

Выберите базу данных
АвторизуйтесьStep 3

Выберите метод авторизации. Для стабильной работы (production) рекомендуем GCP Service Account — нажмите Upload a Service Account JSON file и загрузите ключ от Google Cloud. Для быстрой настройки можно выбрать Authenticate with Google Account и просто войти через ваш личный Google-аккаунт.

Авторизуйтесь
Настройте датасетStep 4

Заполните конфигурацию подключения:

ПараметрОписание
Destination nameНазвание хранилища внутри Renta (например, Marketing DWH).
BigQuery projectID вашего проекта в Google Cloud (при загрузке JSON-ключа определится автоматически).
BigQuery datasetВыберите существующий датасет или создайте новый.
Data LocationРегион хранения (если датасета нет, Renta автоматически создаст Renta_dataset в указанном регионе).

Нажмите Save.

Настройте датасет
Проверьте статусStep 5

Готово. В списке хранилищ появится новое подключение BigQuery со статусом Active.

Проверьте статус

Конфигурация пайплайна

Источник и хранилище подключены, осталось связать их через готовый шаблон.

Создание пайплайнаStep 1

В левом боковом меню (раздел Pipelines) нажмите кнопку New pipeline.

Создание пайплайна
Выбор источника в каталогеStep 2

На экране Connect your data source найдите в списке Facebook Ads и перейдите далее (кнопка Next step).

Выбор источника в каталоге
Выбор подключения источникаStep 3

Укажите то самое подключение к рекламному кабинету Facebook, которое мы создали на первом этапе. Нажмите Next step.

Выбор подключения источника
Выбор типа хранилищаStep 4

На экране Connect your warehouse найдите в каталоге Google BigQuery и нажмите Next step.

Выбор типа хранилища
Выбор подключения к хранилищуStep 5

Кликните на подключение к базе данных, настроенное на Этапе 2, и перейдите далее.

Выбор подключения к хранилищу
Настройка шаблонаStep 6

На экране Specify Facebook Ads pipeline settings заполните первый блок конфигурации:

ПараметрДействие
Integration typeВыберите Pre-built templates, чтобы активировать режим готовых витрин.
Ad accountsВыберите нужный рекламный кабинет из списка.
TemplatesВыберите Facebook Ads Performance report.
Настройка шаблона
Выбор исторического периодаStep 7

Прокрутите ниже к блоку Date Range. Задайте стартовую и конечную дату (Date start / Date end) для первичной выгрузки исторических данных.

Выбор исторического периода
Настройка расписания и запускStep 8

В блоке Schedule выберите тип Interval и задайте частоту регулярных обновлений (например, 1 Hour(s)). Нажмите кнопку Create pipeline.

Настройка расписания и запуск

Готово! Renta мгновенно создаст четыре нужных потока данных и начнет репликацию данных в Google BigQuery.

Чтобы наблюдать за ходом репликации данных, перейдите в раздел Pipelines. Здесь списком выводятся все созданные потоки, их текущие статусы (например, In progress), названия сгенерированных таблиц и время последней синхронизации.

Список пайплайнов Meta Ads в Renta

После успешного завершения загрузки вы можете открыть консоль Google BigQuery, чтобы убедиться — все четыре таблицы созданы, и данные в них доступны для работы.

Структура таблиц в Google BigQuery

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

Таблица статистики (Ad statistics)

Это основная таблица, которая содержит ежедневные метрики эффективности. Она обновляется инкрементально с учетом заданного периода пересчета.

ПолеОписание
account_currencyВалюта рекламного аккаунта.
account_idУникальный идентификатор рекламного аккаунта.
account_nameНазвание рекламного аккаунта.
ad_idУникальный идентификатор объявления.
ad_nameНазвание объявления.
adset_idУникальный идентификатор группы объявлений.
adset_nameНазвание группы объявлений.
campaign_idУникальный идентификатор рекламной кампании.
campaign_nameНазвание рекламной кампании.
clicksВсе клики по объявлению, включая переходы и взаимодействия.
impressionsКоличество показов рекламы на экране.
spendСумма затрат на рекламу в валюте аккаунта.
reachКоличество уникальных пользователей, видевших рекламу.
frequencyСредняя частота показа объявления каждому пользователю.
inline_link_clicksКлики по ссылкам, ведущим на внешние ресурсы.
dateДата предоставления данных.
date_startДата начала периода отчета.
utm_sourceИсточник трафика.
utm_mediumТип трафика.
utm_campaignНазвание рекламной кампании в UTM.
utm_contentСодержание объявления в UTM (креатив).
utm_termКлючевое слово в UTM.
leadОбщее количество лидов, атрибутированных объявлению.
onsite_conversion.lead_groupedКоличество лидов, полученных через формы Facebook (Lead Ads).

Метаданные кампаний (Campaign metadata)

Содержит настройки верхнего уровня и актуальные статусы рекламных кампаний.

ПолеОписание
idУникальный идентификатор кампании.
account_idИдентификатор рекламного аккаунта.
bid_strategyСтратегия назначения ставок (например, LOWEST_COST_WITHOUT_CAP).
buying_typeМетод закупки (Auction, Reserved).
created_timeДата и время создания кампании.
daily_budgetСредний дневной бюджет кампании.
effective_statusФактический текущий статус кампании.
nameОтображаемое название кампании.
objectiveОсновная цель кампании (например, Traffic, Awareness).
start_timeЗапланированное время начала кампании.
statusТекущий рабочий статус кампании.
stop_timeЗапланированное время окончания кампании.
updated_timeДата и время последнего обновления.

Метаданные групп объявлений (Adset metadata)

В этой таблице хранятся детальные конфигурации ваших групп объявлений, включая бюджеты и настройки оптимизации.

ПолеОписание
account_idИдентификатор рекламного аккаунта.
campaign_idID родительской кампании.
idУникальный идентификатор группы объявлений.
nameОтображаемое название группы.
adlabelsРекламные метки, связанные с группой.
bid_amountМаксимальная ставка за результат.
billing_eventСобытие, за которое списывается оплата (показы, клики).
budget_remainingОставшийся дневной или общий бюджет.
daily_budgetСредний дневной бюджет группы объявлений.
lifetime_budgetОбщий бюджет на весь период работы группы.
configured_statusСтатус группы, установленный пользователем.
effective_statusФактический текущий статус группы на платформе.
statusТекущий рабочий статус.
created_timeВремя создания группы.
updated_timeВремя последнего обновления.
start_timeЗапланированное время начала показа.
end_timeЗапланированное время окончания показа.
optimization_goalСобытие, на которое ориентирована оптимизация.
pacing_typeМетод распределения бюджета во времени.
frequency_capОграничение частоты показов одному пользователю.

Метаданные объявлений (Ad metadata)

Здесь собрана информация о конкретных креативах, их статусах модерации и ссылках для предпросмотра.

ПолеОписание
idУникальный идентификатор объявления.
account_idИдентификатор рекламного аккаунта.
adset_idID родительской группы объявлений.
campaign_idID родительской кампании.
nameОтображаемое название объявления.
configured_statusСтатус объявления, установленный в кабинете.
effective_statusАктуальный статус доставки объявления.
statusТекущий статус показа.
created_timeВремя создания объявления.
updated_timeВремя последнего обновления.
preview_shareable_linkСсылка для предварительного просмотра креатива.
conversion_domainДомен, на котором ожидаются конверсии.
ad_review_feedbackФидбек от системы проверки Meta.

Создание витрины данных в Google BigQuery

Теперь, когда данные распределены по разным таблицам, мы объединим их в единую плоскую структуру (Data Mart). Это избавит вас от необходимости настраивать сложные связи и вычисляемые поля на стороне BI-инструмента.

Ниже приведен SQL-запрос, который объединяет статистику с актуальными названиями кампаний, групп и объявлений.

SELECT
    stats.date,
    stats.account_id,
    stats.campaign_id,
    campaign.name AS campaign_name,
    campaign.objective AS campaign_objective,
    stats.adset_id,
    adset.name AS adset_name,
    adset.daily_budget,
    stats.ad_id,
    ad.name AS ad_name,
    ad.effective_status AS ad_status,
    stats.impressions,
    stats.clicks,
    stats.spend,
    stats.lead,
    stats.onsite_conversion_lead_grouped AS lead_forms,
    stats.utm_source,
    stats.utm_medium,
    stats.utm_campaign,
    stats.utm_content,
    stats.utm_term
FROM
    `my-gcp-project.Renta_dataset.fb_ads_statistics_1772211619` AS stats

-- Join ad metadata
LEFT JOIN
    `my-gcp-project.Renta_dataset.fb_ads_metadata_1772211619` AS ad
        ON stats.ad_id = ad.id

-- Join ad set metadata
LEFT JOIN
    `my-gcp-project.Renta_dataset.fb_ads_dataset_metadata_1772211619` AS adset
        ON stats.adset_id = adset.id

-- Join campaign metadata
LEFT JOIN
    `my-gcp-project.Renta_dataset.fb_ads_campaign_metadata_1772211619` AS campaign
        ON stats.campaign_id = campaign.id

В результате выполнения этого запроса вы получите структурированный набор данных, где каждая строка содержит как детальную статистику, так и актуальные названия всех рекламных объектов.

Результат выполнения SQL запроса в BigQuery

Полученная витрина полностью готова к работе. Вы можете подключить её к Looker Studio, Power BI или Tableau и сразу приступить к созданию интерактивных отчётов для анализа эффективности маркетинга.

Как кастомизировать схему данных

Шаблон задает базовую архитектуру, но ее можно менять. Если для отчетов вам нужны специфические метрики, любой из четырех созданных пайплайнов можно легко отредактировать.

В настройках каждого потока в Renta можно:

  • Добавить новые метрики и измерения (dimensions).
  • Включить выгрузку кастомных полей и конверсий.
  • Указать группировку (breakdowns), окна атрибуции или период пересчета.

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

Перейдите в настройки пайплайнаStep 1

В левом боковом меню перейдите в раздел Pipelines. Найдите нужный поток (например, Ad metadata), нажмите на иконку с тремя точками справа и выберите Edit.

Редактирование пайплайна
Обновите параметры и сохраните измененияStep 2

На экране настроек найдите блок Parameters. Отметьте галочками нужные поля (или снимите выделение с лишних) и нажмите кнопку Update pipeline внизу экрана.

Обновление параметров пайплайна

При следующем запуске Renta автоматически обновит структуру таблицы в BigQuery и выгрузит данные уже по новой схеме.

Заключение

В завершение — несколько рекомендаций для стабильной работы пайплайнов.

  • Алерты для разных команд. Настройте систему так, чтобы об ошибках узнавали ответственные команды. Если упадет пайплайн, Renta отправит алерт дата-инженерам. Если Facebook отзовет токен доступа — уведомление получит маркетинг-команда. Каналы уведомления для каждой ошибки можно настроить отдельно.
  • Оптимизация хранилища. Чтобы экономить ресурсы в Google BigQuery, Renta поддерживает партицирование таблиц и несколько стратегий обновления данных. Например, инкрементальное обновление или полную перезапись (full refresh) данных.
  • Управление по API. Подключать источники, хранилища и управлять пайплайнами Meta Ads можно через API-интерфейс. Для быстрого старта мы собрали публичную коллекцию запросов в Postman.

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

Часто задаваемые вопросы