суббота, 28 февраля 2015 г.

Временной анализ Twitter Streaming API

Уже несколько месяцев сайт Прайслайн сканирует сообщения Твиттера в поисках информации о скидках и ценах #прайслайн. Напомню, что для этого используется так называемый Streaming API, который, в отличие от прочих "поисковых" API Твиттера, выдает данные не по запросу, а "толкает" их сам в сторону клиента согласно заданным условиям фильтрации.

Происходить это должно "как бы" в реальном времени, но чудес, как известно, не бывает. На практике задержка между временем создания твита (оно указывается в самом твите) и уведомления о его наличии на стороне "подписчика" Streaming API составляет 5-10 минут. Это косвенно указывает на то, что Твиттер неким образом тасует сообщения между своими серверами, и последовательность твитов не строго отражает их хронологию.

Для сервиса агрегатора цен это вроде бы не критично, однако если представить, что Твиттер будет использован в качестве источника цен на сайте с элементами социального квеста (каким и является прототип Прайслайн), то последовательность поступления может влиять на рейтинг пользователей. Напоминаю, что на Прайслайн цены не могут дублироваться. Если пользователь обнаружил выгодное предложение не первым, он фактически может только подтвердить цену, уже имеющуюся в базе, проголосовав за нее, и тем самым "сказать спасибо" "первооткрывателю".

четверг, 26 февраля 2015 г.

Неоднозначности в информации о ценах - без экспертов не обойтись

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

Для каждого товара необходимо определить одну или две характеристики, по которым продавцы (подавляющее большинство торговых точек) разделяют свое предложение (это видно по наличию нескольких витрин и ценников).

Для наглядности будем рассматривать отдел овощей. Возьмем для начала огурцы. Их, как правило, различают на короткоплодные, среднеплодные и длинноплодные. Страна происхождения может быть интересна покупателю, но не является характеристикой, по которой следует дифференцировать цены. Это также можно определить исходя из предложения - например, огурцы одной и той же категории (как ценовой, так и размера) часто оказываются из разных стран. Прочих характеристик для нележалого товара нет (то есть явная уценка сейчас не рассматривается). Значит размер плода является для огурцов той самой характеристикой, которую следует указывать с ценой.

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

Теперь рассмотрим томаты. Здесь сложности начинаются с самого названия, ведь есть не менее расхожий синоним - помидоры. Какой вариант выбрать - решаем исходя из распространенности в торговых сетях на стадии составления справочника наименований, и затем уже по подсказке системы пользователю будет просто выбрать единственный вариант из справочника. Что же касается характеристик, то в случае с томатами, по результатам мониторинга, выявлены следующие:

  • цвет (часто в ценнике пишется "томаты красные"; это актуально, потому что цвет ассоциируется со спелостью, а в магазинах часто можно увидеть и явно незрелые - желтые или оранжевые - помидоры);
  • на ветке (обычно считаются более качественными и свежими)
  • форма, сорт (например, сливки)
  • размер, сорт (например, черри)
К сожалению или счастью, все эти характеристики оказываются важными и хотя бы одна из них должна быть указана с ценой. В случае отсутствия характеристики пользователь системы будет подразумевать среднестатистический, не особо красный, не особо свежий помидор. Такие тоже есть в достатке в торговых сетях, но сравнивать цены по ним не совсем корректно.

среда, 25 февраля 2015 г.

Основные требования к мобильным приложениям для мониторинга цен

Вне зависимости от того, где аккумулируется и хранится информация о ценах - в Твиттере или отдельной базе - для конечного пользователя важно, чтобы поиск и регистрация выгодных цен были удобно реализованы в мобильных приложениях. Пока что для Прайслайн имеется лишь предварительная версия такого клиентского приложения для Андроид, которое далеко от совершенства. Сегодня я расскажу о некоторых вещах, которые должны быть в нем реализованы.

Для удобного ввода новых цен предполагается супер-простая функция "одной кнопки": пользователь фотографирует ценник в магазине, а приложение распознает с него название товара, количество, цену, штрих-код и подставляет это все в экранную форму. Более того, исходя из текущих GPS-координат устройства в большинстве случаев можно автоматически определить название магазина. Тогда все данные можно сражу же, без вмешательства пользователя, отправить на сервер.

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

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

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

понедельник, 23 февраля 2015 г.

Скидки с подвохом

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

"Обман" происходит очень просто. При покупке второго товара специальная цена действует только на него, а первый идет по обычной цене. При этом на ценнике обычно крупно пишется скидка в процентах, но не делается акцент на том, что скидка эта - только на второй экземпляр. Эффективная скидка, с учетом первого экземпляра, - в 2 раза меньше.

Я намеренно взял слово "обман" в кавычки, потому что формально сделка проходит в точном соответствии с заявленной стоимостью. Но фактически Вы покупаете дороже, чем рассчитывали. Какая горькая ирония: оказывается расчет расчету - рознь.

четверг, 12 февраля 2015 г.

Махинации с ценниками в торговых сетях

Сегодняшний пост будет посвящен не технической стороне проблемы мониторинга цен, а уловкам, которые зачастую выявляются в магазинах в процессе мониторинга. Вот основные приемы (некоторые - стары как мир):

  • "старый ценник" - ценник в торговом зале один, а цена на кассе - уже другая, обычная отговорка - не успели поменять;
  • "левый ценник" - под товаром стоит ценник от другого товара, более дешевого; поскольку цена обычно написана крупно, а наименование - мелко, несоответствие часто выясняется только на кассе;
  • "фантомная скидка" - некоторые магазины практикуют указание скидок по акционным товарам отдельной строкой, то есть цена в чеке указывается стандартная, и кассир озвучивает именно полную цену; если покупатель успевает посчитать в уме и прикинуть, что сумма слишком большая, кассир отвечает, что вот, мол, скидка вам прописана, и отдает сдачу с учетом скидки, однако в противном случае можно лишиться скидки;
  • "цена за грамм" - для особо дорогих товаров, в том числе расфасованных поштучно, и для которых обычно цена указывается за штуку, она на пишется в ценнике, например, за 100г; опять-таки цена написана крупно, а единица измерения мелко, и подвох выясняется только на кассе;
Будьте бдительны! ;-)