«Металл профиль» — как мы запустили кастомный коннектор для загрузки данных из 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 и другие.
Хочу быстро найти клиентов онлайн
Комментарии:
Какие шрифты бывают, для чего они предназначены, где найти самый подходящий шрифт и как его правильно использовать?...
02 11 2026 20:39:43
Как бесплатно пользоваться преимуществами, особенностями и дополнительными инструментами сервиса...
01 11 2026 5:33:42
Что нужно сделать, чтобы ваши объявления показывались только заинтересованным клиентам? В первую очередь, подобрать ключевые слова, релевантные запросу потенциального клиента и ориентированные на пользователей с мотивацией совершить действие....
31 10 2026 14:55:44
Как повысить результаты продаж в режиме цейтнота. Советы новому руководителю от специалистов Netpeak Group. Больше подробностей — в посте...
30 10 2026 18:26:32
Как автоматизировать целый участок в работе комaнды специалистов по контекстной рекламе — кейс concert.ua...
29 10 2026 9:42:34
Почему важно знать детали создания и защиты уникального контента? Потому что это позволит защитить ваш сайт от санкций поисковых систем из-за неуникального контента...
28 10 2026 3:41:23
Опыт, накопленный за более чем 10 лет работы в нише и упакованный в специальные предложения....
27 10 2026 7:57:40
Реклама Facebook для вовлечения пользователей помогает привлечь внимание к приложению и удержать пользователей в условиях перенасыщенного рынка....
26 10 2026 21:24:43
Как создавать результативные кампании в Рекламной сети Яндекса...
25 10 2026 13:32:18
Как мы недооценили уровень конкуренции в нише, и как пришлось с этим бороться, чтобы принести пользу клиенту....
24 10 2026 22:27:28
Обзор новой версии краулера Netpeak Spider 3.0, которая включает в себя около 300 изменений: от супер-фич до небольших фиксов в юзабилити....
23 10 2026 15:44:24
В Twitter удобно собрать список потенциальных клиентов, чтобы время от времени посматривать за их новостями...
22 10 2026 18:53:23
Кейс по росту органического трафика на сайте интернет-магазина на платформе Summer Cart....
21 10 2026 6:10:59
Используйте методы Элияху Голдратта для оптимизации процессов в жизни и на работе...
20 10 2026 17:18:26
Как визуализировать данные Google BigQuery в Power BI? Пошаговая инструкция от руководителя отдела веб-аналитики Netpeak Алексея Селезнева...
19 10 2026 19:46:14
Всё, что важно узнать о лидогенерации и работе с целевой аудиторией....
18 10 2026 15:52:35
Статья будет полезна небольшим агентствам, которые мечтают работать с заграничными клиентами. Зачем нужно выходить за рубеж, если и в своей стране все идет неплохо, да и вообще — нет времени на продвижение на незнакомом рынке? Давайте разбираться вместе!...
17 10 2026 10:56:38
Обзор главных преимуществ, которые дают облачные академии бизнесу....
16 10 2026 0:24:51
Сервисы для сбора поисковых фраз позволяют регулярно расширять семантическое ядро, обеспечивая сайту высокую видимость и увеличение трафика по тематическим запросам...
15 10 2026 1:15:15
Шпаргалка по размерам креативов для всех, кто запускает рекламу в соцсетях...
14 10 2026 7:11:32
Кейс о том, как написать большинству дилеров премиальных акустических систем в Европе и ничего не продать. И почему это кейс, а не антикейс....
13 10 2026 14:17:43
Что такое обратная связь, почему фидбек от клиентов важен и как его правильно собирать. Все, что нужно знать, чтобы получить отзыв от клиента....
12 10 2026 3:27:48
Создатель студии рисованных видео Денис Довгаль — о тактике видеомаркетинга и жизни в стиле «цифровых кочевников»....
11 10 2026 23:40:37
Читайте, если не хотите «слить» бюджет. Определите конкретные цели и УТП, соберите аналитику, идите к специалисту без опыта работы в конкретной нише и другие рекомендации эксперта. Читайте подробнее в статье!...
10 10 2026 8:15:37
Как зарегистрировать и настроить новый сайт в сервисах веб-аналитики...
09 10 2026 19:55:31
Что делать, если вы столкнулись со спамом в отчетах Google ***ytics? Значит ли это, что кто-то имеет доступ к вашему аккаунту, или что кто-то специально влияет на данные сайта в GA? Как они это делают? И как исключить подобные данные из отчетов?...
08 10 2026 1:56:29
Ошибка, которая может привести к полной потере контроля над вашим сайтом. Рассказываем, что это такое, какие могут быть причины поломки и как исправить. Узнать больше!...
07 10 2026 21:57:41
Анализ данных о 7,6 миллионах поисковых запросов в французском Google...
06 10 2026 8:38:40
Система почтового маркетинга. Как удержать доверия подписчиков одним приветственным письмом...
05 10 2026 6:51:43
Direct way. Как вложить 200 у.е. и получить 800 у.е....
04 10 2026 14:10:43
Настроенная бизнес-страница компании в Instagram и на Facebook помогает в продвижении товаров и услуг в интернете. Поэтому так важно сделать их seo-friendly. Читать!...
03 10 2026 9:44:13
Адаптивный линкбилдинг: будьте полезны людям, а не поисковикам....
02 10 2026 9:11:24
Реклама мобильных приложений. Хотите показывать рекламу в играх? Вам сюда. Узнайте как правильно настроить показ рекламы на мобильных устройствах....
01 10 2026 12:58:33
Как сэкономить на рекламе мобильных приложений в Facebook...
30 09 2026 2:15:37
Иконки отличаются между собой размером, формой, весом, количеством оттенков и объемом. Наиболее популярными считаются векторные пиктограммы...
29 09 2026 8:10:41
Делимся итогами продвижения телеграм-канала «Артём Бородатюк» за 2021 год...
28 09 2026 4:24:36
Фишинговая ссылка означает, что пользователей пытаются ввести в заблуждение в мошеннических целях, имитируя ссылку на авторитетный сайт....
27 09 2026 3:42:17
О работе внутреннего и внешнего контент-маркетолога: необходимые знания и навыки для старта, плюшки и головная боль. Все здесь....
26 09 2026 16:59:22
Какие возможности дает Chrome DevTools для SEO-оптимизации...
25 09 2026 1:22:10
В этой статье я покажу пример визуальной работы с закладкой и пошагово разберу процесс их создания и применения для удобства визуализации данных...
24 09 2026 15:30:15
Проведение краудфандинговых кампаний — это бизнес. Это отдельный и вполне серьёзный рынок с уймой заточенных под ваши нужды услуг. Раньше нужно было ждать, пока проект пройдет обязательную проверку сотрудником Kickstarter, сейчас можно запускать кампанию...
23 09 2026 1:10:25
Основатель сервиса мобилографии EyeEm Рамзи Ризк рассказал об особенностях своего сервиса и будущем мобильных приложений....
22 09 2026 17:42:43
Лафхаки для маркетологов и владельцев сайтов на Prom...
21 09 2026 8:30:50
Старт любых активностей в сфере email-маркетинга — разработка стратегии...
20 09 2026 11:17:37
Минусовки это не только про эстраду. Какой метод кросс-минусовки ключевых слов лучше?...
19 09 2026 12:22:12
Читайте простой мануал о том, как перейти на Universal ***ytics и не поломать весь сбор данных...
18 09 2026 15:11:17
Что такое ускоренные мобильные страницы и как их посмотреть в Google ***ytics...
17 09 2026 0:56:41
Читать только интернет-маркетологам, SMM, PPC и SEO-специалистам....
16 09 2026 19:55:32
Ексель для чайникiв. Как импортировать всю необходимую информацию из Google ***ytics с помощью простого интерфейса Excellent ***ytics....
15 09 2026 11:27:33
Как установить счетчик Метрики, грамотно настроить цели, сегменты и запустить рекламную кампанию по ретаргетингу в Яндекс.Директ...
14 09 2026 20:12:32
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::