NetPeak Biz Tech    


Как собрать данные из Google Search Console и построить отчетность с помощью Python и Google BigQuery

Как собрать данные из Google Search Console и построить отчетность с помощью Python и Google BigQuery

< >

Привет! Меня зовут Антон Леонтьев, я руководитель группы веб-аналитики в компании eLama.

В 2017 году вышла моя статья «Как обработать данные по поисковым запросам из органики Google в Google BigQuery». В ней мы вручную выгружали CSV-файлы из Google Search Console, складывали их на хранение в Google BigQuery и строили отчетность. В этой статье мы научимся выгружать автоматически с помощью Python-скрипта больше информации из консоли веб-мастера Google и построим большее количество автоматических отчетов.

Что изменилось с момента выхода прошлой статьи:

Во-первых, данные по поисковым запросам в консоли веб-мастера Google и в Google ***ytics теперь хранятся 16 месяцев, а не 90 дней, как раньше.

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

В-третьих, теперь консоль веб-мастера поддерживает Ресурс на уровне домена, включающий URL с любыми субдоменами (m, www и др.) и различными префиксами протокола (http, https, ftp).

Также добавлю, что вручную скачивать CSV-файлы из консоли и загружать в BigQuery стало сложнее, поскольку все чаще попадаются громоздкие поисковые запросы на несколько строк с разными разделителями (пользователи копируют куски текста и вставляют в поиск). Стандартное форматирование ломается.

Чтобы построить автоматическую отчетность, мы будем каждый месяц скачивать из консоли веб-мастера статистику за предыдущий месяц и загружать ее в облачную базу данных Google BigQuery с помощью Python-скрипта. Затем построим отчетность SQL-запросами.

Пошаговая инструкция

1. Установим последнюю версию Python3 с официального сайта. Скачиваем дистрибутив, при установке выбираем ‘Customize installation’ и устанавливаем в папку ‘C:\Python37’. Остальные параметры можно не менять. Дальнейшие действия рассмотрим на примере операционной системы семейства Windows.

2. Запустим комaндную строку.

3. Перейдем в папку, куда установился Python, и проверим его работоспособность. Для этого запустим по очереди комaнды:

cd \"C:\Python37\"python --version

4. Выполним комaнды для установки библиотек, необходимых для работы скрипта:

cd Scriptspip install --upgrade google-api-python-clientpip install pandaspip install pandas_gbqpip install --upgrade oauth2clientcd ..

5. В Google BigQuery создадим dataset, например, ‘search_console_google’. О том, как начать работать с BigQuery, можно прочитать в одной из моих предыдущих статей.

6. Нужно создать сервисный аккаунт в разделе IAM и администрирование в Google Cloud Platform, затем создать для него JSON-ключ и сохранить себе на компьютер, например, в папку ‘C:\Dropbox\gsc\’.

7. Подключите Google Search Console API для приложения в Google API Console в текущем проекте Google Cloud. Затем создайте учетные данные.

Скачайте JSON-файл с учетными данными, переименуйте его в client_secrets.json.

8. Скачайте скрипт google_seo.py себе на компьютер, например, в папку ‘C:\Dropbox\gsc\’.

Здесь скрипт google_seo.py. Важно! Файлы google_seo.py и client_secrets.json должны находиться в одной папке.

Замените в коде переменные:

  • ‘gcloud_key’ — путь к JSON-ключу от сервисного аккаунта Google Cloud из пункта 6;
  • ‘gbq_project_id’ — идентификатор проекта Google BigQuery;
  • ‘gbq_dataset’ — название dataset\\\'a в BigQuery, куда вы хотите сохранить данные;
  • ‘domains’ — список доменов-ресурсов, подтвержденных в консоли вебмастера;
  • ‘first_month’, ‘last_month’ — с какого по какой месяц выгружаем данные;
  • ‘dimensions’ — метрики, которые будем выгружать (подробнее об этом поговорим дальше).

9. Запустите скрипт, набрав в комaндной строке:

python \"C:\Dropbox\gsc\google_seo.py\"

При первом запуске откроется браузер: нужно будет авторизоваться в Google и выдать разрешение приложению на доступ к вашему аккаунту. Также при первом запуске появится предупреждение об отсутствующем файле webmasters.dat; в этом нет ничего страшного, он будет создан позднее.

Если все пройдет гладко, то в консоли после выполнения скрипта будет суммарная информация по выгрузке. Также лог сохранится в файле google_seo_log.txt в папке со скриптом.

  • search_type — тип поиска (Веб, Изображение, Видео) ;
  • all_values — сколько всего значений было выгружено (сколько строк) ;
  • values with clicks — сколько из них было с кликами (остальные — 0 кликов, то есть были только показы) ;
  • clicks sum — сумма кликов;
  • impressions sum — сумма показов;
  • dimension1 и dimension2 — выгружаемые метрики. Скрипт по умолчанию выгружает восемь метрик, которые я посчитал самыми важными; если каких-то не хватает — просто добавьте их в скрипт. Что это за метрики:

9.1. \"device\": Устройства. Аналогичный отчет из консоли веб-мастера имеет вид:

9.2. \"country\": Страны.

9.3. \"page\": Страницы сайта. Сумма кликов и сумма показов больше, чем, например, по метрике 9.1 device, так как за один результат поиска в Google может выдаваться несколько страниц одного сайта, и все они суммируются.

9.4. \"query\": Поисковые запросы. Обычно самая востребованная метрика. К сожалению, через Google API (так же, как и через обычные CSV-выгрузки в интерфейсе консоли веб-мастера) выгружаются не все поисковые запросы (сумма кликов и показов меньше, чем в нашей выгрузке по метрике 9.1 device, и меньше, чем в суммарной информации в веб-интерфейсе консоли).

9.5. \"query - device\" и 9.6. \"query - country\": Поисковые запросы с разбивкой по устройствам; по странам.

В этих двух метриках сумма кликов совпадает с 9.5 query, но сумма показов может быть больше т.к. добавляются новые запросы с показами, но без кликов (особенности API Google).

9.7. \"query - page\": Поисковые запросы с разбивкой по страницам сайта. Сумма кликов и сумма показов больше, чем, например, по метрике 9.4 query, так как за один результат поиска в Google может выдаваться несколько страниц одного сайта, и все они суммируются.

10. Также в результате выполнения скрипта для каждого домена за каждый месяц создается таблица в Google BigQuery с сырыми данными:

Чтобы посмотреть содержимое таблиц, откройте предварительный просмотр.

Содержание полей:

  • clicks — клики;
  • ctr — CTR;
  • impressions — показы;
  • position — позиция в поиске;
  • search_type — тип поиска;
  • domain — домен;
  • period — месяц;
  • dimension1 и dimension2 — названия метрик, а value1 и value2 — их значения.

Например, на скриншоте ниже dimension1 содержит ‘query’, а dimension2 — пустое. Значит, это поисковые запросы, которые хранятся в поле value1, а поля value2 — пустые.

11. Чтобы было легче работать с поисковыми запросами (то есть метрикой 9.4 query), создадим виртуальную таблицу (view) search_console_google.queries, содержащую этот SQL-скрипт:

Здесь скрипт queries.sql.

В этом скрипте вам нужно заменить ‘gbq_project_id’ — идентификатор проекта BigQuery — и подправить определение брендированных запросов. Затем запустите скрипт и сохраните view (представление). Эта виртуальная таблица будет содержать подробную информацию по каждому поисковому запросу за каждый отчетный месяц по каждому домену-ресурсу.

Посмотрим на результат выполнения этого скрипта (нужно нажать Edit Query, Run Query):

Колонки аналогичны таблице из пункта 10, за исключением:

query — поисковый запрос, уже отдельное поле;

query_type — тип поискового запроса, определяется в SQL-запросе. Он принимает три значения: ‘(other)’, ‘branded’, ‘not branded’.

‘(other)’ — это искусственно созданный поисковый запрос, клики и показы по которому равны сумме кликов и показов, которые не выгрузились из консоли. Рассчитывается это следующим образом: берется сумма кликов и показов по метрике device (эта сумма пpaктически всегда совпадает с общей суммой консоли веб-мастера), и из нее вычитаются суммы кликов и показов по всем выгруженным поисковым запросам. Таким образом, суммы по ‘(other)’, ‘branded’, ‘not branded’ совпадают с общими цифрами в консоли веб-мастера.

12. Используя эти данные, можно построить любые отчеты или графики в средствах визуализации или BI-инструментах. Я подготовил пять отчетов в Google Sheets. Откройте документ по ссылке и скопируйте себе, тогда у вас появится доступ на редактирование и изменение графиков. Все цифры в документе демонстрационные.

13. Отчет 1: Queries totals

На графике выводится помecячная динамика указанного показателя по выбранным доменам, типу поиска и типу запроса. Например, динамика кликов по бразильскому домену в типе поиска ‘web’ по всем типам запросов:

Или доля показов по всем доменам во всех типах поиска по поисковым фразам ‘other’ (то есть которые не выгружаются из консоли веб-мастера):

Исходными данными для листа ‘1 Queries totals’ является лист ‘1 source’, в который скопирован результат выполнения SQL-запроса. Чтобы не копировать вручную данные в ‘1 source’, можно воспользоваться аддоном OWOX BI BigQuery Reports, который будет обновлять лист каждый раз по запросу или по расписанию.

Здесь скрипт queries_report_chart.sql.

14. Отчет 2: Queries list

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

Здесь скрипт queries_report_list.sql.

15. Отчет 3: Devices

Динамика показателей: CTR, клики, показы в разрезе устройств по доменам и типам поиска. Исходные данные — на листе ‘3 source’.

Здесь запрос devices.sql.

16. Отчет 4: Countries

Здесь можно посмотреть статистику по странам. Исходные данные — на листе ‘4 source’.

Здесь запрос countries.sql.

17. Отчет 5: Pages

Таблица со статистикой кликов по страницам сайта. Список ограничен страницами с 5 и более кликами за все время.

Здесь скрипт pages.sql.

Заключение

В этой статье приведены примеры отчетов по следующим выгруженным метрикам из Google Search Console: 9.1 device, 9.2 country, 9.3 page, 9.4 query. Данные по: 9.6 query - device, 9.7 query - country, 9.8 query - page не используются, иначе статья будет очень громоздкой. Но все данные хранятся в BigQuery, и вы сможете запрашивать оттуда данные, если потребуется. Используйте и модифицируйте приведенные SQL-запросы под свои потребности или стройте отчеты на основе сырых данных в средствах визуализации и BI-инструментах: Google Data Studio, Tableau, Power BI или других.

Таким образом, мы разобрались, как можно сохранить статистику переходов из органики Google, а также автоматизировать отчетность. Если у вас есть вопросы или дополнения — пишите в комментариях.



Комментарии:

Мир К-pор: механика фанатских соцсетей — от популярности к монетизации

K-pop заpaбатывает деньги: как и сколько...

30 08 2026 15:49:11

Три уровня оптимизации рекламной кампании в Google Ads

Предположим, что оптимизация в аккаунте похожа на реальный мир и рассмотрим несколько примеров :)...

29 08 2026 1:33:34

Кейс по SMM в тематике «посуда»: фотоконкурс для стимуляции активности в сообществе

Кейс по SMM в тематике «посуда»: фотоконкурс для стимуляции активности в сообществе Фотоконкурс для стимуляции активности в сообществе, прироста фанов и поощрения лояльной аудитории....

28 08 2026 7:16:29

Готовые SEO-решения для 9 самых популярных CMS

Готовые SEO-решения для 9 самых популярных CMS База самых распространенных CMS и модулей для их SEO-оптимизации....

27 08 2026 15:53:53

На что ориентироваться при составлении бюджета на рекламу

На что ориентироваться при составлении бюджета на рекламу Что делать перед составлением рекламного бюджета — инструкция для предпринимателей...

26 08 2026 5:16:54

Как устроен маркетинг в OLX.ua — рассказывает Marketing Director Алексей Ломоносов

Не стучитесь к Алексею на ФБ с предложением что-то придумать для бренда. У Ломоносова целый тред таких непрочитанных сообщений. Узнать больше....

25 08 2026 6:35:15

Как перенести интернет-магазин с российских платформ

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

24 08 2026 18:26:17

Текст для главной страницы сайта — правила, требования и примеры

Текст для главной страницы сайта — правила, требования и примеры Как понравиться поисковым системам и пользователям....

23 08 2026 11:51:25

Вакцинация от Covid-19 в Украине: как организовать для сотрудников офиса

Вакцинация от Covid-19 в Украине: как организовать для сотрудников офиса Оставить заявку на горячей линии МОЗ — это только вершина айсберга. Необходимо провести опрос среди сотрудников компании. И не один. А ещё подготовить несколько помещений для вакцинации и отдыха. Узнать больше!...

22 08 2026 11:36:41

7 возможностей Serpstat, о которых вы наверняка не знали

7 возможностей Serpstat, о которых вы наверняка не знали Посмотреть релевантность сайта для победы над конкурентами. Как использовать Serpstat....

21 08 2026 10:47:38

Что такое Alexa Rank и как в нем продвинуться

Что такое Alexa Rank и как в нем продвинуться Alexa Rank учитывает как число страниц, так и количество просмотров страниц. Alexa Rank 1, что означает, что все сайты и сервисы Google посещают больше всего посетителей в интернете....

20 08 2026 5:22:50

Контент-маркетинг для блога UniSender — что мы сделали для развития сайта

Контент-маркетинг для блога UniSender — что мы сделали для развития сайта Поиск крутых авторов и качественные тексты для блога об email-рассылке...

19 08 2026 21:58:34

Как обойти агрегаторы и маркетплейсы в выдаче: пошаговая инструкция

Как обойти агрегаторы и маркетплейсы в выдаче: пошаговая инструкция Доминирование маркетплейсов и агрегаторов в Яндексе усилилось. Первый магазин появляется не раньше 5 позиции. Поэтому компания Alto подготовила пошаговое руководство - как обойти агрегаторы в выдаче....

18 08 2026 16:38:25

Сколько стоил клик в Google Ads и Яндекс.Директ в Казахстане во втором квартале 2018 года

Сколько стоил клик в Google Ads и Яндекс.Директ в Казахстане во втором квартале 2018 года Данные о стоимости клика в наиболее популярных рекламных интернет-площадках страны....

17 08 2026 6:56:44

Продвижение сайта VIN-кодов в США по низкочастотным запросам: рост трафика на 681% за 6 месяцев

Продвижение сайта VIN-кодов в США по низкочастотным запросам: рост трафика на 681% за 6 месяцев Кейс SEO-продвижения в США: рост трафика сайта с помощью низкочастотных запросов....

16 08 2026 3:10:48

Анализ сезонности на примере ниши доставки цветов

Анализ сезонности на примере ниши доставки цветов Занимайтесь оптимизацией определенной категории товаров за полгода до скачка спроса....

15 08 2026 1:51:45

Семь улучшений Netpeak: скрипт GetLeads и PPC для брендинга. Выпуск второй

Семь улучшений Netpeak: скрипт GetLeads и PPC для брендинга. Выпуск второй В третьем квартале Netpeak внедрил множество крутых улучшений. Мы подробно расскажем о семи самых интересных новостях....

14 08 2026 5:17:16

SEO-среда: 7 способов улучшить поведенческие факторы сайта

SEO-среда: 7 способов улучшить поведенческие факторы сайта Совет Константина Леоновича (Sape.ru), 4 наших + 2 бонусных...

13 08 2026 16:38:12

Engagement Rate в email-маркетинге: что это, как посчитать и повысить

Engagement Rate в email-маркетинге: что это, как посчитать и повысить Определяем, кто из mail подписчиков предан вашему бренду по-настоящему....

12 08 2026 3:45:44

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

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

11 08 2026 12:55:29

Атрибуция Facebook: для чего нужна и как настроить

Атрибуция Facebook: для чего нужна и как настроить Как отслеживать конверсии при многокaнaльном взаимодействии покупателя с вашим сайтом? Читайте далее...

10 08 2026 3:43:45

Топ-50 самых дорогих ключевых слов Google Рекламы в России и Украине

Топ-50 самых дорогих ключевых слов Google Рекламы в России и Украине За что, по мнению рекламодателей, готовы платить пользователи в России и Украине? Рейтинг самых дорогих ключевых слов Google Рекламы по версии Serpstat....

09 08 2026 2:18:44

Как я работаю: рассказ тимлида комaнды управления онлайн-репутацией

Как я работаю: рассказ тимлида комaнды управления онлайн-репутацией Как настроить работу удаленной комaнды сотрудников и успевать выполнить все задачи...

08 08 2026 18:35:20

Интервью с Юлией Куриловой

Интервью с Юлией Куриловой Увлекательные истории от специалиста по контекстной рекламе....

07 08 2026 14:51:55

Продажа мебели онлайн — проблемы и решения от SEO и PPC-экспертов

Продажа мебели онлайн — проблемы и решения от SEO и PPC-экспертов Детально заполняйте карточку товара, добавляйте качественные фотографии, делайте акцент на УТП....

06 08 2026 7:22:40

Как создать личный бренд в компании — кейс Алексея Селезнёва, руководителя отдела аналитики Netpeak

Как создать личный бренд в компании — кейс Алексея Селезнёва, руководителя отдела аналитики Netpeak Создание репутации крутого специалиста — дело рук крутого специалиста....

05 08 2026 20:43:54

Реактивационные письма: примеры уместных рассылок для возврата спящих подписчиков

Реактивационные письма: примеры уместных рассылок для возврата спящих подписчиков Как вернуть клиентов с помощью реактивационных email-рассылок. Внутри идеи таких брендов: Bershka, Wildberries, LinguaLeo, Facebook, Mail.ru, Coub, BlaBlaCar, Repka.ua и другие. Узнайте принципы красивой реактивации!...

04 08 2026 23:44:13

Что такое брендовые запросы и нужно ли крутить по ним контекстную рекламу

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

03 08 2026 21:48:41

Как не слить бюджет на клики? Все, что нужно знать о кликфроде

Как не слить бюджет на клики? Все, что нужно знать о кликфроде Как избежать скликивания — инструкция...

02 08 2026 20:27:46

Что такое гонзо-копирайтинг и как его определить?

Что такое гонзо-копирайтинг и как его определить? Примеры креативного авторского стиля копирайтеров, которые старались обыграть УТП продукта, услуги, стремились необычно подать обычное. Узнать больше!...

01 08 2026 2:12:39

Как работает программатик-баинг

Небольшая wiki о программатик-баинг и RTB. Объяснение алгоритма, обзор рынка, мнения экспертов....

31 07 2026 19:45:40

10 расширений для Google Chrome в помощь SEO-специалистам

10 расширений для Google Chrome в помощь SEO-специалистам Отключение и удаление элементов, расширенные настройки, интересные дополнения и многое другое в нашем материале про мир SEO расширений....

30 07 2026 13:41:10

Лучшие примеры ошибки 404

Лучшие примеры ошибки 404 Ошибка на странице 404 может выглядеть креативно. Страница не найдена и не может быть найдена, потому что она в розыске, утеряна, украдена ниндзей, путь заснежен и дороги дальше нет, а принцесса находится в другом замке. О чем это?...

29 07 2026 1:22:39

Как оптимизировать страницы фильтров — руководство для новичков

Как оптимизировать страницы фильтров — руководство для новичков Идеальный вариант — грамотно оптимизировать страницы фильтров уже на этапе разработки сайта...

28 07 2026 22:16:52

Частотность‌ ‌запросов‌ ‌и‌ ‌техника‌ ‌ее‌ ‌определения‌

Частотность‌ ‌запросов‌ ‌и‌ ‌техника‌ ‌ее‌ ‌определения‌ Определение частотности запросов — задача первоочередной важности для составления адекватного семантического ядра, наполнения качественным контентом и контекстной рекламой...

27 07 2026 2:14:44

Email моей мечты, или Как настроить корпоративную почту

Email моей мечты, или Как настроить корпоративную почту Можно открыть корпоративную почту с использованием собственного сервера для принятия/отправки и с использованием стороннего сервиса от яндекс или гугл...

26 07 2026 14:18:21

Facebook ***ytics — подробное руководство по настройке

Как работать с Facebook ***ytics — бесплатным инструментом с богатым инструментарием и лучшей из всех существующих решений интеграцией с платформой Facebook...

25 07 2026 2:12:43

Как работать с задачами — советы от Netpeak

Как работать с задачами — советы от Netpeak Правильная постановка целей, задач и дедлайна — основа успешной работы...

24 07 2026 7:51:51

Интересные Telegram-каналы о бизнесе

Интересные Telegram-каналы о бизнесе От идеи для стартапа до плана развития и масштабирования бизнеса. Познавательные, полезные каналы, которые помогут реализовать смелые бизнес-цели. Узнать больше!...

23 07 2026 11:50:15

20 фактов о развитии мобильных приложений — инфографика

20 фактов о развитии мобильных приложений — инфографика Рынок мобильных приложений и его глобальные тренды из исследования App Annie...

22 07 2026 18:39:39

Как работают смарт-баннеры в Яндекс.Директ — кейс интернет-магазина товаров для сада и огорода

Как работают смарт-баннеры в Яндекс.Директ — кейс интернет-магазина товаров для сада и огорода Решили написать про новый формат рекламы — баннерный...

21 07 2026 14:52:29

Сколько стоил клик Google Ads и Facebook в Украине в первом квартале 2018 года

Сколько стоил клик Google Ads и Facebook в Украине в первом квартале 2018 года Данные по 33,5 миллионов кликов в 26 тематиках и 394 городах...

20 07 2026 14:27:44

Как работать с репутацией медицинского бренда в интернете — кейс Synevo

Как работать с репутацией медицинского бренда в интернете — кейс Synevo Как работать с негативом и что делать, чтобы его было меньше/не было вовсе....

19 07 2026 18:17:35

Как открыть интернет-магазин

Как открыть интернет-магазин О чем следует позаботиться перед созданием интернет-магазина...

18 07 2026 18:38:25

Как ангел-хранитель Sammy помогает продвигать носки

Как ангел-хранитель Sammy помогает продвигать носки Как говорят легенды, на создание дизайна этих носочков Sammy Icon вдохновили рисунки на стенах храма Темпло Майор в древнем городе Теночтитлан. К сожалению, город сейчас разобрали перуанские строители, но память о нем осталась в киевских носках...

17 07 2026 18:46:16

Как отфильтровать внутренний трафик в Google ***ytics

Как отфильтровать внутренний трафик в Google ***ytics Фильтруем свой трафик от сотрудников в Google ***ytics...

16 07 2026 9:52:36

Где лучше заказывать контент для сайта и соцсетей

Где лучше заказывать контент для сайта и соцсетей Как и где найти хорошего автора для вашего сайта: сравнение платформ копирайтинга, форматы оплаты (объем или качество), фишки по выбору фрилансера. Читать дальше!...

15 07 2026 11:24:20

Прием антисептика внутрь, парень-микрофончик и открыть рот за $9: реклама в соцсетях в феврале 2021

Примеры странной, классной и непонятной рекламы в соцсетях из моей ленты за февраль 2021 года...

14 07 2026 10:31:26

8 ненужных пунктов в SEO-аудите

Глоссарий глупых ошибок в аудите от топовых SEO-агентств...

13 07 2026 5:53:39

Как добавить компанию на карты Google и Яндекс

Как добавить компанию на карты Google и Яндекс Как добавить данные о компании на карты Google и Яндекс....

12 07 2026 1:27:25

Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::