Сколько стоит платное объявление в авито: цены берутся с потолка? — Личный опыт на vc.ru

возможности, способы — инструкция eLama

Разместить товары на Авито можно бесплатно — но не во всех категориях и не любое количество в месяц. К тому же бесплатное объявление проигрывает в видимости платному. Рассказываем о том, как оплатить рекламу на Авито и при каких условиях это может вам потребоваться.

Размещения на Авито в большинстве категорий бесплатны в пределах определенного лимита на месяц — для каждой категории он свой. Например, в категории «Детская одежда и обувь» можно за 30 дней подать 20 бесплатных объявлений, в категории «Бытовая техника» — 10, а для «Мебели и интерьера» бесплатный лимит составит от трех до 10 объявлений в зависимости от подкатегории.

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

Если вы размещаете от пяти объявлений ежемесячно, вам может быть неудобно оплачивать каждое в отдельности. На этот случай у Авито есть платные тарифы с пакетами размещений на месяц. Кроме удобства и скидки за объем, они дают рекламодателю возможность брендировать страницу и доступ к профессиональным инструментам — например, к статистике и коллтрекингу.

Узнать о тарифах и возможностях Авито для бизнеса можно из статьи евангелиста eLama Константина Найчукова.

Для любого объявления на Авито доступны платные услуги — можно усилить его позиции на сутки или неделю, чтобы получить больше показов, а также сделать его заметнее в выдаче.

Подробнее о дополнительных услугах, которые дают вам преимущество в размещении, читайте в материале в блоге eLama.

Стоимость платного размещения и дополнительных услуг зависит от категории объявления, а также региона подачи.

Получайте до 8% от оборота клиентов на Авито

Продвигайте клиентов на Авито и возвращайте до 8% от их оборотов на площадке. Только для участников партнерской программы eLama

Узнать больше

Одно размещение можно оплатить во время создания или редактирования записи. После создания объявления в платной категории система перенаправит вас к оплате.

Здесь же можно будет выбрать дополнительные услуги — их стоимость добавится к цене размещения.

Чтобы оплатить продвижение уже созданного объявления, войдите в режим изменения публикации: «Мои объявления» → «Активные». Здесь можно кликнуть на «Продвигать» или по заголовку, а далее нажать на «Редактировать» и пролистать страницу вниз.

Здесь Авито предложит вам на выбор услуги продвижения.

Отметьте подходящую и кликайте на «Продолжить», чтобы перейти к прокачке внешнего вида объявления в выдаче.

В приложении Авито всё еще проще: откройте объявление и кликните на «Поднять просмотры» — порядок действий далее будет тот же, что и в десктопной версии.

Перейдите в личный кабинет и выберите «Платные услуги» в левом меню.

Далее система перебросит вас в меню подключения тарифа: нужно будет выбрать категорию и добавить размещения.

Стоимость тарифа будет рассчитана индивидуально — останется только кликнуть на «Оплатить».

В мобильном приложении к настройке тарифа можно перейти так: «Профиль» → «Тариф» → «Настроить тариф».

На Авито доступно пять способов оплаты.

  1. Авито кошелек. Пополните его предварительно в соответствующей вкладке левого бокового меню. Здесь к возможностям пополнения добавится банковский перевод.
  2. Банковская карта. Укажите реквизиты карты и подтвердите перевод с помощью кода, который поступит по SMS или в push-уведомлении банка.
  3. Сбербанк Онлайн. Введите номер телефона, привязанный к нужной карте — счет отобразится в банковском приложении.
  4. ЮMoney. Авторизуйтесь в сервисе, чтобы оплачивать Авито в один клик.
  5. Qiwi Кошелек. Введите номер, привязанный к кошельку — счет отобразится в приложении Qiwi.

В приложении привязанные к вашему номеру карты и кошельки подтянутся в способы оплаты автоматически. При этом можно будет выбрать оплату с другого номера.

Еще удобнее оплачивать рекламу на Авито в личном кабинете eLama — в одном окне с другими рекламными площадками. Вы получите единый пакет закрывающих документов для разных рекламных систем, техподдержку, которая поможет правильно настроить рекламу и продвижение, и возможность постоплаты с отсрочкой до 30 дней. Подробности →

Как обойти платное размещение на Авито в 2022 году

С появлением досок объявлений каждый желающий теперь может продавать ненужные вещи, заявлять о предоставлении услуг и многое другое. Доски объявлений уже прочно вписались в повседневную жизнь общества и пользователи Сети практически каждый день посещают их для поиска какой-то вещи, вакансии, недвижимости или наоборот — для размещения собственного объявления.

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

Мы уже рассказывали пошагово о том, как правильно выкладывать объявления на Авито. Сегодня поговорим о том, какие есть способы обойти платное размещение объявлений и возможно ли это.


О платном размещении

Очень долгое время Авито позиционировал себя как практически бесплатная доска объявлений. Данным фактом пользовались все, кому не лень, и уже совсем скоро на Авито стало легко найти что угодно и за сколько угодно. Огромное количество бизнесменов предпочло продавать свои товары именно на Авито, объясняя это тем, что это именно бесплатно и просто.

Руководство сайта это не устроило и в какой-то момент было принято решение об установке лимитов и платного размещения объявлений. Платное размещение обосновывается повышенной ответственностью самих пользователей, которые их размещают. Также к таким объявлениям подходят с большей продуманностью, поэтому такие объявления в несколько раз качественнее и оригинальнее, чем обычные, что и нужно модераторам площадки.

Х | закрыть

Лимит на бесплатные размещения стал необходим для того, чтобы сами пользователи не могли повторно публиковать одни и те же объявления (так называемые дубли). Это должно помогать покупателям быстрее и легче находить необходимый товар, а предложения продавцов не теряются среди миллионов копий. Так Авито становится эффективнее и для покупателей, и для продавцов.

С момента введения лимитов, в каждой категории осталось лишь небольшое количество бесплатных объявлений, которое может подать пользователь. Из минусов, помимо самого наличия лимитов, пользователи отмечают и то, что учитываются все публикации, даже уже не показанные в общей массе, заблокированные или отклоненные модераторами. То есть, если ваше объявление отклонили на этапе проверке — ваш лимит в данной категории все равно уменьшится. Обновляются лимиты, по словам создателей доски, каждые 30 дней.

Овнеры магазинов ФБ акков про свой бизнес и тренды в арбитраже.

ФБ аккаунты для арбитража трафика

К платному размещению также можно отнести и дополнительные функции для продвижения объявлений, поскольку за них тоже нужно платить. На последнем этапе выкладки объявления каждому пользователю предлагается за дополнительную плату закрепить объявление вверху списка или удвоить показы. Данные функции даются на выбор и при желании от них можно отказаться.

Несмотря на то, что лимиты стали ограничивать, Авито до сих пор остается самой посещаемой площадкой для объявлений, поскольку считается самой удобной. Также стоит отметить и большую работу создателей сайта, которые до сих пор вкладываются в рекламу, усовершенствование функций сервиса и многое другое.


Как обойти платное размещение объявлений

Стоит сразу отметить, что стопроцентного обхода платного размещения объявлений на доске Авито не существует, поскольку это одна из немногих площадок, где максимально качественно относятся к модерации публикуемых объявлений. Также стоит отметить, что если закончились бесплатные объявления — обойти оплату следующего также невозможно.

Но некоторые пользователи, которые недовольны новой политикой площадки, все же пытаются найти способы обхода. Далее мы приведем действующие на данный момент времени.

5 шагов как начать зарабатывать на настройке Яндекс Директ. Осталось 20 бесплатных мест на вебинар

  1. Размещение нескольких товаров в одном объявлении. Данный способ весьма прост: в одном объявлении собираете несколько вещей или предметов, находящихся в одной категории. Однако и здесь есть несколько правил, которые обязательно стоит учесть перед публикацией. Во-первых, категорически нельзя в описании давать характеристики каждой вещи. Во-вторых, на фото также должны присутствовать сразу несколько вещей. Название объявлению можно давать как «Лот женской одежды» или «Набор мелочей для автомобиля». В-третьих, если нужно, чтобы вещи продавались единично, можно указать в описании о возможности продажи поштучно, а не все разом. Благодаря данному способу можно продать сразу несколько вещей, а в лимитах будет потрачена лишь одна единица бесплатных объявлений.

  1. Размещение объявлений в схожих категориях. Данный способ не гарантирует стопроцентный обход платных размещений, однако если смотреть на объявления других продавцов, удается это часто. Заключается он в том, чтобы размещать товары в смежных, похожих друг на друга категориях, при условии, что в них не закончились еще бесплатные объявления. Например, стул для кормления детей можно разместить не только в «Товары для детей», но и «Мебель для интерьера».

  1. Редактирование объявлений. Стоит отметить, что очевидное редактирование модераторы сайта сразу пресекают и не допускают такого. То есть, если у вас на руках был сначала планшет, а потом вы захотели поменять данные объявления под продажу телефона — модераторы такого не допустят. Но если речь идет о похожих друг на друга вещах, например, платье схожего цвета и кроя, но отличающееся от предыдущего размером, то такое редактирование вполне возможно. Если есть еще какие-либо различия, то вполне можно указывать, что ответите на вопросы по телефону. В остальном достаточно поменять параметры вещи.

  1. Использование старого объявления. Такой метод подходит под продажи больших партий или одинаковых вещей в разное время. Однако стоит отметить, что если хотите продавать партии — затрат на продвижение не избежать. В целом, способ подразумевает периодическое поднятие и активацию старых объявлений, если их срок уже подошел к концу. Не совсем бесплатно, но выгоды больше, чем раз за разом подавать новые объявления в той же категории.

  1. Создание нескольких аккаунтов. Пожалуй, самый популярный способ попыток обхода платных объявлений. Но подходит данный способ не для разовых продаж, а именно для больших партий или тех, кто зарабатывает на арбитраже трафика. Для создания новых аккаунтов потребуются обязательно свободные сим-карты или виртуальные номера, которые требует площадка как для авторизации аккаунтов, так и для привязки к нему. Виртуальные номера советуют использовать платные, поскольку на бесплатные уже могут быть зарегистрированы другие страницы площадки. Также необходим для каждого аккаунта свой новый IP-адрес и использование разных браузеров. Для этого советуют использовать прокси, так как другие методы получения алгоритмы площадки быстро распознают. Фотографии и тексты объявлений должны отличаться друг от друга и быть оригинальными, так как одинаковость быстро распознается модераторами площадки. Использование данного способа подходит не всем и главная задача — понять, стоит ли оно того, так как затраты все равно будут (те же номера).

  1. Использование парсинга. Последний доступный на данный момент способ, связанный именно с Авито. Парсинг — это полностью автоматизированный сбор данных с сайтов, а затем дальнейшая их структуризация с помощью специальных сервисов и программ. Простыми словами, необходимо найти специальную программу, которая соберет необходимые данные (например, номера телефонов или электронную почту) и структурирует для вас в специальную базу данных. Ну а после этого шага достаточно сделать одну массовую рассылку с вашим предложением. Однако не стоит забывать, что за массовые рассылки Авито может заблокировать аккаунт (иногда такое случается даже ошибочно и приходится писать в поддержку). Поэтому для данного метода пригодятся либо несколько запасных аккаунтов, либо придется писать пользователям напрямую через другие мессенджеры.

Те, кто часто занимаются попытками обхода платных публикаций объявлений, советуют также не заострять свое внимание только на Авито. На данный момент в Сети существует еще огромное количество других досок объявлений, на которых условия размещения публикаций лояльнее или вовсе без лимитов. Главное, что таким образом можно в принципе увеличить охват аудитории, которая сидит на разных площадках. Но в таком случае придется постараться и для каждой доски объявлений создать уникальную публикацию с оригинальными текстом и фото.

Вывод

Бесплатный вебинар по заработку на контекстной рекламе от Partnerkin. Регистрация по ссылке

Как бы не нравились нынешние условия пользования Авито, они уже есть и избежать их — дело трудное. Не стоит забывать, что данная доска объявлений является не только самой популярной, но и прогрессивной за счет качественной модерации всех объявлений, находящихся на ней, и алгоритмов распознавания дублей и других уловок от пользователей. Так или иначе, при огромном желании способы обхода всегда можно найти и испытать на своем аккаунте. Но всегда стоит помнить о рисках и прежде чем пытаться, стоит несколько раз все взвесить и решить — а стоит ли оно того или все-таки нет.

Выкладывали объявления такими способами?

1 голос

Да — 0%
Нет — 100%

 

Kismet Capital Group Holding приобрела 100% Avito у Naspers за $2,4 млрд — компания — Бизнес и Экономика направлено американскими беспилотниками

Подробнее

Лукашенко заявил, что Путин обещает расценить нападение на Беларусь как нападение на Россию

Подробнее

Российский дипломат призвал страны G7 оценить глобальный ущерб, который они нанесли за последние 25 лет

Эти страны нанесли ущерб «на нескольких континентах», подчеркнула Мария Захарова

Подробнее

Южные Курилы, оккупированные Россией, Япония Иностранные Официальные заявления министерства

В последние годы японские власти воздерживались от термина «оккупация», вместо этого предпочитая говорить, что «эти острова находятся под суверенитетом Японии»

Подробнее

Президент Лукашенко исключает наличие ядерного оружия в Беларуси

По сообщению БЕЛТА, Лукашенко назвал подобные домыслы «фейками»

Подробнее

Зеленский принимает предложение Путина, готов к мирным переговорам

Согласно сообщению его пресс-секретарь Сергей Никофоров, ведутся консультации о месте и времени переговоров

Читать далее

Основные боестолкновения российской армии на Украине происходят с неонацистами — Путин

Президент России подчеркнул, что украинские националисты играли роль «заградотрядов» армии

Подробнее

Обзор прессы: Путин начинает операцию по денацификации Украины и ее экономические последствия

Главные новости российской прессы за пятницу, 25 февраля

Подробнее

Иметь ядерное оружие в Украине было бы «золотой мечтой» США — дипломат

Мария Захарова напомнила, что Италия и многие другие страны обладают ядерным оружием США, но не имеют к нему доступа

Подробнее

Контакты Россия-ЕС официально не прерваны — дипломат

В пятницу Комитет министров Совета Европы принял решение лишить Россию права представительства в Комитете министров и в ПАСЕ

Читать подробнее

Киевская делегация прибыла на границу Беларуси для переговоров с Россией — офис президента

«Ключевой вопрос переговоров — немедленное прекращение огня и вывод войск с территории Украины», — говорится в сообщении

Подробнее

Российские войска нанесли высокоточный ракетный удар по военной инфраструктуре Украины

Вооруженные силы России уничтожили более 800 объектов украинской военной инфраструктуры сообщил, что несколько российских солдат взяты в плен

Подробнее

Мэр Киева заявил, что украинская столица окружена

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

Подробнее

Лидеры киевского режима будут неотвратимо наказаны — Минобороны России

Гражданское население ничего не угрожает, заявили в Минобороны

Подробнее

У России еще есть друзья в мире — российский дипломат

Мария Захарова в интервью программе «Вечер» с Владимиром Соловьевым на канале «Россия-1»

Подробнее

Обзор прессы: Почему Путин привел ядерные силы в состояние повышенной боевой готовности, а освобождение Донбасса продолжается

Главные новости российской прессы за понедельник, 28 февраля

Подробнее

ООН не удалось создать условия для прибытия российской делегации на Женевское событие — дипломат

Это ответ генерального секретаря ООН, сказала Мария Захарова

Подробнее

Сдавшиеся украинские войска подтверждают планы Киева массированного наступления на Донбасс — ДНР

Российская спецоперация была проведена очень своевременно, отметил заместитель начальника Народной милиции ДНР Эдуард Басурин

Подробнее

Российская авиация завоевала превосходство в воздухе над всей Украиной — Министерство обороны

Официальный представитель Минобороны России генерал-майор Игорь Конашенков подчеркнул, что » с начала операции ВСУ поразили 1114 объектов военной инфраструктуры Украины

Подробнее

Украинские войска обстреляли населенный пункт в ЛНР из комплексов «Град»

Выпущено 20 ракет

Подробнее

Зеленский спешно бежал из Киева, заявил спикер Госдумы России

«Сбежал во Львов со своим окружением, где ему и его содействию было предоставлено жилье», — сказал спикер

Читать подробнее

Переговоры Москва-Киев начнутся в 12:00 по московскому времени — полпред

По словам главы российской делегации Владимира Мединского, украинская делегация опоздала из-за сложной логистики

Подробнее

Турция раскрывает перспективы прохода российских военных кораблей через Босфор и Дарданеллы

Министр иностранных дел Турции Мевлют Чавушоглу подчеркнул, что Турция и по сей день неукоснительно соблюдает Конвенцию Монтре

Подробнее

Российская делегация прибыла в Беларусь для переговоров с украинцами

Российская делегация готова начать переговоры с Украиной в Гомеле, заявил официальный представитель Кремля Дмитрий Песков

Подробнее

Россия может национализировать имущество граждан США, ЕС в ответ на санкции — Медведев

Он отметил, что России угрожают арестами активов российских граждан и компаний за рубежом — «просто так, без всяких санкций», «в ковер» мода», «назло»

Читать дальше

Путин приказывает «особый режим службы» в силах сдерживания России

Президент России подчеркнул, что страны Запада предпринимают недружественные действия против России и в экономической сфере

Подробнее

Россия способна принять меры по смягчению ущерба от санкций — Кремль

Дмитрий Песков подчеркнул, что у России «есть все возможности и потенциал для этого»

Подробнее

Россия готова показать, что такое настоящая декоммунизация средство для Украины — Путин

Нынешняя Украина полностью создана коммунистической Россией, сказал Путин

Подробнее

Украина предложила Гомель в качестве площадки для переговоров с Россией, говорит Кремль

Россия не будет приостанавливать военную операцию на Украине во время переговоров с украинской стороной, заявил официальный представитель Кремля Дмитрий Песков

Подробнее

Банк России повышает ключевую ставку на 10,5 п. п. до 20%

Внешние условия для российской экономики резко изменились, отметил регулятор

Подробнее

Жилой дом в Киеве поражен ракетой ПВО — источник в Минобороны России

пусковые установки для усиления обороны аэропорта Жуляны

Подробнее

Западная санкционная политика ведет к «третьей мировой войне» — Лукашенко

Он подчеркнул, что белорусские высокотехнологичные предприятия могут помочь России получить заменители западных и азиатских микросхем

Подробнее

Украинский гарнизон на Змеином острове сдачи в плен ВС РФ — Минобороны

82 Украинские военнослужащие сложили оружие и добровольно сдались в плен ВС РФ

Подробнее

Россия, Украина должны разработать дорожную карту и прийти к общей позиции — официальный представитель России

По словам помощника президента РФ Владимира Мединского, российская делегация выехала в Гомельскую область для проведения переговоров с украинской стороной

Подробнее

Россия берет под свой контроль Запорожскую АЭС, заявляет Минобороны

Рабочие АЭС продолжают обслуживать объекты

Подробнее

Пекин заявляет, что Россия не нуждается в военной поддержке Китая в операции на Украине

Китайский дипломат отметил, что позиция Пекина по этому вопросу отличается от взглядов американского руководства

Подробнее

85% сербов всегда будут поддерживать Россию, что бы ни случилось — Президент Вучич

Сербия всегда поддерживала целостность Украины, серб Президент заявил

Подробнее

Франция увеличит военную помощь Украине, ужесточит антироссийские санкции

Президент Франции Эммануэль Макрон намерен принять «меры по замораживанию финансовых активов» российских общественных деятелей на национальном уровне

Подробнее

Украинский кризис спровоцировало игнорирование Западом преступлений неонацистов — спецпредставитель в ООН

Василий Небензя подчеркнул, что страны Запада, участвовавшие в воскресном заседании Совбеза ООН, «не сказали ни слова сочувствия жителям Донбасса». »

Читать дальше

Российских военных встречают с флагами в Мелитополе Украины

Минобороны РФ заверило, что российские войска не нацелены на украинские города, а ограничиваются хирургическими ударами и выводом из строя украинской военной инфраструктуры

Подробнее

Лавров сообщил Чавушоглу, что Москва готова к урегулированию украинского кризиса — МИД

Министр иностранных дел России проинформировал высокопоставленного турецкого дипломата об операции России в Донбассе

Подробнее

Западные страны согласились отключить российские банки от SWIFT

Великобритания, Германия, Италия, Канада, США, Франция и Еврокомиссия договорились о введении новых «жестких финансовых санкций» в отношении России

Подробнее

Российско-украинские переговоры начнутся в понедельник утром — источник

Причиной является логистика украинской делегации, сообщил источник

Подробнее

Байден говорит, что альтернативой санкциям против России будет Третья мировая война серьезная цена за эту краткосрочную и долгосрочную, особенно долгосрочную», — подчеркнул лидер США

Читать далее

Запад покрывал преступления киевского режима, которые привели к украинской трагедии, заявил Лавров

«В течение всего этого периода население ДНР и ЛНР подвергалось издевательствам, многолетним обстрелам со стороны киевского режима, открыто взявшего курс на русофобию и геноцид», — отметил высокопоставленный российский дипломат

Подробнее

Европейский союз закрывает воздушное пространство для России — документ

Однако компетентные органы могут разрешить воздушному судну совершить посадку, взлет или пролет в гуманитарных целях или в любых других целях, соответствующих целям настоящего правила

Подробнее

Премьер-министр Израиля предлагает Путину посредничество в Украине — Кремль

Телефонный разговор состоялся по инициативе Израиля

Подробнее

Украинские военные обстреляли девять населенных пунктов за последние сутки — миссия ЛНР

В результате обстрелов разрушено дома в г. Первомайске добавлена ​​миссия

Подробнее

ФСБ предотвратила теракт в Калужской области России

Спланирована по заказу террористической организации Исламское государство

Подробнее

Система управления метаданными в Авито | Фрол Крючков | AvitoTech

Каждая классификация в какой-то момент своего роста сталкивается с проблемой систематизации, упорядочивания и организации своих метаданных. Почему это так важно? Чтобы ответить на этот вопрос, нам нужно понять несколько основных вещей о метаданных и о том, как они используются.

Скорее всего, вы уже работали с метаданными. Я приведу короткий пример, чтобы вы могли получить представление. Предположим, у вас есть сайт, на котором пользователи могут публиковать информацию о том, что они продают. Чтобы разместить рекламу, продавец заполняет определенные поля, такие как заголовок , категория , цена , местоположение, и т. д. Эти поля, значения списка и типы значений, которые могут заполнять пользователи, являются метаданными. Проще говоря, это данные о данных.

Рисунок 1. Примеры метаданных: название, категория, цена, описание объявления

После того, как продавец подал объявление, ему необходимо оплатить листинг. Эти листинговые сборы обычно основаны на информации в объявлении. Например, цена автомобиля может существенно различаться в зависимости от года выпуска и марки. Или это может быть местоположение, которое больше всего влияет на листинговые сборы. Не очевидно, что скорость и плавность изменения метаданных компании станут узким местом для поиска стратегий монетизации путем проведения A/B-тестов.

Рисунок 2. Использование метаданных в бизнесе

Менее очевидный пример — когда метаданные помогают настроить SEO. Не секрет, что чем больше органического трафика у сайта, тем лучше для бизнеса. Страницы результатов поисковой системы (SERP) и рекламные страницы являются самыми популярными страницами в объявлениях. Рекламные страницы менее интересны, поэтому я опишу случай SERP.

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

Один уникальный канонический URL группирует относительно похожие страницы и заставляет их считаться одной страницей для поисковых систем. Например, пользовательский поиск по всем автомобилям старше пяти лет попадет в один канонический URL «5-year-old-car», даже если пользователь укажет конкретную марку или цвет. Или критерий поиска: «дом напротив пляжа» с дополнительным фильтром типа коттедж или квартира значения не имеет; это будет «перед пляжем». Это простые примеры, но я думаю, что вы поняли идею. Повторюсь: чем быстрее ваша система позволит вам адаптироваться к меняющемуся миру, тем лучше.

На этом этапе вы можете применить один и тот же шаблон ко всем следующим полям:

  • какие данные должен предоставить пользователь;
  • какой тип метаданных, отображаемых в рекламе, приводит к лучшему CTR;
  • обнаружение мошеннических списков;
  • индексация;
  • ценовое предложение;
  • вы называете это.

Мы обсудили преимущества быстрого изменения метаданных. Но что мешает быстро изменить его?

Из рисунка 2 видно, что метаданные объединяют все домены приложения. Вот почему трудно внести изменения в какую-либо его часть. Даже незначительные изменения типа атрибута могут сломать всю систему. Например, изменение одного атрибута из списка значений в форме подачи объявления может нарушить алгоритмы поисковой индексации и монетизации.

Мы хотели, чтобы разные отделы легко принимали решения относительно своих метаданных без взаимодействия с другими отделами. В то же время отделы должны при необходимости синхронизировать метаданные между разными доменами. Например, когда мы хотим добавить обязательное поле в определенную категорию, не нарушая индексацию поиска или удаляя поля, используемые при расчете платы за листинг. Помня об этом, мы определили функциональные требования к нашей системе управления метаданными или информационной модели, как мы ее называем.

Функциональные требования:

  • Решение должно предоставлять инженерам и аналитикам нашего отдела возможность легко вносить изменения в метаданные, такие как добавление, удаление и обновление атрибутов и категорий, а также их типов, значений и параметров.
  • Любые изменения в метаданных пространства конкретного отдела не должны влиять на метаданные других отделов. Если это невозможно, мы должны предупредить пользователей. Например, атрибуты для добавления на десктоп, iOS и Android с разными версиями, пространство атрибутов для поисковой индексации, модерации, поисковых фильтров и визуализации на разных платформах.
  • Каждый отдел (доменное пространство) должен иметь возможность запускать несколько версий своих метаданных одновременно, т. е. для целей A/B-тестирования.

Нефункциональные требования:

  • Система должна легко масштабироваться по горизонтали.
  • Он должен эффективно использовать память и быть быстрым во время выполнения.
  • Должна быть терпима к несоответствию версий.
  • Удобство использования в сети.

Самый простой способ хранить метаданные — встроить их в схему базы данных и жестко закодировать в кодовой базе. Чтобы показать это, мы приступим к нашему первому примеру. После того, как пользователь отправил рекламу, она будет сохранена в таблице базы данных со следующей схемой:

Рисунок 3. Схема таблицы для хранения рекламы

Не поймите меня неправильно. В данном случае это совершенно прекрасный способ сделать вашу схему, и я почти уверен, что в большинстве случаев он достаточно хорош. Однако в нашем случае нам нужно запустить несколько разных категорий. Каждая категория — это целая вертикаль в нашем бизнесе, и каждая вертикальная команда хочет экспериментировать в своей категории, добавляя, удаляя, изменяя столбцы.

Мы также хотим провести A/B-тестирование, добавив новое поле в определенную категорию, чтобы узнать, понравится ли оно пользователям. Это не будет проблемой, если вам не нужно изменить схему и добавить новое поле, что требует блокировки всей таблицы. Это довольно сложно, если вы запускаете базу данных с миллиардами рекламных объявлений. Даже если вы сегментируете базу данных по категориям, вам все равно потребуется выполнить миграцию, установить значения по умолчанию и т.  д. Вторая проблема заключается в том, что для изменения схемы требуется новая фиксация для изменения схемы базы данных и новое развертывание службы для запуска миграции схемы. Это не та беглость, которую мы хотели.

Давайте представим один возможный способ организации схем базы данных, который не потребует от нас выполнения миграций для доставки новых атрибутов:

Рисунок 4. Вообразимое решение для динамических метаданных вокруг атрибутов рекламных объявлений

Ого, пять новых таблиц вместо одной, и еще пара не показаны для простоты. Но не бойтесь. Идея проста: мы превращаем наши столбцы в строки, а остальные — это вспомогательные таблицы для запуска системы. Этот подход называется моделью «сущность-атрибут-значение» (EAV) 9.0308 .

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

  1. Наше приложение должно отвечать за согласованность данных.
  2. При такой нормализованной схеме производительность во время выполнения сильно пострадает.

Другой подход заключается в использовании ориентированного на документы способа хранения структуры атрибутов и данных. Мы оспорили этот подход и пришли к выводу, что если бы мы сохраняли свойства и данные в каждом рекламном документе, это стоило бы нам слишком много памяти. И самое главное, работа со старыми документами в кодовой базе обременительна.

Мы не рассматривали графовые базы данных из-за отсутствия опыта в нашей компании.

Основные идеи, использованные при разработке нашей информационной модели, устарели и хорошо зарекомендовали себя — нормализация для согласованности, денормализация для производительности. Мы пошли по этому пути и придумали два глобальных компонента:

  1. Система управления метаданными с дружественным пользовательским интерфейсом для управления вариациями шаблона EAV.
  2. Фронтенд для бэкенда — высокопроизводительные микросервисы, выполняющие операции с данными во время выполнения. Они используют сильно денормализованный интерфейс данных для внутренней системы для проверки, подготовки к рендерингу и других целей.

После формирования этих глобальных компонентов возник шаблон EAV: как обеспечить согласованность данных на уровне приложения и ускорить его работу во время выполнения.

Рисунок 5. Основные элементы инфомодели

Ядро системы инфомодели состоит из двух основных элементов. Первый — это каталог категорий, атрибутов, значений и возможных отношений. Второй — макет, абстракция, состоящая из трех других элементов, о которых мы поговорим позже.

Каталог

Каталог представляет собой нормализованное хранилище категорий, атрибутов и значений в третьей нормальной форме. Он отражает архитектуру шаблона EAV, рассмотренную ранее, но только его атрибутивную часть. В каталоге есть список категорий, который является корнем для остальных атрибутов. Это список категорий, в которых работает наш бизнес, таких как аренда автомобилей, продажа автомобилей, продажа недвижимости, аренда недвижимости, краткосрочная аренда недвижимости и другие.

Далее идет каталог атрибутов. Атрибуты являются свойством категории. Например, это может быть марка , модель , год выпуска на прокат автомобилей . Для недвижимости это может быть город , район, или кв площадь. Значения являются всеми возможными значениями атрибутов перечислимого типа. Например, для атрибута марка категории авто возможные значения: audi, bmw или ford .

Также каталог отвечает за все возможные отношения между атрибутами и их значениями:

Рисунок 6. Формат отношений между атрибутами и значениями

Чтобы объяснить, почему нам все же нужно сохранить все возможные отношения, нам нужно перейти ко второму основному компоненту инфомодели — макету .

Макет

Макет представляет собой композицию из трех различных компонентов.

Макет

Макет — это имя для трех манифестов, которые описывают поведение, структуру и свойства пространства имен. Компоненты макета решают одну проблему, имеющую две стороны:

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

Отношения отвечают за определенную структуру данных в пространстве имен или макете, как мы называем это внутри. Проще показать на примере с рисунка 7:

Рисунок 7. Пример двух структур отношений одних и тех же метаданных

Как видите, есть две пользовательские истории, в которых мы используем одни и те же метаданные в разных схемах.

Первый случай — подача нового объявления о продаже автомобиля. В этом потоке самым коротким способом для пользователя указать свой автомобиль будет сначала выбрать марку, затем выбрать модель этой марки, затем указать год выпуска автомобиля и так далее. По мере того, как пользователь заполняет поля, становится меньше вариантов для выбора. Мы можем даже заполнить остальные поля автоматически на каком-то шаге, потому что остается только один вариант.

Другой пример: посетитель ищет автомобиль. Они обычно ищут с более широким диапазоном. Таким пользователям проще заполнить марку и модель и выбрать из списка 4–8 поколений, чем подбирать конкретные годы. В таких сценариях в игру вступают отношения. Используя несжатую структуру каталога с картинки 6, мы можем настроить любые отношения компоновки. Эта идея также широко используется при проверке входных данных пользователя.

Форма полей. Следующим элементом макета является форма полей. Этот компонент представляет собой декларативный способ описания полей, отображаемых для пользователя или для внутреннего бэкэнда.

Форма состоит из списка полей, которые связаны с определенными отношениями и атрибутами. Важно то, что здесь объявлены все конфигурации полей. Это означает, что семантически один и тот же атрибут может иметь разные свойства в разных макетах. Например, у нас есть атрибут бренда, и когда пользователь отправляет рекламу, поле выглядит как вход для выбора одной опции. Однако в форме поиска это поле с несколькими вариантами. Форма отвечает за:

  • Список полей атрибутов формы.
  • Связь между полями и фактическими атрибутами формы и каталогом.
  • Свойства полей и самой формы.

Правила. Последний элемент макета — это манифест правила. Это декларативный DSL (предметно-ориентированный язык) для описания поведения полей формы. Этот компонент отвечает за отображение/скрытие, включение/отключение, проверку полей на основе состояния всей формы и даже изменение их свойств и состояний.

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

Управление версиями

Макеты — отличный способ различать разные платформы, домены и отделы. Однако, когда у каждого отдела есть свой набор макетов, они быстро понимают, что хотят запускать несколько версий одного и того же макета одновременно для A/B-тестов или когда мы объединяем старые версии мобильных приложений или внутренних сервисов.

Реализация управления версиями макетов концептуально ничем не отличается от системы контроля версий, такой как Git. Он использует систему ветвления. У нас есть сущности, которые могут меняться: каталоги и макеты (правила, отношения, формы). Мы также знаем, что у нас должна быть возможность запускать столько версий одного и того же макета, сколько у нас есть A/B-тестов.

Это приводит нас к реализации, в которой у вас есть ветки для различных A/B-тестов. Но чтобы использовать конкретную ветку, включая основную ветку, вы должны ее освободить. В момент релиза происходят две основные вещи.

Во-первых, серверная часть объединяет все изменения и выводит их в эффективный формат хранения, к которому можно легко получить доступ во время выполнения. Во-вторых, выпуск тега версии, сгенерированного для того, какая версия макета может быть доступна в производстве. Чтобы поддерживать актуальность метаданных A/B-тестов, вы можете объединить основную ветвь. Слияние основной ветки с A/B-тестированием необходимо, так как вы поддержали все объекты после выпуска версии метаданных, включая те, которые вы даже не трогали. Это происходит потому, что мы решили реализовать стратегию только добавления, которая требует менее сложной реализации.

Маршрутизация

Прежде всего, что такое маршрутизация? Мы уже обсудили множество элементов, таких как версии и макеты. Маршрутизация была придумана для того, чтобы клиент (мобильное приложение, фронтенд-браузер, фронтенд-сервис) мог указать макет и версию для его использования.

Технически маршрутизация — это просто строка, по которой другие службы могут получить доступ к макетам. Он имеет шаблон: {версия}.{имя макета}.{категория}. В реальной жизни это выглядит так: REAL-123. new-adv-mobile.13. Тег версии обычно обозначает задачу Jira, в которой запрашиваются изменения. Однако, если вы хотите отлаживать макет в промежуточной версии, не выпуская новую версию, вы можете указать dev.real-123 в качестве имени тега. Тогда все спецификации будут генерироваться по запросу. Я не буду обсуждать, как это делается в этой статье, потому что это совсем другая тема.

Рисунок 8. Маршрутизация

Здесь менее очевидное наблюдение: наличие категории в маршруте обеспечивает максимальную степень детализации A/B-тестов. Это сделано специально. У каждого отдела или бизнес-вертикали есть своя «песочница» для проведения экспериментов без дублирования с другими отделами. Однако внутри маршрута все конфликтующие A/B-тесты должны быть соответствующим образом организованы внутри одного отдела.

Одна из основных целей новой системы управления метаданными заключалась в том, чтобы убедиться, что мы можем легко вносить новые изменения, в том числе несовместимые с предыдущими версиями. Это невозможно, если серверная часть обслуживает последнюю версию, потому что это приводит к тому, что мы предоставляем новую версию конечной точки для критических изменений. Огромной архитектуре сложно перейти на следующую версию API. Поэтому мы решили изменить эту парадигму и предоставить клиентам ту версию, которую они хотят.

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

Рисунок 9. Макеты как призма для определенных бизнес-доменов

Есть несколько важных вещей, которые макеты делают и не делают:

  • Макет не отвечает за внешний вид форм. Он содержит структуру в виде шагов и свойств полей. Но он действует как конфигурация для интерфейса.
  • Макет не всегда служит визуальным представлением чего-либо. Макет может быть механизмом проверки, представлением данных для внутреннего использования и т.п. Кроме того, макет может выступать в качестве механизма шаблонов для канонических URL-адресов поисковой выдачи.
  • Одновременно можно использовать разные версии одного и того же макета. В основном это происходит с мобильными приложениями, в разных версиях которых используются старые API и A/B-тесты.

На этом этапе мы можем перейти к более техническим деталям:

Рисунок 10. Схема компонентов системы управления метаданными

В системе управления метаданными есть три основных уровня: серверная часть информационной модели, внешняя часть информационной модели. и бытовые услуги.

  • Серверная часть отвечает за внесение изменений в метаданные, загрузку каталогов из внешних источников, выпуск новых версий.
  • Внешний интерфейс отвечает за доступ в режиме реального времени к макетам, каталогам и атрибутам. Наиболее распространенные варианты использования: проверка формы для веб-сайта или мобильного устройства, сборка представления атрибутов для рекламы, сборка формы для рендеринга для веб-сайта или мобильного устройства.
  • Потребительские услуги реализуют бизнес-логику. Это может быть интерфейс, мобильное приложение или внутренний сервис.

Серверная часть EAV для системы управления метаданными более или менее похожа на типичное веб-приложение. Он состоит из реляционной базы данных, одностраничного приложения и нескольких сложных ETL. Здесь вы можете управлять данными каталогов, правил и отношений, создавать макеты, создавать ветки, выпускать новые версии. Однако специфические вещи относятся к нашим внутренним инструментам, например автоматическое тестирование всей системы при внесении изменений в метаданные. Все эти выпуски новой версии информационной модели запускают ряд тестов E2E, чтобы убедиться, что наши пользователи по-прежнему могут добавлять или искать рекламу в каждой категории.

Рисунок 11. Одностраничное приложение бэкенда информационной модели

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

Реализация управления версиями

Стоит упомянуть, как управление версиями реализовано в базе данных. Мы много изучали управление версиями и решили использовать стратегию добавления журнала. Эта стратегия означает, что всякий раз, когда мы делаем даже малейшее изменение, например, исправляем орфографическую ошибку, нам необходимо выпустить новую версию с дублированием всех сущностей: макета, каталогов и т. д.

Для реализации техники версионирования в базе данных , мы решили скопировать всю схему в Postgres со всеми сущностями для новой версии. Мы не обнаружили никаких недостатков этого подхода, за исключением того, что он замедляет работу пользовательского интерфейса инструментов, которые сканируют все схемы для их отображения и управления ими. Несмотря на то, что ограничений на количество схем почти нет, это не так важно, потому что жизненный цикл схемы для каждой версии не длится очень долго и ограничивается продолжительностью разработки версии и ее тестирования. После того, как новая версия инфомодели готова и протестирована, мы ее выпускаем. Но что означает освобождение?

Что происходит на этапе выпуска

Мы выпускаем новую версию инфомодели, когда уверены, что применили все изменения и готовы запустить ее в производство.

Для запуска новой версии в производство мы запускаем сервисы валидаторов и серию E2E-тестов. Они проверяют выпуск новой версии метаданных, чтобы гарантировать, что она не будет семантически разрушать пользовательский опыт. Следующий шаг — сгенерировать манифесты из текущего состояния базы данных и сбросить их в хранилище статических файлов. Вот и все.

Когда клиенты требуют выпущенную версию макета, службы внешнего интерфейса обращаются к этому хранилищу манифестов и подготавливают их для обработки запросов клиентов. Эти файлы распространяются nginx с разным уровнем кэширования, например, etags. Каждый новый выпуск создает дамп новой версии и никогда не затрагивает старые версии, поскольку мы использовали только добавление версий.

Однако, когда мы хотим протестировать конкретную версию в staging, мы не делаем всех этих шагов. Вместо этого манифесты генерируются по запросу. Манифесты могут быть очень большими, поскольку некоторые из них содержат иерархические зависимости данных и могут ухудшить работу пользователя. Чтобы решить эту проблему, вопросы производительности и памяти в продакшене, мы разделяем такие манифесты на иерархические разделы. Это повышает скорость генератора по требованию и увеличивает количество попаданий в кэш для манифестов в рабочей среде.

Распространение релиза

Формат файлов json, которые сохраняются для чтения и интерпретации интерфейсом, будет обсуждаться в части интерфейса. На данный момент стоит отметить, что они никогда не удаляются, а также разбиваются на отдельные части в целях оптимизации для внешних служб. Хранилище обеспечивает легкий доступ ко всем версиям инфомодели, которые когда-либо были выпущены, и мы не беспокоимся о том, что кто-то запросит абсолютные или старые версии, они всегда будут доступны. После выполненного релиза мы архивируем схему базы данных этой версии.

Внешние службы — это базы данных только для чтения со встроенным пользовательским интерпретатором для их упрощенного DSL. Существует три службы: служба компоновки, служба механизма правил и служба создания URL-адресов. Однако из-за архитектуры всей системы они имеют много общих деталей реализации и свойств. Давайте сначала посмотрим на диаграмму компонентов для служб внешнего интерфейса:

Рисунок 12. Диаграмма компонентов для служб внешнего интерфейса

Может показаться, что службы действуют как прокси перед хранилищем. Но это не так, потому что файлы метаданных, находящиеся в хранилище, сами по себе не имеют смысла. Во-первых, вы должны «скомпилировать» файлы метаданных, чтобы выполнять к ним запросы. Кроме того, у сервисов нет нагрузки на запись, и они действительно услуги без гражданства . Это свойство дает нам Неограниченное горизонтальное масштабирование ( по крайней мере, пока сети кластеров k8s не лопнут).

Рисунок 13. Диаграмма потока запросов

Диаграмма потока запросов показывает нам, что службы внешнего интерфейса делают внешние исходящие запросы только в том случае, если запрошенный макет отсутствует в кеше. Это единственный случай, когда нам нужны внешние запросы, в противном случае сервис отвечает на запрос из внутреннего кеша в памяти. Исходящие запросы происходят редко. Они происходят при выпуске новой основной ветки инфомодели, запуске новых A/B-тестов или развертывании сервисов. Но сначала мы должны поговорить о кэшировании.

Освобождение кэша

Сколько макетов экземпляр может одновременно хранить в памяти? В реальном мире ответ — это зависит. Наиболее важными причинами являются количество зависимостей между атрибутами, которые превращаются в объемы ОЗУ, занимаемые службой. Самая глубокая категория Авито с большим количеством атрибутов и взаимозависимостей между ними — категория авто. Только посмотрите на количество зависимостей только для производителя автомобилей Acura:

Рисунок 14. Количество узлов и зависимостей между атрибутами

На данный момент ясно, что мы не можем позволить себе хранить все макеты в памяти. Мы не можем этого сделать из-за огромного размера и постоянно меняющегося количества макетов из-за A/B-тестов и пошаговой разработки системы. Мы должны использовать ограничение, которое представляет собой количество макетов, которые мы можем хранить в памяти одновременно:

Рисунок 15. Использование слота кэш-памяти. Зеленая линия — это выпуск новой версии сервиса

. Однако в нашем случае мы не можем просто использовать стратегию LRU или LFU для вытеснения раскладок. Причина в непропорциональном использовании разных макетов. Например, верстка для проверки подачи новой рекламы встречается на пару раз реже, чем верстка показа атрибутов на странице с рекламой:

Чтобы решить эту проблему, мы выбрали кэш ARC. Кэш Arc отслеживает частоту и давность использования определенного макета. Это помогает не вытеснять макеты, которые получают относительно мало запросов в секунду, но также очень важны. Примером такого макета является отправка нового объявления, которое имеет небольшое количество запросов, но очень важно иметь его в кеше из-за важности не пропустить отправку формы пользователем.

Прогрев кеша

Всякий раз, когда мы развертываем группу экземпляров интерфейсных служб в рабочей среде, они запускаются с пустым кешем. Разогрев на реальных запросах пользователей — плохой опыт для наших потребителей, потому что это может закончиться неудачным запросом на отправку нового объявления. Поэтому мы придумали стратегию разогрева.

Каждая служба знает, что находится в ее кеше в памяти. Таким образом, экземпляр выгружает список макетов в памяти в кластер Redis.

Рисунок 17. Процесс прогрева кэша в памяти

Процесс развертывания выглядит следующим образом:

  • Мы используем стратегию скользящего обновления, которая позволяет нам распределять нагрузку, когда мы чрезмерно загружаем спецификации макетов.
  • Экземпляр переходит к кластерам Redis и получает список используемых в данный момент макетов. После этого он подтверждает собственное успешное развертывание, предоставляя балансировщикам нагрузки k8s проверку работоспособности 200.
  • Служба просматривает список и загружает макеты так же, как и при промахах кеша. Если что-то пойдет не так, экземпляр пропускает этот процесс.
  • После всего этого служба сообщает k8s, что готова обрабатывать запросы.

Рисунок 18. Прогрев кэша перед получением запросов инстансами

Зеленая пунктирная линия на рисунке показывает, когда новые инстансы получили запросы от балансировщика нагрузки. Пик до этого показывает, сколько времени ушло на прогрев конкретного макета.

This entry was posted in Популярное