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

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

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

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

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

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

Взглянуть, как это работает, можно на сайте или приложениях 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 
Критикуйте на здоровье. Жду ваши варианты.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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