Собесов

Aviasales SERP — альтернативное ранжирование партнёров на странице билета

Кейсы и метрикиРанжирование и экспериментыСредняяMiddle

Условие

На странице билета (десктоп) предложения от разных партнёров отсортированы по цене от меньшей к большей.

Как ещё можно расположить предложения от разных партнёров на одном и том же билете? Как оценить эффективность предложенного подхода?

Решение

Подход

Сортировка «по цене» — самый понятный для пользователя сигнал, но он игнорирует:

  • Конверсию покупки на стороне партнёра (юзер кликнул → не смог купить → вернулся).
  • Скрытые комиссии и доплаты (багаж, сервисный сбор) — итоговая цена выше.
  • Качество партнёра: рейтинг, отмены, поддержка.
  • Юнит-экономику для нас: партнёры с высокой комиссией зарабатывают нам больше.
  • Персонализацию: пользователь, ранее покупавший у конкретного партнёра, скорее всего, купит снова.

Альтернативные подходы к ранжированию

  1. По «итоговой цене» (TCP — total customer price). Учитываем багаж, сервисный сбор, обязательные надбавки. Это главный сигнал боли пользователя — реальная сумма к оплате.

  2. По ожидаемому RPC (revenue per click) для нас. RPC = price * cr_pay * commission_rate. Партнёр с низкой ценой, но низким CR_pay и низкой комиссией — внизу.

  3. По «балансу выгоды»: цена и качество. Скоринг score = α * (1 - normalized_price) + β * partner_cr + γ * partner_rating. Параметры — обучаем.

  4. Персонализированное. ML-модель ранжирования (LTR — Learning to Rank) с фичами: текущая цена, prior юзера на партнёра, исторические CR партнёра в сегменте, гео, тарифный класс. Метрика обучения — NDCG/click-through.

  5. По best-fit для сегмента маршрута. Например, на «Москва → Сочи бизнес-класс» партнёр X стабильно лучший, на «лоукост в Турцию» — Y.

  6. «Highlight + sort by price». Минимально инвазивно: оставляем сортировку по цене, но помечаем «лучший» партнёр (значок «рекомендуем», если RPC > X и quality > Y).

Реализация — оценка эффективности

A/B-тест с рандомизацией по поисковой сессии (sticky по user_id).

Декомпозиция метрик (в порядке убывания важности):

Метрика Формула Что показывает
Revenue per Search (RPS) sum(commission) / searches главное — на сколько стало больше денег
Click-through to partner clicks / search-views насколько изменилось взаимодействие с выдачей
CR клик→покупка purchases / clicks улучшилось ли качество кликов
Bounce из партнёра возвраты к нам в выдачу сорвался ли юзер у партнёра
Refund rate возвраты денег системные проблемы
Time-to-purchase время от поиска до покупки UX-сигнал

Гарды: RPC > 0, partner_diversity (нельзя оставлять только одного партнёра в топе), latency.

Сегментный анализ обязателен: новые / повторные пользователи; десктоп vs мобайл; тип маршрута (внутренний / международный); ценовой сегмент.

Анализ / интерпретация

Любая «не-цена-первая» сортировка — это потенциальный конфликт с ожиданиями пользователя. Если RPS растёт, но CTR падает резко (юзер не доверяет «не самой дешёвой» опции наверху) — это плохой сигнал, даже если деньги растут в моменте: долгосрочно мы рискуем доверием к платформе.

Подводные камни

  1. Конфликт интересов «дороже = выгоднее нам». Если ранжирование подталкивает к более дорогим партнёрам — это работает в краткосроке, но убивает позиционирование «самые низкие цены».
  2. Чёрный ящик. ML-ранжирование без объяснимости — пользователь не поймёт, почему «дешёвый внизу». Нужна возможность пересортировать «по цене» руками.
  3. Cold start для нового партнёра. Если ранжируем по историческому CR — новый партнёр всегда внизу. Нужны bayesian smoothing или эксплорация (epsilon-greedy / Thompson sampling).
  4. Проблема дисплея. Многие юзеры смотрят только топ-3. Если лучший по цене — на 4 позиции, его конверсия рухнет.
  5. Network-effect для партнёров. Партнёры с низким CTR могут уйти с платформы — теряем разнообразие.
  6. Sample Ratio Mismatch и кеширование. Кеш выдачи — частая причина SRM в подобных тестах.

Альтернативы

  • Mixed sorting: 80% юзеров видят «по цене», 20% — «оптимальная для нас» (контролируемая эксплорация).
  • Two-stage ranking: первый этап — фильтрация (отрезаем партнёров с низким качеством), второй — сортировка по цене внутри валидных.

Эталонный ответ

Альтернативы к сортировке по цене: total customer price, RPC, баланс цена/качество, персонализация LTR, highlight «рекомендуем». Эффективность оцениваем A/B-тестом с decision-метрикой Revenue per Search, гардами на CTR/refund/bounce и обязательным сегментным анализом. Главный риск — потеря доверия пользователя, поэтому нужны guardrail-метрики на UX и возможность ручной сортировки «по цене».

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти