# Google Search Console: как работает коннектор

В этой статье вы узнаете, как коннектор Google Search Console выгружает данные в хранилище ROMI center: с какой периодичностью, как устроены таблицы и что происходит при перезаписи данных. Это не рекламный коннектор — здесь нет расходов, UTM-меток и кампаний. Полный список полей — в статье [Google Search Console: описание выгружаемых полей](https://help-ru.romi.center/google-search-console-opisanie-vygruzhaemyh-polej).

## Три таблицы: одни и те же метрики в разных разрезах

Одно подключение наполняет три таблицы. Метрики во всех одинаковые — клики, показы, CTR, позиция; отличается только глубина разбивки. Выбора таблиц и полей у коннектора нет — наполняются все три.

| Таблица | Разбивка | Строка = |
| --- | --- | --- |
| `…_totals` | без разбивки | день × тип поиска × тип агрегации |
| `…_simple` | страна и устройство | день × страна × устройство × тип агрегации |
| `…_detailed` | страница, запрос, страна, устройство | день × страница × запрос × страна × устройство |

Имя таблицы: `gwm_<транслитерированный сайт>_<id подключения>_<набор>` (например `gwm_client_1_detailed`).

В каждой строке есть два ключевых измерения: **тип поиска** (обычный, картинки, видео, новости, Google Новости, Discover) и **тип агрегации** (по страницам или по сайту целиком). В колонку агрегации пишется фактическое значение из ответа Google — оно может отличаться от запрошенного, если для этого типа поиска запрошенное недоступно.

> **Важно**
> Всегда фильтруйте по типу поиска и типу агрегации. Google считает клики и показы по-разному в зависимости от агрегации: без фильтра любая сумма по таблице будет завышена в несколько раз — в ней лежат данные шести типов поиска в двух агрегациях одновременно.

## Периодичность

Выгрузка идёт раз в сутки. Окно по умолчанию — от «сегодня минус 7 дней» до вчера включительно, по одному заданию на день; ручная перезагрузка работает за любой период. Свежие дни в Search Console обычно пустые — данные появляются с задержкой в два-три дня, поэтому окно и сделано семидневным.

Коннектор ориентируется на даты, которые Google вернул для обычного поиска в агрегации по страницам: если за день данных там не оказалось, разбивки `simple` и `detailed` за этот день не запрашиваются вовсе, даже если по другим типам поиска данные есть.

## Как сохраняет данные

*   **Куда:** хранилище ROMI center на движке ClickHouse.
*   **Структура таблиц:** все три таблицы разбиты на партиции по дню. Сортировка — по дате, типу агрегации и типу поиска; у краткой и подробной таблиц добавляются страна с устройством, у подробной — ещё страница и запрос.
*   **Структура догоняется, а не пересоздаётся.** Недостающие колонки добавляются при очередной выгрузке.

## Перезапись и запаздывание данных

Google досчитывает статистику несколько дней, поэтому каждую ночь перезаписываются последние семь дней. Перезапись дня — это удаление строк за эту дату с последующей вставкой новых. Для таблицы `totals`: если данных за день нет, день не трогается и прежние строки сохраняются; если данные есть — день удаляется и записывается заново.

Для `simple` и `detailed` логика жёстче:

> **Важно**
> Пустой разрез стирает день. Если Google подтвердил, что данные за день есть, но подробная или краткая разбивка вернулась пустой, коннектор всё равно удалит строки за эту дату и не запишет ничего взамен. У итоговой таблицы `totals` такого поведения нет — она в этой ситуации остаётся нетронутой. На практике это заметно при временных сбоях выдачи данных: подробная таблица за день может опустеть, тогда как итоги за него сохранятся.

## Дополнительные настройки

| Настройка | Что делает |
| --- | --- |
| Сайт (ресурс) | Подтверждённый в Search Console ресурс, данные которого выгружаются. Его адрес входит в имена таблиц. |
| Пауза коннектора | Останавливает создание новых заданий. |

Ошибки доступа проверяются по двум признакам: жив ли доступ к аккаунту Google и виден ли в нём выбранный ресурс. Потеря доступа к ресурсу фиксируется отдельно — например, если у аккаунта отозвали права на сайт.

## Технические поля

| Поле | Тип | Что означает |
| --- | --- | --- |
| `rc_created_at` | Дата и время | Момент записи строки в хранилище. Есть во всех трёх таблицах, пустым не бывает. |

> **Примечание**
> Как и у Яндекс Вебмастера, у Google Search Console нет `rc_import_id` — отследить конкретный прогон по строке нельзя. Нет также `rc_updated_at` и `rc_datasource`.
