В этой статье вы узнаете, как коннектор Avito выгружает данные в хранилище ROMI center: с какой периодичностью, как считаются деньги и что происходит при перезаписи данных. Полный список полей — в статье Avito: описание выгружаемых полей.
Чем Avito отличается от рекламных площадок
Avito — не рекламный кабинет с кампаниями и разметкой ссылок, а статистика объявлений. Единица данных — объявление, а не кампания. Отсюда три отличия, важные при построении отчётов:
| Остальные площадки | Avito | |
|---|---|---|
| UTM-метки | шесть колонок utm_* в каждой строке | их нет вовсе — размечать нечего |
| Расход | одна колонка cost | девять денежных полей на выбор: все расходы, продвижение, размещение, комиссия, бонусы, стоимость заказов и т. д. |
| НДС | приходит без НДС, ROMI center его добавляет | приходит с НДС, ROMI center его исключает |
Периодичность
Выгрузка идёт раз в сутки. Окно по умолчанию — от «сегодня минус 7 дней» до вчера включительно, по одному заданию на день. Текущий день не выгружается.
Avito жёстко ограничивает частоту обращений к статистике, поэтому коннектор выжидает минуту перед каждым запросом страницы (страница — до 1000 объявлений). Чем крупнее аккаунт, тем дольше идёт выгрузка: 5000 объявлений — это уже 5 минут ожидания сверх самой выгрузки.
Важно
Защита от неполной выборки. После обхода коннектор сверяет число полученных объявлений с тем, сколько их обещал API. При расхождении выгрузка падает с ошибкой, и день не перезаписывается — иначе неполная выборка затёрла бы уже собранные данные.
Как сохраняет данные
- Куда: хранилище ROMI center на движке ClickHouse.
- Имя таблицы:
avito_<транслитерированное имя аккаунта>_<id подключения>(напримерavito_client_3). - Структура таблицы: движок
MergeTree, сортировка поstats_day, разбиение на партиции по дню статистики. - Порядок колонок:
stats_day→ выбранные поля объявления и метрики → колонки конвертации валют → служебныеrc_import_id,rc_created_at. - Структура догоняется, а не пересоздаётся. Недостающие колонки добавляются при очередной выгрузке, существующие не удаляются.
- Имена колонок получаются из имён полей API переводом в нижний регистр с подчёркиваниями:
contactsShowPhone→contacts_show_phone.
Перезапись за 7 дней
Avito уточняет статистику задним числом, поэтому каждую ночь перезагружаются последние 7 завершённых дней. Каждый день — отдельное задание: если строк нет, день пропускается и прежние данные сохраняются; если строки есть, весь день удаляется и записывается заново.
Ручная перезагрузка за произвольный период доступна в кабинете и ставит такие же посуточные задания. С учётом минутных пауз между страницами длинный период выгружается заметно дольше, чем у других площадок. При включённой опции «удалить данные» таблица сносится целиком и создаётся заново первой же выгрузкой.
Как считаются деньги
Денежные поля обрабатываются в строгом порядке:
- Копейки → рубли. Значения делятся на 100 у полей: все расходы, расходы на объявления, размещение, продвижение, остальные расходы, списанные бонусы. Комиссия и стоимость заказанных/доставленных товаров приходят сразу в рублях — их делить не нужно.
- НДС. Выбранные «поля расходов» делятся на (100 + ставка) / 100.
- Конвертация валют. Уже очищенная от НДС сумма умножается на курс дня.
Порядок обязателен: сначала перевод в рубли, потом исключение НДС, и только затем пересчёт в другую валюту.
Дополнительные настройки
| Настройка | Что делает |
|---|---|
| Аккаунт Avito | Профиль, из которого берётся статистика. Его имя входит в имя таблицы. |
| Выбор полей | Задаёт набор колонок таблицы. Идентификатор объявления выгружается всегда. Поля названия, адреса, URL и категории заставляют коннектор дополнительно обходить список объявлений. |
| Поле расходов | Указывает, к каким из девяти денежных полей применять НДС и конвертацию валют. Поля, не выбранные на шаге «Выбор полей», игнорируются. |
| НДС | Работает на исключение: расходы приходят из Avito с НДС, и при включённой настройке ROMI center делит суммы на указанную ставку — в отличие от большинства площадок серии, где НДС добавляется. |
| Конвертация валют | На каждую пару «денежное поле × валюта» добавляется колонка <поле>_converted_<валюта> — например all_spending_converted_usd. Исходная валюта всегда рубль: Avito работает только в рублях и валюту в API не возвращает. |
| Пауза коннектора | Останавливает создание новых заданий. |
Примечание
Чего у Avito нет совсем: UTM-настроек (в данных нет ни меток, ни кампаний), фильтра объявлений (выгружается весь аккаунт целиком), признака «данные пришли без UTM-меток» и нескольких отчётов — одна таблица на подключение.
Истёкший или отозванный доступ переводит подключение в состояние ошибки; до починки выгрузка не идёт.
Технические поля
| Поле | Тип | Что означает |
|---|---|---|
rc_import_id | Целое число | Идентификатор прогона выгрузки, которым записана строка. |
rc_created_at | Дата и время | Момент записи строки в хранилище (не время события). При перезаписи дня обновляется у всех строк дня. |
Примечание
В отличие от остальных площадок серии, обе служебные колонки Avito не допускают пустого значения. Также в таблицах Avito нет rc_updated_at и rc_datasource.
