Этот текст объясняет, как настроить передачу данных из Facebook Ads в хранилище Google BigQuery. Если перечисленные бесплатные методы кажутся слишком сложными, переходите к страничке Renta.
С помощью этого ETL можно настроить передачу данных за несколько кликов.
Почему так важен Facebook Ads Manager
Сервис Facebook Ads Manager позволяет управлять рекламой в двух самых крупных социальных сетях: Facebook и Instagram. Все крупные рекламные кампании в Сети обязательно включают работу с Facebook Ads Manager и последующий анализ проведенных кампаний. Причина проста: Facebook и Instagram выгодно отличаются низкой ценой контакта, а также возможностями очень точного таргетинга по аудитории.
Рекламный кабинет Facebook дает много информации для анализа: все виды взаимодействий пользователей с рекламой, переходы на сайт и даже продажи. Для последнего нужно дополнительно настроить Facebook Pixel на странице завершения заказа в своем интернет-магазине.
Однако в крупном бизнесе рекламная кампания не ограничивается одним лишь Facebook, да и продажи могут быть не только онлайн. Поэтому необходимо объединять данные из Facebook Ads Manager с данными других рекламных сервисов, а также с данными CRM. Так собственник бизнеса сможет увидеть всю картину: сколько денег тратится на рекламу, какие рекламные каналы эффективнее и какой финансовый результат.
Почему выбирают Google BigQuery
Для экспорта данных из различных источников должен использоваться мощный «облачный» сервис. Один из самых популярных — Google BigQuery. Этот сервис прекрасно подходит для работы с большими массивами информации, поскольку быстро обрабатывает аналитические запросы. Также BigQuery имеет нативные коннекторы с другими сервисами Google, такими как Analytics и Ads.
Особенно удобно работать в связке Facebook Ads Manager и Google BigQuery, если нужно администрировать сразу несколько десятков рекламных аккаунтов в FaceBook — классический сценарий для крупных рекламных агентств.
В самом Google BigQuery нет готового инструмента автоматизации импорта данных из Facebook Ads Manager, поэтому аналитик должен решить задачу по настройке автоматизации. Есть два пути.
Первый — это использовать платный сторонний ETL сервис, каким является, например, Renta. Это простой вариант, удобный в настройке, так как вся предварительная работа уже сделана за аналитика.
Второй вариант бесплатный, однако требует затрат на внедрение. В рамках данной статьи мы рассмотрим как вариант с использованием ETL, так и несколько бесплатных вариантов.
Экспорт данных из Facebook Ads Manager в Google BigQuery с помощью сервиса Renta
Renta — самый простой и удобный способ передачи данных. За небольшую абонентскую плату в $99 заказчик получает более двадцати коннекторов всех популярных сервисов, включая и Facebook Ads Manager. Также пользователь Renta может выбирать хранилище между Google BigQuery, Clickhouse, Azure SQL Database или другим SQL-сервером.
Чтобы настроить регулярную передачу данных в Google BigQuery, нужно выбрать правильный тип интеграции в настройках приложения Renta (в нашем случае это Facebook Ads).
Выбираем аккаунт Facebook и авторизуемся в нем.
Выбираем рекламный кабинет в графе Ad account. Отмечаем в Parameters, какие данные будем передавать.
В Date Range Type указываем период, а в Update time — время обновления информации.
Указываем Google BigQuery, как место агрегации информации. Если в вашем BigQuery несколько проектов, вы сможете выбрать, к какому именно эти данные будут добавляться.
Работа с Renta не сложнее работы с обычным приложением, где нужно отметить несколько опций, ввести логин-пароль и остальное программа сделает сама.
В Renta штат разработчиков оперативно обновляет API всех коннекторов, а также оказывает качественную и своевременную техподдержку. Любой вопрос, возникший в ходе работы с Renta получает оперативный экспертный ответ.
Прямая передача данных из Facebook Ads Manager в Google BigQuery
Есть вариант создания прямой передачи данных из Google BigQuery в Facebook Ads Manager. Если вы решили пойти по этому пути, инструкции по извлечению данных из Facebook Ads Manager изложены в Facebook Marketing API. Настройка загрузки данных в Google BigQuery описана в обучающих материалах Google.
У этого бесплатного метода есть альтернатива, о которой поговорим ниже.
Экспорт данных из Facebook Ads Manager в Google BigQuery с помощью R библиотеки rfacebookstat Алексея Селезнева
Алексей Селезнев создал бесплатную библиотеку rfacebookstat. С ее помощью можно бесплатно настроить передачу из различных рекламных систем в Google BigQuery. Этот скрипт ежедневно выполняется на локальном компьютере и загружает данные из базы по вчерашний день. Библиотека написана на языке R и для стриминга данных из Facebook Ads Manager в Google BigQuery необходимо установить самую свежую версию этого языка, а также набор библиотек:
- ’devtools’,
- ’bitops’,
- ’bigrquery’’,
- ‘rfacebookstat’ и ‘zoo’.
Для начала работы с rfacebookstat необходимо создать приложение в Facebook. Краткосрочный токен поменяйте на долгосрочный.
Непосредственно скрипт для настройки выгрузки выглядит следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
print(Sys.time()) library(rfacebookstat) library(bigrquery) library(zoo) setwd("C:/work/Dropbox/R") fb_token <- "EAAYXXXXXX" statFb <- data.frame() for (i in as.Date("2017-05-01"):(Sys.Date()-1)) { dt <- format(as.Date(i), "%Y-%m-%d") temp <- fbGetMarketingStat(accounts_id = "act_103503XXXXXXX", sorting = NULL, level = "campaign", breakdowns = NULL, fields = "campaign_id,campaign_name,impressions,inline_link_clicks,spend", filtering = NULL, date_start = dt, dt, api_version = "v2.8", fb_token) statFb <- rbind(statFb, temp) } statFb$campaign_name = iconv(statFb$campaign_name, "", "UTF-8") insert_upload_job("bigquery_project_id", "advertising_systems", "facebook", statFb, "bigquery_project_id", create_disposition = "CREATE_IF_NEEDED", write_disposition = "WRITE_TRUNCATE") |
В скрипте нужно исправить следующие значения:
- ‘C:/work/Dropbox/R’ — указать адреса рабочей папки R на вашем локальном компьютере, где находится сам скрипт и служебные файлы R;
- ‘EAAYXXXXXX’ — долгосрочный токен вашего приложения Facebook;
- ‘2019-09-01’ — дата начала;
- ‘Sys.Date()-1’ — дата окончания (вчерашний день);
- ‘act_103503XXXXXXX’ — ID рекламного профиля Facebook;
- ‘bigquery_project_id’ — ID проекта в BigQuery;
- ‘advertising_systems’ — dataset в BigQuery;
- ‘facebook’ — название таблицы для записи данных в BigQuery;
- ‘fields’ — список полей, которые будут экспортироваться. Актуальный список доступных полей доступен в официальной документации к API.
После выполнения скрипта в Google BigQuery появится таблица advertising_systems.facebook, которая содержит статистику по вчерашний день включительно. Обратите внимание, что если мы зададим большой период, то Facebook не даст выгрузить информацию из-за превышения допустимого числа обращений к API. В таких случаях статистику можно хранить в нескольких таблицах Google BigQuery.
Если передача данных работает, нужно перейти к настройке расписания, по которому будет запускаться скрипт. Это делается через планировщик задач Windows, который будет запускать созданный вами .bat-файл по расписанию.
Как видите, существует достаточно несложный бесплатный способ передать данные из Facebook Ads Manager в Google BigQuery. Однако такое решение имеет свой недостаток. Это привязка к локальному компьютеру на Windows, который должен работать в назначенное время, чтобы экспорт данных прошел успешно. Это не всегда удобно, поэтому многие аналитики выбирают готовые многофункциональные ETL решения, которые работают через «облако».