Задача для аналитиков: повысить эффективность поиска

С объявлением итогов конкурса.

Материал подготовлен при поддержке сервиса Юла

«Юла» — это сервис, где пользователи выкладывают свои объявления. На нём продаются квартиры и самодельные украшения, готовый бизнес или услуги — практически что угодно.

Поиск — один из самых важных продуктов сервиса. К поисковой выдаче относятся как запросы с текстовым поиском, так и запросы на выдачу объявлений в определённой категории и подкатегории.

Большинство запросов делается без дополнительных фильтров, но существенная часть пользователей их использует — отсеивают выдачу по цене или расстоянию, например.

Взглянуть, как это работает, можно на сайте или приложениях iOS и Android.

В чём задача

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

В архиве — три CSV-таблицы. Это сырые логи запросов пользователей: как они искали объявления, какими фильтрами пользовались и связались ли с продавцами.

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

Расшифровка столбцов в таблицах

Условия и призы

На решение есть две недели: закончим принимать работы 28 октября в 23:59. Оценивать работы будет Егор Данилов, директор по продукту «Юлы». Он определит три лучших решения, прокомментирует свой выбор, а их авторы разделят призовой фонд следующим образом:

  • Первое место — 300 тысяч рублей.
  • Второе место — 200 тысяч рублей.
  • Третье место — 100 тысяч рублей.

Что конкретно делать

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

или
Приём работ завершён
(function(d, w, ver) { var s = d.createElement('script'); s.src = 'https://www.google.com/recaptcha/api.js?' + ver; s.async = true; var container = d.getElementById('ula-form-wrapper'); if (container) { s.onload = function() { var ulaForm = d.querySelector('[data-ula-form]'), ulaFile = d.querySelector('[data-ula-file]'); if (!ulaForm) return false; var ulaInputs = [].slice.call(ulaForm.querySelectorAll('input')).slice(0, 3), ulaSubmitBtn = ulaForm.querySelector('[type="submit"]'); ulaInputs.forEach(function(ulaInput) { ulaInput.addEventListener('change', function(e) { ulaInput.parentElement.classList.remove('is-error'); }); }); ulaFile.addEventListener('change', function(e) { var textSpan = ulaFile.parentElement.children[1].children[0], svgIcon = ulaFile.parentElement.querySelector('svg'); textSpan.innerText = getFileName(ulaFile); if (svgIcon) svgIcon.remove(); }); ulaForm.addEventListener('submit', function(e) { e.preventDefault(); var response = (grecaptcha) ? grecaptcha.getResponse() : ''; if (!response.length) return false; if (ulaSubmitBtn.className.indexOf('is-loading') !== -1) { return false; } if (ulaSubmitBtn.innerText === 'Готово!') { ulaSubmitBtn.innerText = 'Отправить'; return false; } for (let i = 0; i < ulaInputs.length; i++) { ulaInputs[i].parentElement.classList.remove('is-error'); if (ulaInputs[i].value.length === 0) { ulaInputs[i].parentElement.classList.add('is-error'); ulaInputs[i].focus(); return false; } } ulaSubmitBtn.classList.add('is-loading'); var formData = new FormData(ulaForm); Promise.all([wait(), ajax(ulaForm.getAttribute('action'), formData)]).then(function(data) { var res = data[1]; ulaSubmitBtn.classList.remove('is-loading'); if (res && res.rm === 'Success') { ulaSubmitBtn.innerText = 'Готово!'; } else { } }).catch(function() { ulaSubmitBtn.classList.remove('is-loading'); }); }); function ajax(url, data) { return new Promise(function(resolve, reject) { var request = new XMLHttpRequest(); request.open('POST', url, true); request.setRequestHeader('X-This-Is-CSRF', 'THIS IS SPARTA!'); request.onload = function() { if (this.status >= 200 && this.status < 400) { var resp = this.response; resolve(JSON.parse(resp)); } else { reject(); } }; request.onerror = function() { reject(); }; request.send(data); }); } function getFileName(input) { var fullPath = input.value; if (fullPath) { var startIndex = (fullPath.indexOf('\\') >= 0 ? fullPath.lastIndexOf('\\') : fullPath.lastIndexOf('/')); var filename = fullPath.substring(startIndex); if (filename.indexOf('\\') === 0 || filename.indexOf('/') === 0) { filename = filename.substring(1); } return filename.slice(0, ); } } function wait() { return new Promise(function(resolve, reject) { setTimeout(function() { resolve(); }, 1000); }); } }; } d.body.appendChild(s); })(document, window, 5);

Помимо изменений, опишите, как будете оценивать результат эксперимента — на какие метрики будете смотреть и почему. Ещё нужно рассказать, что вы предпримите, если эксперимент уменьшит количество контактов по объявлениям.

Огромное спасибо всем, кто принял участие в нашем конкурсе. Мы не ожидали, что получим больше сотни работ.

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

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

  • Анализ данных.
  • Умение построить гипотезы на основе данных.
  • Аргументация решения, исходя из данных.
  • Визуализация предложенного решения.
  • Решение на случай, если предложенный эксперимент уменьшит количество контактов.

В результате в конкурсе победили:

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

Несколько комментариев по присланным работам:

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

Общий срок проведения конкурса: с 14.10.19 по 18.11.2019 (регистрация участников до 28.10.19). Информация об организаторе, правилах, количестве призов, сроках, месте и порядке их получения — на этой странице.

0
239 комментариев
Написать комментарий...
Эдуард Балагуров

Уважаемые участники конкурса. У меня лично сложилось впечатление, что работы предложенные в качестве победителей прям далеко не самые сильные. Безусловно это не отменяет итоги конкурса - не мы его судьи. 
Но мой профессиональный уровень не позволяет согласиться с итогами. 
Поэтому не для массового срача, а для удовлетворения любопытства каждого из нас (всё-таки участников было много) предлагаю здесь разместить ссылку на собственный вариант решения задания. Плюс минус, но наверняка есть что-то поинтереснее. 

Вот для начала мой вариант: https://cloud.mail.ru/public/4AAe/LCKrgfCNU 
Критикуйте на здоровье. Жду ваши варианты.

Ответить
Развернуть ветку
Александр Казанский

У Вас больше про продукт чем про цифры)

Ответить
Развернуть ветку
Сергей Бармин

Я в большинстве своем согласен с Эдуардом. Рискую  быть закидан "непотребствами" за свой комент но все же: Поставленная задача увеличить количество 'контактов'. Можно бесконечно анализировать метрики и смотреть на "маршруты действий" благодаря которым пользователи нажали заветную кнопку КОНТАКТ, но вот первое что заметил я в самом приложении это его неудобство и перегруженность. Я сам не аналитик (точнее только учусь на него) но КМК не нужно быть гением чтобы рассмотреть элементарно простой вариант что отсутствие желаемого КОНТАКТА вызвано простыми недоработками юзер интерфейса. Анализируя ЮЛУ для данного конкурса я неоднократно хотел ее просто закрыть и забыть как страшный сон. Есть безусловно крутые пользовательские решения такие как график "выше/ниже рыночной стоимости" но в остальном мало того что "велосипед неудобный" дак еще и не едет. Зато "покрашен в красивый цвет и наклейки на нем крутые". В первую очередь чтобы добиться желаемого результата нужно внутренний порядок навести. Починить поиск который откровенно говоря кривой. Вообще сделать приложение удобным. Тот же самый авито более понятен и удобен пусть у него и есть свои недостатки. И любой кто скажет мне про "ты просто привык к авито" будет не прав. я всю жизнь на эксплуатировал Windows и последние 2 месяца сижу на Mac и  я безмерно доволен. все удобно и понятно стало сразу и большинство решений максимально интуитивно понятны. Смысл всего этого коммента скорее в том чтобы пожелать разработчикам доработать свое приложение во всех аспектах. сделайте его удобным для пользователя, от этого вырастет количество постоянных пользователей приложения и как следствие количество КОНТАКТОВ.  

Ответить
Развернуть ветку
Эдуард Балагуров

Единственные важные цифры - это количество контактов. 

Ответить
Развернуть ветку
Александр Казанский

Ну вот Егор Данилов так не думает)

Ответить
Развернуть ветку
Эдуард Балагуров

Александр, давайте сюда Ваш вариант )) Вы же что-то отправляли?

Ответить
Развернуть ветку
Александр Казанский

Да пожалуйста) У меня тоже про продукт больше, хотя выводы сделал на базе данных
https://cloud.mail.ru/public/94YG/2TpGeTT7W

А вообще не переживайте Вы так! Будет и на Вашей улице праздник! Это был интересный опыт, спасибо организаторам за интересную задачу)

Ответить
Развернуть ветку
Егор Данилов

Спасибо, Александр. Рад, что конкурс понравился и спасибо за ваше участие!

Ответить
Развернуть ветку
Валерия Смирнова

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

Ответить
Развернуть ветку
Эдуард Балагуров

Я не переживаю за конкурс или приз, например. Как и написал выше, мне уровень компетенции не позволяет согласиться с результатом просто )) 
А в целом - их конкурс, их правила, им решать. Дело же не в этом )

Ответить
Развернуть ветку
Александр Казанский

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

П.С, хотя смущают выводы, про фильтрацию на дистанции. Ведь она имеет среднию конверсию, а один пишет, что наоборот. Тем более как я понял, эта сортировка настроена по умолчанию.

Ответить
Развернуть ветку
Эдуард Балагуров

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

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

Ответить
Развернуть ветку
Александр Казанский

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

Ответить
Развернуть ветку
Huntt Ext

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

Ответить
Развернуть ветку
Эдуард Балагуров

Huntt, а можно Ваш вариант увидеть?

Ответить
Развернуть ветку
Александр Казанский
Тоже с "расстоянием", т.к. покупают б/у то значит у покупателя нет машины, значит важно, чтобы было рядом.

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

Ответить
Развернуть ветку
Эдуард Балагуров

Насчет меньшей роли расстояния в регионах не соглашусь. Это из личного опыта общения с людьми, которые живут в городах численностью от 2-х до 500 тысяч человек. Они все привыкли к своим расстояниям. Если в Москве или Питере путь преодолеваемый за один час не является чем-то особенно ужасным, то в регионе путь в 30 минут может казаться непреодолимым препятствием. Дело в привычке, качестве дорог, доступности транспорта и так далее. 
Но в конечном итоге действительно сыграет роль цена. Согласится ли покупатель за разницу в цене поехать в другое место или не согласится. 

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

Ответить
Развернуть ветку
Александр Казанский

Привычка - согласен. Но помимо того, что расстояние сокращается, так же сокращает и средний уровень жизни =) А значит будет корреляция приоритета в сторону цены еще сильнее.

Ответить
Развернуть ветку
Vl Al

"Если в Москве или Питере путь преодолеваемый за один час" - Любой путь до места встречи нужно умножать на полтора-два. 

Ответить
Развернуть ветку
Валерия Смирнова

тоже не поняла как можно делать вывод про конверсии относительно фильтра по дистанции, если почти 100% поисков идут с таким фильтром по умолчанию)

Ответить
Развернуть ветку
236 комментариев
Раскрывать всегда