Обзоры
Сквозная аналитика

ETL система для импорта данных из рекламных систем и систем веб-аналитики

Материал обновлен:
12:03:2020
Комментариев:
0

Обзор ETL сервиса для решения задач по извлечению данных из рекламных площадок и систем веб-аналитики

При решении задач по построению систем сквозной аналитики, формирования отчетов по отдельным системам, если их встроенными инструментами не получается решить вопрос, возникает необходимость извлечения данных для последующей обработки. Как решаются эти задачи?

Все системы, как правило, имеют API, с помощью которого можно получить данные. Выглядит это так:

  • получаем у системы ключ для работы;
  • отправляем запрос на специальный URL адрес;
  • получаем данные, как правило, в виде JSON набора данных;
  • полученные данные преобразовываем в необходимый формат;
  • сохраняем результат в базу данных или файл.

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

Первый способ, написать коннектор самим, например, на Python или другом языке, которым вы владеете, или взять готовое решение, благо набор таких коннекторов не мал.

Плюсы:

  • вы имеете гибкие настройки коннектора от запроса данных до обработки полученных;
  • относительно дешевый (если в штате есть технический специалист способный поддерживать коннектор).

Минусы такого способа в том, что нужно самим следить за:

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

Второй способ – использовать сервис, который предоставляет на своей платформе готовые коннекторы.

Плюсы сервиса:

  • за работой коннектора следит команда специалистов сервиса;
  • актуальность API поддерживается сервисом;
  • в случае сбоя на площадке (откуда запрашивается информация) сервис может перезагрузить необходимые данные или проинформировать вас о сбое в работе;
  • при работе с большим количеством проектов упрощается процесс извлечения данных и увеличивается оперативность работ по новым проектам.

Минусы платных коннекторов в виде сервиса:

  • стоимость, которая выражается в ежемесячных платежах за его использование.

В своей деятельности мне часто приходится работать с наборами данных из нескольких рекламных систем, систем веб-аналитики и пр.. Имея их все в одном хранилище: Google Big Query или ClickHouse, с помощью запросов я легко получаю именно те комбинации наборов полей, которые мне необходимы.

На рынке существует несколько сервисов, которые решают описанные выше задачи по автоматизации получения данных, но я хотел рассказать подробно об одном из них – это renta.im , сервис, который уже несколько лет на рынке динамично развивается моим коллегой Довганич Сергеем (который начинал работу в агентстве и не понаслышке знает о потребностях специалистов), и об использовании которого у меня сложились только положительные впечатления. Должен отметить, что проект не заточен на работу только в сегменте RU интернета, это международный проект, обслуживающий в том числе и западный рынок.

Начну с того, что команда сервиса прислушивается ко всем пожеланиям: от вопросов внесения изменений в процессы получения данных и их конфигурации до правок в интерфейсе личного кабинета. Некоторые опции, доступные в текущей версии проекта, я обсуждал с Сергеем лично, и он реализовал их, за что отдельное спасибо!

В данном обзоре я расскажу об использовании этого сервиса как ETL платформы, но кроме того Renta также умеет сохранять и сырые данные Google Analytics (фиксируя каждый хит пользователя в указанной вами базе данных).

Сервис имеет необходимые коннекторы к самым популярным системам. Перечислю основные:

  • Google Analytics
  • Яндекс Метрика (в том числе и LogsAPI)
  • Google Ads
  • Яндекс Директ
  • Facebook
  • ВКонтакте
  • MyTarget

Сохранять данные можно также в различные базы данных:

  • Google Big Query
  • ClickHouse

Процесс создания новой выгрузки состоит из нескольких шагов:

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

Все действия интуитивно понятны, интерфейс минималистичен, и ошибиться или пропустить что-то не представляется возможным:

Интерфейс сервиса

Интерфейс сервиса

Приведу пример настройки выгрузки из Google Analytics:

Настройка выгрузки из Google Analytics

Настройка выгрузки из Google Analytics

Для начала необходимо указать аккаунт, счетчик и представление. Это стандартная иерархия аккаунта Google Analytics:

Иерархия аккаунта Google Analytics

Иерархия аккаунта Google Analytics

При выборе некоторой позиции следующий блок с выбором данных фильтруется автоматически, что облегчает поиск. После того, как указано конкретное представление требуется задать перечень параметров и показателей (метрик). Для меня плюсом является то, что часто используемые из них доступны для выбора по клику:

Выбор метрик и показателей

Выбор метрик и показателей

Если необходимого параметра или показателя нет для быстрого доступа, то выбираем его из списка. Поскольку он слишком велик, искать вручную в нем было бы утомительным занятием, воспользуемся фильтром для быстрого поиска. Вводим название показателя и по мере увеличения набора символов, список для выбора сужается. Отдельно нужно выделить возможность поиска как по названию параметра или метрики, которое используется в веб-интерфейсе Google Analytics, так и по их названиям при работе с API. Напомню, отличаются они тем, что при работе с API они начинаются с ga:

Быстрый поиск

Быстрый поиск

Если нет необходимости в выгрузке всего массива данных, то можно настроить ограничение в виде фильтра, например, получить данные, где источник трафика равен google, или канал равен cpc и т.п.

Создание фильтра

Создание фильтра

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

  • получать данные с некоторой даты по «вчера»
  • получать данные за N дней назад

В первом случае мы накапливаем сведения с определенного момента времени (даты), во втором, получаем данные за некоторый промежуток в виде N дней. Отсчет в этом случае идет со «вчерашней» даты в обратном направлении.

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

Выбор периода выгрузки

Выбор периода выгрузки

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

Следующий важный шаг – это опция Overwrite period . Укажите период, который необходимо актуализировать при выгрузке. Другими словами, если в базе данных сохранены сведения, Renta проверит данные в вашем хранилище и теми сведениями, которые получены от выбранного сервиса, и если они отличаются, то будут внесены более актуальные сведения.

Все необходимые настройки выгрузки заданы, переходим к выбору хранилища. Этот этап так же как и первые два шага, прост, выбираем из списка доступное хранилище или указываем настройки для нового, например для ClickHouse:

Конфигурация хранилища данных

Конфигурация хранилища данных

Важное замечание: если работаете с ClickHouse! Необходимо разрешить обращения с ip адреса 13.94.215.246, чтобы сервис мог записать данные в вашу базу данных.

Завершаем настройки и наблюдаем за процессом извлечения данных. Когда данные будут загружены, в выбранном хранилище вы обнаружите таблицу с именем вида: сервис_аккаунт_набор_цифр, в ней находятся ваши данные, можно работать с ними.

Процесс извлечения данных

Процесс извлечения данных

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

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

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

При работе с некоторыми системами их API позволяет на этапе конфигурации запроса на извлечение данных указать тип отчета, вследствие чего меняется набор доступных параметров. В данном сервисе это реализовано и доступно при конфигурировании выгрузки:

Выбор варианта отчета

Выбор варианта отчета

Если у вас есть опыт работы с API, например, Google Analytics, то вы знаете, что не все параметры и показатели можно использовать совместно. Если вы выбрали такую комбинацию, то при попытке перейти к следующему этапу, получите уведомление:

Ошибка в комбинации параметров и показателей

Ошибка в комбинации параметров и показателей

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

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

Протестировать работу сервиса можно в течение пробного периода совершенно бесплатно и без ограничений по функционалу.

Итак, когда необходимо использовать сервисы, аналогичные тому, о котором я рассказал:

  • построение сквозной аналитики
  • автоматизация отчетности
  • автоматизация получения необходимых наборов данных из различных систем

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

Автор блога: Иванов Иван, практикующий веб-аналитик. Специалист по внедреннию Google Analytics и Яндекс Метрики. Занимаюсь разработкой решений для формирования данных и отчетов по сквозной аналитике. Автор обучающего курса по Google Tag Manager, преподаватель в Нетологии
Еженедельная рассылка кейсов!
mode_edit