Avito: как работает коннектор

Скачать .md

В этой статье вы узнаете, как коннектор 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 завершённых дней. Каждый день — отдельное задание: если строк нет, день пропускается и прежние данные сохраняются; если строки есть, весь день удаляется и записывается заново.

Ручная перезагрузка за произвольный период доступна в кабинете и ставит такие же посуточные задания. С учётом минутных пауз между страницами длинный период выгружается заметно дольше, чем у других площадок. При включённой опции «удалить данные» таблица сносится целиком и создаётся заново первой же выгрузкой.

Как считаются деньги

Денежные поля обрабатываются в строгом порядке:

  1. Копейки → рубли. Значения делятся на 100 у полей: все расходы, расходы на объявления, размещение, продвижение, остальные расходы, списанные бонусы. Комиссия и стоимость заказанных/доставленных товаров приходят сразу в рублях — их делить не нужно.
  2. НДС. Выбранные «поля расходов» делятся на (100 + ставка) / 100.
  3. Конвертация валют. Уже очищенная от НДС сумма умножается на курс дня.

Порядок обязателен: сначала перевод в рубли, потом исключение НДС, и только затем пересчёт в другую валюту.

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

НастройкаЧто делает
Аккаунт 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.

Покажем, из чего собирается ваша аналитика

За 30 минут разберём ваши источники и соберём схему: что подключается, что считается само, где цифры разойдутся.

  • Что у вас уже собирается и чего не хватает, чтобы увидеть выручку по каналам
  • Порядок подключения: что заработает за день, а что придётся настроить руками
  • Готовые отчёты на живых данных — расход и выручка рядом, когорты, RFM
Записаться на демо
Дашборд ROMI center со сквозной аналитикой