
Когда пользователь открывает RuStore и вводит запрос вроде «тренировки дома» или «обои с кошками», он ищет не конкретное приложение, а способ решить задачу. Наша цель, как стора, — понять, какое приложение действительно поможет ему это сделать.
За этим стоит сложный ML-пайплайн: сначала модель отбирает кандидатов по смысловой близости запроса, затем ранжирует их по релевантности. А поисковые теги помогают системе уловить контекст — в каких ситуациях и по каким запросам ваше приложение должно оказаться в топе выдачи.
Меня зовут Анастасия Войцешко, я продакт-менеджер в RuStore. В этой статье расскажу, как устроен поиск внутри стора, какую роль теги играют и как подобрать их так, чтобы повысить шансы приложения попасть в релевантную выдачу.
Как устроен поиск в RuStore
Чтобы пользователь быстрее находил именно то, что ему нужно, поиск в RuStore работает в два этапа — retrieval и ranking. Первый отвечает за отбор кандидатов, второй — за их упорядочивание.
Retrieval
На этапе retrieval система формирует список приложений, которые по смыслу и тексту максимально близки к запросу. Например, при поиске «тренировки дома» в выборку попадут фитнес-приложения, трекеры активности и сервисы для йоги.
Retrieval начинается с нормализации запроса: он приводится к базовой форме, чтобы сравнивать не отдельные слова, а смысл. Базовая форма — это, например, когда слово «бегаю» или «бегал» приводится к общему корню «бег». Благодаря этому система понимает, что все варианты относятся к одной теме.
Далее включаются два независимых механизма:
Лексический поиск проходит по словам запроса через обратный индекс и находит карточки приложений, где эти слова встречаются. Под анализ попадает (название, описание и теги).
Семантический поиск строится на эмбеддингах — это такие числовые представления текста, которые отражают его смысл. Например, у слов «бег» и «тренировка» эмбеддинги будут близкими: система «понимает», что оба они относятся к спорту, хотя сами слова разные.
В RuStore эмбеддинги заранее вычисляются для карточек приложений на основе информации о приложении. Когда пользователь вводит запрос, для него создаётся собственный эмбеддинг, и далее он сравнивается с эмбеддингами из каталога приложений.
Результаты обоих подходов объединяются в общий пул кандидатов.
Ranking
На этапе ranking система решает, какие из найденных кандидатов окажутся выше в поисковой выдаче. За это отвечает модель ранжирования на деревьях решений, обученная специально под поисковую задачу. Она учитывает десятки факторов и взвешивает их так, чтобы наверху оказались не просто похожие, а действительно полезные приложения.
Главную роль здесь играют поведенческие сигналы. Мы смотрим, как пользователи взаимодействуют с приложениями: просматривают ли карточку, устанавливают ли приложение, оставляют ли оценки, просматривают ли скриншоты и т.п. Эти данные помогают понять, насколько приложение действительно интересно и полезно людям, а значит, отражают реальную релевантность выдачи.
Ни один из перечисленных сигналов не является решающим — итоговая позиция приложения складывается из их комбинации: модель балансирует между точным совпадением, смысловой близостью и реальной пользой для людей. При это если пользователи по похожим запросам регулярно выбирают конкретное приложение и ставят ему высокие оценки, это усиливает его позиции в выдаче.
Как это работает с тегами. На этапе retrieval теги помогают расширить пул кандидатов: они дают шанс приложению попасть в выборку даже без точных совпадений в тексте. Дальше модель ранжирования ориентируется на поведение пользователей: если приложение по этим тегам действительно скачивают, используют и оценивают положительно, оно постепенно поднимается в выдаче.

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

Как выбрать теги
Выбор тегов начинается с чёткой формулы use case — описания того, что делает продукт и для кого он предназначен. Из этого естественно вытекают кандидаты из словаря тегов.
Например, формулировка «фоторедактор с масками и экспортом без водяных знаков, работает офлайн» корректно мапится на теги «Фоторедакторы» и «Фотография». Если добавлены клипы — появляется «Редактирование видео», если есть стикеры — «Эмодзи».
Главный принцип — теги отражают фактическую функциональность, а не желаемые ассоциации. Всё, чего нет в продукте на постоянной основе, не включается в тег-лист.
Структура тегов
Для игр и приложений логика построения различается.
Для игр теги выстраиваются по связке «жанр → режим → сеттинг»:
жанр задаёт механику — «Раннеры», «Три в ряд», «Idle-игра», «Платформеры»;
режим фиксирует способ игры — «Офлайн», «Однопользовательская», «Многопользовательская»;
сеттинг уточняет эстетику или мир — «Пиксельная графика», «Киберпанк», «Средневековое фэнтези».
Для приложений работает трёхуровневая модель:
домен определяет предметную область — «Фоторедакторы», «Тренировка», «Инвестиции»;
сценарий описывает тип использования — «Мобильные платежи», «Обмен сообщениями»;
ниша уточняет целевую аудиторию или контекст — «Материнство и детство», «Путеводители».
Баланс ширины и глубины
Для эффективности поиска важно соблюдать баланс между широкими и узкими тегами. Один–два широких тега дают базовую видимость внутри общей категории. Два–три узких тега помогают выделиться и сегментироваться на конкретную аудиторию.
Как оценить широту тега на практике?
Поиск. Вбейте в Rustore предполагаемый тег в строку поиска и посмотрите, сколько и каких вариантов приложений система подсказывает. Если появляются десятки разных вариантов — тег широкий.
Анализ конкурентов. Сравните, в каких приложениях встречается этот тег: если это почти все продукты из категории, тег слишком общий. Если только часть, и при этом приложения похожи между собой, тег более точный.
Отчёты и аналитика приложения. Изучите, по каким запросам чаще всего находят именно ваше приложение. Если ключевые слова слишком разные, значит тег тянет много разных сценариев.
Внешние источники. Используйте инструменты, которые показывают, как часто пользователи ищут определённые запросы и какие темы сейчас в тренде. Это поможет оценить интерес аудитории и выбрать наиболее востребованные ключевые слова.
К примеру, для фитнес-приложения рабочий набор тегов может выглядеть так: «Тренировка», «Бег», «Трекеры физической активности», «Похудение», «Йога». Но только при условии, что все эти сценарии действительно реализованы в продукте.
Проверка на актуальность
Добавление тегов про запас снижает доверие пользователей. Несоответствие между обещанием и фактическим опытом быстро отражается в поведенческих сигналах. К примеру, тег «Юмор» в фоторедакторе без забавных фотоэффектов может привести ухудшению продуктовых метрик приложения.
Также стоит избегать и противоречивых сочетаний тегов: «Офлайн» не сочетается с онлайн-режимами, а жанровые теги не ставятся без соответствующей механики.
Обновление тегов
Теги нужно пересматривать при каждом релизе: появилась устойчивая фича — набор расширяется; убрали режим — тег снимается. Здесь главное — стабильность и точность: лучше одно корректное изменение, чем частые нерелевантные обновления.
Если нужного термина в словаре RuStore не нашлось, можно выбрать ближайший по смыслу и зафиксировать его как временную гипотезу, а также направить запрос в поддержку стора на добавление нового тега.

Со списком поисковых тегов RuStore можно ознакомиться здесь.
Вместо заключения
Теги — это не просто дополнение к карточке приложения, а полноценная часть поисковой модели RuStore. От их качества зависит не только видимость продукта в выдаче, но и то, насколько точно он попадёт к своей аудитории.
Поэтому правильный подбор тегов — это одновременно про стратегию и про заботу о пользователях. Широкие теги дают охват и помогают попасть в нужную категорию, узкие — создают точки входа для конкретных запросов и сценариев. А регулярный пересмотр тег-листа вместе с релизами поддерживает актуальность и сохраняет согласованность между функциональностью продукта и тем, как его воспринимает поисковая модель. Всё это делает поиск точнее, а пользовательский опыт — понятнее и предсказуемее.
А тем, кто хочет глубже разобраться в архитектуре поиска и увидеть, как система работает «под капотом», можно посмотреть доклад с митапа RuStore.
Uolis
Заходя в РуСтор первое что я делаю - стараюсь очень аккуратно не задеть пальцем всю всплывающую рекламу "поставьте рекомендованное", "один аккаунт", а я всего лишь пытаюсь обновить Госуслуги. Вы делаете ужасный продукт, полностью продолжая традиции майл.ру и прочих навязчивых рекламных помоек. И какая разница какой у вас поиск, если приходиться уклоняться от случайного клика по рекламе...
avost
а зачем вы вообще поставили себе это шпионское приложение? Ведь госуслуги прекрасно устанавливаются и обновляются из обычного плейстора.
Uolis
Это был пример. Подставьте туда название того приложения которое уже недоступно в плейсторе, ничего из описанного поведения не изменится, не так ли?