Этот текст описывает методики передачи данных из рекламной системы Яндекс.Директ в облачное хранилище Google BigQuery. Если изложенные в статье бесплатные методы слишком сложные, переходите на страничку сервиса Renta. С помощью сервиса Renta можно настроить экспорт данных за несколько кликов и не тратить время на разработку своих методов.
Почему важен Яндекс.Директ?
Поисковик Яндекса занимает огромную долю на российском рынке, практически на равных конкурируя с Google. Недавние исследования показали, что рекламные кампании в Яндекс.Директе наиболее эффективна в Рунете.
Зачем переносить данные из Яндекс.Директ в Google BigQuery?
Данные из различных реклам систем объединяют с данными о продажах, чтобы посчитать эффективность рекламы. Также это помогает определить самые эффективные каналы коммуникаций.
Почему именно Google BigQuery?
Облачное хранилище Google BigQuery имеет несколько преимуществ. Оно прекрасно работает с большими массивами данных и позволяет импортировать данные из других сервисов как вручную, так и автоматически. Автоматический обмен данными можно настроить как бесплатно своими силами, так и воспользоваться готовым сервисом Renta.
Экспорт данных из Яндекс.Директ в Google BigQuery с помощью сервиса Renta
Это самый простой способ решить проблему системной аналитики своего бизнеса. Renta экспортирует в Google BigQuery данные с более чем двадцати коннекторов, а не только из одного Яндекс.Директ. Этот ETL сервис работает по подписке со стоимостью 99$ в месяц.
Чтобы настроить передачу отчетов из Яндекс.Директ в Google BigQuery нужно в меню Renta выбрать тип интеграции Yandex Direct.
Затем нужно авторизоваться в своем аккаунте Яндекс.Директ.
Затем необходимо настроить, какие данные будут передаваться из Яндекс.Директ.
Для этого нужно заполнить следующие поля:
- Report type: выбор типа отчета.
Рента поддерживает все типы отчетов, доступных в API Директа.
Таким образом, вы сгруппировать данные, как вам нужно, используя все доступные поля. - Parameters: выбираем параметры, которые будут выгружаться. Этот показатель напрямую связан с выбранным значением Report type.
- Include Discount: Это параметр для агентских аккаунтов. Если он активирован, в отчете учитывается агентская скидка.
- Include Vat: Если активирован, в стоимости клика будет учитываться НДС.
- Date Range Type: В этом поле мы указываем временной диапазон нужных нам данных.
- Update time: Здесь настраиваем расписание для регулярной выгрузки.
Теперь нужно выбрать облачное хранилище для выгрузки данных из Clickhouse, Azure SQL и Google BigQuery.
Если в Google BigQuery у вас несколько отдельных проектов, Renta предложит выбрать один.
На этом настройка окончена, все работает.
Экспорт данных из Яндекс.Директ в Google BigQuery своими силами
Для того, чтобы выгрузить данные из Яндекс.Директ нужно воспользоваться API Директа — там находится весь необходимый набор инструкций для настройки. Настройка импорта информации в Google BigQuery описана в обучающих материалах Google. Это удобный способ в случае, если вы рекламируетесь только в Яндекс.Директ, не заинтересованы в других рекламных сервисах и в Google BigQuery импортируете информацию из 1-2 источников.
Импорт данных Яндекс.Директ в Google BigQuery с помощью R библиотеки rfacebookstat Алексея Селезнева
Еще один бесплатный способ настроить передачу данных из Яндекс.Директ в Google BigQuery — библиотека rfacebookstat Алексея Селезнева. Она инсталлируется на локальный компьютер, выгружает данные из Яндекс.Директ по расписанию и затем загружает в Google BigQuery.
Для реализации этого метода нужно установить самые последние версии языка R и R Studio. Также необходимо инсталлировать следующие пакеты:
- devtools
- bitops
- ryandexdirect
- bigrquery
После этого нужно получить токен для доступа к Яндекс.Директ через R. Токен генерируется командой yadirGetToken(). Далее нужно адаптировать скрипт на языке R. Его выполнение обеспечивает забор данных из Директа и их трансферт в BigQuery:
1 2 3 4 5 6 7 8 |
print(Sys.time()) library(ryandexdirect) library(bigrquery) setwd("C:/work/Dropbox/R") ya_token <- "AQGP_QXXXXXX" campList <- yadirGetCampaignList(logins = NULL, token = ya_token) statYa <- yadirGetSummaryStat(campaignIDS = campList$Id, dateStart = "2017-05-01", dateEnd = Sys.Date()-1, currency = "USD", token = ya_token) insert_upload_job("bigquery_project_id", "advertising_systems", "direct", statYa, "bigquery_project_id", create_disposition = "CREATE_IF_NEEDED", write_disposition = "WRITE_TRUNCATE") |
Скрипт содержит следующие пользовательские переменные:
- ‘C:/work/Dropbox/R’ — указываем путь к рабочей папке R, где лежит скрипт и служебные файлы языка R;
- ‘AQGP_QXXXXXX’ — нужно изменить на полученные на предыдущей стадии токен;
- ‘dateStart’ — дата начала отчетного периода, за который мы запрашиваем данные;
- ‘Sys.Date()-1’ — дата окончания отчетного периода. Поскольку нам нужна регулярная выгрузка, это всегда будет вчерашний день;
- ‘bigquery_project_id’ — идентификатор проекта в Google BigQuery. Важно, если у вас больше одного проекта;
- ‘advertising_systems’ — dataset в BigQuery;
- ‘direct’ — название таблицы для записи данных в BigQuery.
Если скрипт настроен правильно, в Google BigQuery появляется таблица advertising_systems.direct.
В ней будут следующие поля:
После чего нужно автоматизировать работу скрипта.
Для этого мы можем использовать планировщик задач Windows, который будет автоматически запускать скрипт в нужное нам время.
Проблема этого метода в том, что мы зависим от работы локального компьютера. Если он будет выключен во время, когда запланирована синхронизация, данные не попадут в Google BigQuery. Это не всегда удобно, и поэтому многие аналитики используют готовые облачные ETL решения.