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

За этим стоит сложный ML-пайплайн: сначала модель отбирает кандидатов по смысловой близости запроса, затем ранжирует их по релевантности. А поисковые теги помогают системе уловить контекст — в каких ситуациях и по каким запросам ваше приложение должно оказаться в топе выдачи.

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

Как устроен поиск в RuStore

Чтобы пользователь быстрее находил именно то, что ему нужно, поиск в RuStore работает в два этапа — retrieval и ranking. Первый отвечает за отбор кандидатов, второй — за их упорядочивание.

Retrieval 

На этапе retrieval система формирует список приложений, которые по смыслу и тексту максимально близки к запросу. Например, при поиске «тренировки дома» в выборку попадут фитнес-приложения, трекеры активности и сервисы для йоги. 

Retrieval начинается с нормализации запроса: он приводится к базовой форме, чтобы сравнивать не отдельные слова, а смысл. Базовая форма — это, например, когда слово «бегаю» или «бегал» приводится к общему корню «бег». Благодаря этому система понимает, что все варианты относятся к одной теме.

Далее включаются два независимых механизма:

  • Лексический поиск проходит по словам запроса через обратный индекс и находит карточки приложений, где эти слова встречаются. Под анализ попадает (название, описание и теги).

  • Семантический поиск строится на эмбеддингах — это такие числовые представления текста, которые отражают его смысл. Например, у слов «бег» и «тренировка» эмбеддинги будут близкими: система «понимает», что оба они относятся к спорту, хотя сами слова разные. 

В RuStore эмбеддинги заранее вычисляются для карточек приложений на основе информации о приложении. Когда пользователь вводит запрос, для него создаётся собственный эмбеддинг, и далее он сравнивается с эмбеддингами из каталога приложений.

Результаты обоих подходов объединяются в общий пул кандидатов. 

Ranking 

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

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

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

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

Поиск в сторе

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

Чёткий поиск

Чёткий поиск — это запросы, в которых пользователь точно знает, что ищет (поиск по точному названию приложения). Здесь основной сигнал для поиска очевиден: совпадение запроса по названию приложения или бренду продукта. В таких кейсах теги играют вспомогательную роль — они могут немного усилить выдачу по смежным запросам, но не являются ключевым фактором.

Нечёткий поиск

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

Как выбрать теги 

Выбор тегов начинается с чёткой формулы use case — описания того, что делает продукт и для кого он предназначен. Из этого естественно вытекают кандидаты из словаря тегов.

Например, формулировка «фоторедактор с масками и экспортом без водяных знаков, работает офлайн» корректно мапится на теги «Фоторедакторы» и «Фотография». Если добавлены клипы — появляется «Редактирование видео», если есть стикеры — «Эмодзи».

Главный принцип — теги отражают фактическую функциональность, а не желаемые ассоциации. Всё, чего нет в продукте на постоянной основе, не включается в тег-лист.

Структура тегов

Для игр и приложений логика построения различается.

Для игр теги выстраиваются по связке «жанр → режим → сеттинг»: 

  • жанр задаёт механику — «Раннеры», «Три в ряд», «Idle-игра», «Платформеры»; 

  • режим фиксирует способ игры — «Офлайн», «Однопользовательская», «Многопользовательская»; 

  • сеттинг уточняет эстетику или мир — «Пиксельная графика», «Киберпанк», «Средневековое фэнтези».

Для приложений работает трёхуровневая модель:

  • домен определяет предметную область — «Фоторедакторы», «Тренировка», «Инвестиции»; 

  • сценарий описывает тип использования — «Мобильные платежи», «Обмен сообщениями»; 

  • ниша уточняет целевую аудиторию или контекст — «Материнство и детство», «Путеводители».

Баланс ширины и глубины

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

Как оценить широту тега на практике?

  • Поиск. Вбейте в Rustore предполагаемый тег в строку поиска и посмотрите, сколько и каких вариантов приложений система подсказывает. Если появляются десятки разных вариантов — тег широкий.

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

  • Отчёты и аналитика приложения. Изучите, по каким запросам чаще всего находят именно ваше приложение. Если ключевые слова слишком разные, значит тег тянет много разных сценариев.

  • Внешние источники. Используйте инструменты, которые показывают, как часто пользователи ищут определённые запросы и какие темы сейчас в тренде. Это поможет оценить интерес аудитории и выбрать наиболее востребованные ключевые слова.

К примеру, для фитнес-приложения рабочий набор тегов может выглядеть так: «Тренировка», «Бег», «Трекеры физической активности», «Похудение», «Йога». Но только при условии, что все эти сценарии действительно реализованы в продукте.

Проверка на актуальность

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

Также стоит избегать и противоречивых сочетаний тегов: «Офлайн» не сочетается с онлайн-режимами, а жанровые теги не ставятся без соответствующей механики.

Обновление тегов

Теги нужно пересматривать при каждом релизе: появилась устойчивая фича — набор расширяется; убрали режим — тег снимается. Здесь главное — стабильность и точность: лучше одно корректное изменение, чем частые нерелевантные обновления.

Если нужного термина в словаре RuStore не нашлось, можно выбрать ближайший по смыслу и зафиксировать его как временную гипотезу, а также направить запрос в поддержку стора на добавление нового тега.

Примеры корректных наборов тегов
Примеры корректных наборов тегов

Со списком поисковых тегов RuStore можно ознакомиться здесь.

Вместо заключения

Теги — это не просто дополнение к карточке приложения, а полноценная часть поисковой модели RuStore. От их качества зависит не только видимость продукта в выдаче, но и то, насколько точно он попадёт к своей аудитории.

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

А тем, кто хочет глубже разобраться в архитектуре поиска и увидеть, как система работает «под капотом», можно посмотреть доклад с митапа RuStore.

Комментарии (7)


  1. Uolis
    21.10.2025 14:19

    Заходя в РуСтор первое что я делаю - стараюсь очень аккуратно не задеть пальцем всю всплывающую рекламу "поставьте рекомендованное", "один аккаунт", а я всего лишь пытаюсь обновить Госуслуги. Вы делаете ужасный продукт, полностью продолжая традиции майл.ру и прочих навязчивых рекламных помоек. И какая разница какой у вас поиск, если приходиться уклоняться от случайного клика по рекламе...


    1. avost
      21.10.2025 14:19

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


      1. Uolis
        21.10.2025 14:19

        Это был пример. Подставьте туда название того приложения которое уже недоступно в плейсторе, ничего из описанного поведения не изменится, не так ли?