«Металл профиль» — как мы запустили кастомный коннектор для загрузки данных из API Google ***ytics в Microsoft SQL Server

Расскажу, как с помощью инструментов веб-аналитики мы получили расширенные данные о посещениях сайта для нашего клиента — компании «Металл профиль», производителя тонколистовых кровельных и стеновых материалов на территории России и СНГ.
Задача
Большая часть данных клиента уже собиралась в развернутом на базе Microsoft SQL Server хранилище. Наша задача — расширить эти данные на основе информации о посещениях сайта, полученной из API Google ***ytics.То есть необходимо разработать инструмент, с помощью которого «Металл профиль» мог бы отправлять любое количество пользовательских запросов к API Google ***ytics. И не просто отправлять, а делать это с использованием любых параметров и показателей, которые возможно запрашивать в рамках одного запроса. А затем — записывать полученные данные в MS SQL.
Это решение помогает обогатить внутренние данные из базы данных заказчика (в том числе о продажах) данными из Google ***ytics о поведении пользователей сайта. В первую очередь это нужно, чтобы увидеть полноценную картину оффлайн- и онлайн-заказов.
Это только один из примеров использования коннектора. Финальный результат кастомизированной веб-аналитики зависит от конкретных пожеланий клиента и четкого технического задания.
API периодически дает сбои, поэтому дополнительно нужна проверка наличия данных за прошлый период. Для каждого запроса период проверки наличия данных важно задавать индивидуально. Также в каждом запросе индивидуально нужно уметь указывать представление Google ***ytics, из которого требуется получить данные.
Данные за текущий день необходимо обновлять раз в час. Утром необходимо обновить данные за предыдущий день и проверить наличие данных за указанный под каждый запрос период. При необходимости — загрузить данные (если они отсутствуют за какой-либо из прошедших дней).
Инструменты
Язык R в веб-аналитике и интернет-маркетинге — интервью с Алексеем Селезневым Коннектор, разработанный под решение поставленной задачи, полностью написан на
- google***yticsR — интерфейс для работы с API Google ***ytics;
- odbc — подключение к Microsoft SQL Server через ODBC интерфейс;
- jsonlite — чтение JSON-структур;
- dplyr — манипуляция с данными.
Схема работы коннектора ga2mssql
- В R загружаются настройки коннектора из файла конфигурации, который содержит описание всех запросов и других требуемых настроек в JSON-структуре.
- По очереди каждый запрос отправляется в API Google ***ytics. Полученный результат дополнительно обpaбатывается в R.
- Полученные данные передаются в Microsoft SQL Server.
Настройка коннектора
В коннекторе ga2mssql нет графического пользовательского интерфейса. Для настройки и управления загрузкой с его помощью изначально необходимо внести все настройки в файл конфигурации. У файла конфигурации такая JSON-структура:
{ \"mssql_con\": { \"Driver\": \"SQL Server\", \"Server\": \"localhost\", \"Database\": \"my_database_name\", \"UID\": \"my_username\", \"PWD\": \"my_password\", \"Port\": 1433 }, \"google_***ytics_con\": { \"googleAuthR.client_id\": \"000000000000-xxxxxxxxxxxxxxxxx.apps.googleusercontent.com\", \"googleAuthR.client_secret\": \"xxxxxxxxxxxxxxxxxxxxx\", \"googleAuthR.scopes.selected\": [\"https://www.googleapis.com/auth/***ytics.edit\", \"https://www.googleapis.com/auth/***ytics\"] }, \"google_***ytics_report\": [ { \"days\": 15, \"ms_table\": \"table_1\", \"view_id\": \"ga:0000000000\", \"dimensions\": [\"ga:channelGrouping\", \"ga:day\", \"ga:date\", \"ga:region\", \"ga:country\", \"ga:medium\"], \"metrics\": [\"ga:sessions\", \"ga:bounceRate\", \"ga:hits\", \"ga:uniquePageviews\", \"ga:timeOnPage\", \"ga:totalEvents\", \"ga:uniqueEvents\", \"ga:transactions\", \"ga:itemQuantity\", \"ga:quantityAddedToCart\", \"ga:quantityRemovedFromCart\", \"ga:itemRevenue\", \"ga:totalValue\", \"ga:users\", \"ga:newUsers\", \"ga:bounces\", \"ga:sessionDuration\", \"ga:avgSessionDuration\", \"ga:transactionsPerSession\", \"ga:transactionRevenue\", \"ga:revenuePerTransaction\", \"ga:transactionRevenuePerSession\", \"ga:uniquePurchases\", \"ga:revenuePerItem\", \"ga:itemsPerPurchase\", \"ga:productAddsToCart\", \"ga:productCheckouts\", \"ga:quantityCheckedOut\", \"ga:refundAmount\", \"ga:revenuePerUser\", \"ga:totalRefunds\", \"ga:transactionsPerUser\"] }, { \"days\": 7, \"ms_table\": \"table_2\", \"view_id\": \"ga:00000000000\", \"dimensions\": [\"ga:channelGrouping\", \"ga:date\", \"ga:source\", \"ga:campaign\", \"ga:sessionDurationBucket\"], \"metrics\": [\"ga:sessions\", \"ga:bounceRate\", \"ga:hits\", \"ga:uniquePageviews\", \"ga:timeOnPage\", \"ga:totalEvents\", \"ga:uniqueEvents\", \"ga:itemQuantity\", \"ga:quantityAddedToCart\", \"ga:quantityRemovedFromCart\", \"ga:itemRevenue\", \"ga:users\", \"ga:newUsers\", \"ga:bounces\", \"ga:sessionDuration\", \"ga:avgSessionDuration\", \"ga:uniquePurchases\", \"ga:revenuePerItem\", \"ga:itemsPerPurchase\", \"ga:productAddsToCart\", \"ga:productCheckouts\", \"ga:quantityCheckedOut\"] }, { \"days\": 15, \"ms_table\": \"table_3\", \"view_id\": \"ga:000000000\", \"dimensions\": [\"ga:date\", \"ga:source\", \"ga:sessionDurationBucket\"], \"metrics\": [\"ga:pageLoadTime\", \"ga:bounceRate\", \"ga:transactions\", \"ga:users\", \"ga:transactionsPerSession\", \"ga:transactionRevenue\", \"ga:revenuePerTransaction\", \"ga:transactionRevenuePerSession\", \"ga:refundAmount\", \"ga:revenuePerUser\", \"ga:totalRefunds\", \"ga:transactionsPerUser\"] }, { \"days\": 15, \"ms_table\": \"table_4\", \"view_id\": \"ga:00000000\", \"dimensions\": [\"ga:date\"], \"metrics\": [\"ga:pageLoadTime\"] } ]}Описание всех узлов файла конфигурации:
mssql_con — параметры подключения к Microsoft SQL Server;
- PWD — пароль пользователя;
- Database — имя базы данных;
- Driver — название ODBC-драйвера (посмотреть название можно в диспетчере ODBC-источников данных) ;
- Server — IP сервера, на котором развернут SQL Server;
- UID — имя пользователя;
- Port — порт подключения;
google_***ytics_con — учетные данные приложения в Google Cloud Console;
google_***ytics_report — описание запросов к API Google ***ytics (количество запросов не ограничено)
- dimensions — параметры, запрашиваемые в запросе. Можно указывать до 7 параметров в одном запросе. При этом необходимо предварительно проверить сочетание всех параметров между собой и выбранными показателями. Для проверки используйте специальный инструмент от Google. Среди запрашиваемых параметров обязательно должен присутствовать ga:date;
- ms_table — название таблицы, в которую будут записаны данные по запросу;
- days — количество дней, за который необходимо проверять наличие данных в базе;
- view_id — ID представления в Google ***ytics, из которого будут запрашиваться данные;
- metrics — набор показателей, которые вы хотите получить из Google ***ytics. Необходимо указать как минимум одну метрику в запросе. При этом ограничения на их максимальное количество нет. Все запрашиваемые показатели должны сочетаться между собой и со всеми указанными параметрами. Проверить это можно с помощью специального инструмента от Google.
Добавлять новые запросы необходимо в узел google_***ytics_report, взяв за основу описанную выше структуру..
Состав коннектора ga2mssql
Коннектор состоит из архива файлов:
- GA2MSSQL.bat — запускной файл коннектора для сбора и проверки данных за прошлый период;
- GA2MSSQL_today.bat — запускной файл коннектора для сбора данных за текущий день;
- config.json — файл конфигурации и управления коннектором;
- package_installer.bat — файл для установки необходимых пакетов;
- auth.rds — файл для хранения учетных данных для доступа к Google ***ytics;
- ga2mssql_scr.R — код коннектора для загрузки и проверки наличия данных за прошлый период;
- ga2mssql_scr.Rout — лог последнего запуска скрипта ga2mssql_scr.R;
- ga2mssql_today_scr.R — код коннектора для загрузки и проверки наличия данных за текущий день;
- ga2mssql_today_scr.Rout — лог последнего запуска скрипта ga2mssql_today_scr.R.
Установка и настройка расписания сбора данных через коннектор
Коннектор ga2mssql — кроссплатформенный. Он будет работать на Windows, Unix и MacOS и других операционных системах.
В нашем случае коннектор установили на Windows Server.
Для установки коннектора на Windows нужно:
Язык R в интернет-маркетинге — дайджест полезных публикаций Установить язык
R. - Прописать в переменную окружения PATH путь к папке bin (в директорию, куда был установлен Язык R). По умолчанию для версии R 3.6.1 путь будет «C:\Program Files\R\R-3.6.1\bin».
- Распаковать архив с коннектором ga2mssql.zip в корень диска C. Путь к коннектору: «C:\ga2mssql».
- Перед настройкой коннектора запустить от имени администратора файл package_installer.bat для установки требуемых пакетов.
- Предоставить пользователю, указанному в файле конфигурации в узле mssql_con:UID в Microsoft SQL Server, права на запись и редактирование данных, а также на создания таблиц.
Далее в планировщике заданий Windows необходимо создать задачи:
- ежедневный запуск файла GA2MSSQL.bat для сбора данных за прошлый период;
- ежечасный запуск файла GA2MSSQL_today.bat для обновления данных за текущий день.
Комментарий клиента
Анастасия Чистова, ведущий менеджер-аналитик в компании «Металл профиль»Запуск коннектора мы встроили в общее расписание заданий MSSQL с запуском ежечасно для получения актуальной информации и раз в день. На протяжении двух недель тестирования коннектор отработал без сбоев и обеспечил загрузку полного объема данных, определенных настроенным представлением. Также мы настроили дополнительные запросы данных Google ***ytics по трафику — благодаря структуре коннектора это выполнено достаточно гибко.
Выводы
Существуют готовые решения по сбору данных из API Google ***ytics в Microsoft SQL Server, но их стоимость достаточно высокая. Как правило, нужны регулярные оплаты подписки в течении всего периода использования.
Преимущества коннектора ga2mssql:
- Вы самостоятельно задаете расписание обновления данных.
- Можно задать любое количество собственных, пользовательских запросов в API Google ***ytics.
- Коннектор обходит ограничение в 10 показателей на 1 запрос к API.
- ga2mssql — кроссплатформенный, разница состоит только в настройке расписания запуска.
- Достаточно легко переключить коннектор ga2mssql на работу с любой другой базой данных, включая MySQL, PostgreSQL, BigQuery, ClickHouse и другие.
Хочу быстро найти клиентов онлайн
Комментарии:
Пора принять решение! Разберитесь с регулярными выражениями для более продуктивной работы с Google ***ytics или Google Tag Manager...
30 08 2026 23:40:25
Такое обозрение очередной новинки Google от Сергея Бахаря...
29 08 2026 12:11:49
Рекомендации от Google для бизнеса о поведении в период распространения коронавируса....
28 08 2026 17:57:48
Digital-маркетинг развивается и модернизируется: новые методы работы, инструменты и технологии. И стабильно растут требования к digital-специалистам. Чтобы оставаться в профессии, нужно мониторить тренды, отслеживать тенденции и повышать знания....
27 08 2026 14:59:12
Короткая история про одного из руководителей корпорации «Kimberly Clark». Альтернативная Википедия для тех, кто любит сторителлинг. Читать дальше!...
26 08 2026 17:41:59
Грамотная аналитика в мире мобильных приложений, как и в целом в маркетинге — единственный путь к окупаемости продукта и выходу в высшую лигу брендов...
25 08 2026 22:32:34
2013, 2014, 2015 — годы, когда конференция 8p радовала все сео-сообщество СНГ. Прошла она и в 2016 году. Мы собрали лучшие советы интернет-магазинам от экспертов и участников круглого стола на конференции 8P 2016....
24 08 2026 1:18:41
Увольнять сотрудника — это неприятно и порой сложно. Прежде надо убедиться, что такой шаг оправдан, но он же потребует от руководителя понимания, как действовать в подобной ситуации. На этом и остановимся...
23 08 2026 10:29:30
Динамический ремаркетинг — один из самых эффективных способов продаж для любой группы товаров. В этой статье мы поделимся тонкостями технической подготовки к запуску динамического ремаркетинга в Facebook....
22 08 2026 9:54:46
Microsoft, Facebook и другие технологические компании заявляют, что метавселенная — это будущее интернета. Или настоящее? Давайте разберемся...
21 08 2026 18:31:17
Раскрутка музыки онлайн: способы, методы, нюансы и примеры...
20 08 2026 1:45:59
Крауд-маркетинг предполагает взаимодействие с целевой аудиторией с помощью рекомендательных комментариев на форумах, сайтах вопросов и ответов, в блогах, на других площадках...
19 08 2026 18:20:59
Кейс о том, как написать большинству дилеров премиальных акустических систем в Европе и ничего не продать. И почему это кейс, а не антикейс....
18 08 2026 3:15:57
Новости, доработки и обновления в услугах, блоге, Академии блога и Кластере....
17 08 2026 12:17:59
Темная сторона лайков или правда о продвижении постов в Facebook...
16 08 2026 14:35:40
Как создать аккаунт в Google Merchant Center, загрузить и изменить фид с информацией о товарах, — делимся тонкостями настройки кампаний шопинга...
15 08 2026 6:12:59
Топ-8 ошибок новичков в Google Рекламе: как сэкономить деньги при планировании рекламной кампании....
14 08 2026 2:17:24
Многие специалисты недооценивают эффективность отчетов Яндекс.Метрики. Очень зря. Вот чем они могут быть полезны....
13 08 2026 0:34:32
Как передавать данные пpaктически о каждом «шаге» пользователя на сайте...
12 08 2026 9:51:39
На отклонение исходящих ссылок после загрузки файла может уйти достаточно много времени: от нескольких недель до нескольких месяцев...
11 08 2026 7:27:54
Alexa Rank учитывает как число страниц, так и количество просмотров страниц. Alexa Rank 1, что означает, что все сайты и сервисы Google посещают больше всего посетителей в интернете....
10 08 2026 13:37:30
Хотите раскрутить свои соцсети в 2022 году? Тогда уже сейчас нужно задуматься, что будете публиковать. В статье расскажем, какой контент будет в тренде в будущем году....
09 08 2026 23:26:31
10 базовых правил оформления онлайн-таблиц. Оформление — основа таблицы. Как работать со столбцами и ячейками, комментариями и примечаниями, делать корректные цветовые выделения. Читайте далее....
08 08 2026 3:18:22
Настройка пикселя TikTok — короткий и понятный мануал. Устанавливаем пиксель вручную: вставка кода на сайт и интеграция через Install pixel code by 3rd party tool. Читать дальше....
07 08 2026 16:12:52
Почему популярность электромобилей растет и как это связан с продажей углеродных квот...
06 08 2026 0:15:20
Бесплатно рекламировать и привлечь первых посетителей/клиентов вполне реально своими силами...
05 08 2026 22:20:11
Анализируя поведение аудитории, вы сможете понять, почему клиенты приходят на сайт, почему уходят, и почему не делают заказы....
04 08 2026 21:46:42
SEO-специалист Netpeak Виктория Игнатьева опубликовала небольшой обзор особенностей рынка SEO Японии, подготовленный на основе собранных в сети материалов, а также личных знаний и наблюдений...
03 08 2026 17:13:39
Семинар с примерами юзабилити решений от Twitter, Airbnb, Amazon и других компаний....
02 08 2026 7:12:57
Новый тип рекламных кампаний, который помогает расширить целевую аудиторию. Потенциальных покупателей можно найти среди людей не знакомых с вашим брендом....
01 08 2026 23:44:50
Казахстанские реалии: данные по более 1 млн кликов в 23 тематиках и 15 городах....
31 07 2026 3:36:15
Трекеры теперь на любой вкус: за лидерство в сфере аналитики и трекинга в мире мобильных приложений все еще конкурируют более десяти различных систем. Как не растеряться в обилии инструментов?...
30 07 2026 18:57:13
То, чего нет в справке — подробный обзор отчетов Google ***ytics: в режиме реального времени, по аудитории, источникам трафика, поведению, конверсии. Узнать больше!...
29 07 2026 12:41:14
Перед нами стояла цель увеличить поисковый трафик и видимость, не охватывая новые города. Через 8 месяцев после старта сотрудничества сайт переносили на новый front-end. Узнать больше!...
28 07 2026 0:49:47
Магазин вязанных вещей хенд мейд. Как за два месяца увеличить посещаемость в 20 раз....
27 07 2026 7:27:31
Чтобы прекратить споры о том, с какого конца разбивать яйцо, я собрал аргументы за союз SEO и PPC...
26 07 2026 7:12:13
Метод не для всех, но увлеченным веб-аналитикой точно понравится!...
25 07 2026 0:47:21
Чем удивляла, радовала и смешила реклама в социальных сетях в июне 2021 года...
24 07 2026 15:52:17
Зачем внедрять BI-решение для бизнеса, какие функции отдел может решить с помощью автоматизации? Кейс Netpeak....
23 07 2026 7:27:48
Чтобы проставить 301 редиректы, вначале надо выгрузить весь список топовых страниц по обратным ссылкам...
22 07 2026 16:31:51
Многие не догадываются о том, что в КМС Google можно разместить и редактировать графические объявления онлайн...
21 07 2026 5:11:27
Фишинговая ссылка означает, что пользователей пытаются ввести в заблуждение в мошеннических целях, имитируя ссылку на авторитетный сайт....
20 07 2026 6:19:10
Правила преобразования фидов в Google Merchant Center помогут сегментировать товары и сделать вашу рекламу более эффективной...
19 07 2026 1:22:49
Аудит юзабилити способствует следованию современным тенденциям, пониманию целевого посетителя и увеличению конверсии....
18 07 2026 3:20:11
Данные по более 26 млн кликов в 23 тематиках и 402 городах Украины...
17 07 2026 6:57:11
Private Blog Network для ниши безопасности, доставки цветов, товаров сантехники, туризма и выпекания. Сетки сайтов работают не всегда и это нормально. Узнать больше!...
16 07 2026 6:10:45
Что такое посол бренда и чем он отличается от адвоката бренда?...
15 07 2026 15:53:28
Короткий прогон сервисов для аналитики активности в Твиттер....
14 07 2026 9:42:42
Пример использования пакета google***yticsR от Марка Эдмондса...
13 07 2026 5:25:37
Продвижение монобренда: особенности, трудности, подводные камни. Ниша здоровья и красоты....
12 07 2026 12:49:31
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::