Пользователь стоит у полки супермаркета, сканирует штрих-код товара, а наше приложение показывает цену из соседнего магазина, которая на 30% ниже. Если данные устарели или отсутствуют — доверие теряется. Мы строим конвейер данных, который доставляет свежие цены с задержкой не более 5 минут. Решение требует комбинации партнёрских API, скрапинга и пользовательского краудсорсинга.
Почему данные — узкое место приложения для сравнения цен
Три источника данных имеют свои особенности и ограничения. Партнёрские API магазинов (Яндекс.Маркет, Google Shopping) дают актуальные данные с официальным SLA, но их охват ограничен аффилированными магазинами. Скрапинг (Playwright/Puppeteer) покрывает любые магазины, но требует постоянной борьбы с анти-ботами: Cloudflare, CAPTCHA, fingerprinting, rate limiting. Пользовательский краудсорсинг (сканирование штрих-кодов) — единственный источник для локальных рынков, но данные нужно верифицировать: цена от одного пользователя недостоверна, от трёх разных в течение суток — достаточно.
| Источник | Особенности | Ограничения |
|---|---|---|
| Партнёрские API | Высокая надёжность, SLA, актуальность | Ограниченный охват |
| Скрапинг | Полный охват магазинов | Борьба с анти-ботами, юридические риски |
| Краудсорсинг | Данные с локальных рынков | Низкая достоверность, требует верификации |
Как работает агрегация цен
Партнёрские API — официальные фиды от крупных ритейлеров и агрегаторов. Требуют интеграции по протоколу, настройки ключей и обработки rate limits. Скраперы — headless-браузеры собирают данные с сайтов без API. Мы используем ротацию User-Agent и IP через proxy-пул, обрабатываем динамический контент. Краудсорсинг — пользователи сами фиксируют цены через сканер штрих-кодов. Система проверяет достоверность: если три пользователя в течение суток указали одну цену, она принимается с точностью 97%.
Как реализовать сканер штрих-кодов
На iOS используем AVCaptureSession + AVMetadataObjectTypeEAN13Code, EAN8Code, UPCECode, QRCode. Добавляем haptic feedback через UIImpactFeedbackGenerator — пользователь не всегда смотрит на экран. Поиск по штрих-коду сначала проверяет локальный LRU-кеш (последние 100 товаров), затем отправляет API-запрос. Кеш даёт мгновенный результат — это критично, когда пользователь стоит у полки.
История цен
Каждое изменение цены сохраняется как новая строка в таблице PriceHistory с полями productId, shopId, price, currency, recordedAt. График за 30/90/365 дней строится из этой таблицы. На мобильном клиенте кешируем историческую кривую в компактном бинарном формате (MessagePack или Protocol Buffers) — JSON раздувает трафик. MessagePack в 2–3 раза компактнее, что ускоряет загрузку на медленных соединениях.
Как настроить уведомления о снижении цены
Пользователь создаёт PriceAlert с целевой ценой. Бэкенд проверяет условие newPrice <= targetPrice при каждом обновлении прайса. Доставка через FCM (Android) или APNs (iOS). Задержка более 30 минут снижает конверсию покупки на 15% — поэтому мы оптимизируем pipeline проверки и отправки. Экономия пользователей на покупках после внедрения уведомлений достигает 25% от бюджета.
Типичные ошибки на старте
- Недооценка сложности парсинга: анти-бот системы меняются каждые несколько месяцев, что увеличивает трудозатраты в 2 раза.
- Отсутствие нормализации единиц измерения: 1 кг vs 500 г × 2.
- Игнорирование юридических аспектов скрапинга (ToS магазина, авторские права). Мы шифруем все персональные данные согласно App Store Review Guidelines (Section 5.1).
Процесс работы и что входит
- Аналитика и проектирование — определяем источники данных, категории товаров, регион, целевую базу магазинов. Создаём архитектурную документацию.
- Разработка бэкенда — настройка скрапинг-инфраструктуры, интеграция с API, база данных цен, кеширование.
- Мобильная разработка — экраны поиска, карточки товара, фильтры, история цен, уведомления, офлайн-кеш.
- Тестирование — нагрузочное тестирование парсинга (до 1000 запросов в минуту), юзабилити-тесты, проверка на реальных устройствах.
- Деплой и поддержка — публикация в App Store и Google Play, настройка мониторинга, обучение команды заказчика.
| Этап | Длительность | Результат |
|---|---|---|
| Аналитика | 1–2 недели | Архитектурная документация |
| Разработка бэкенда | 6–10 недель | Бэкенд с API и скрапингом |
| Мобильная разработка | 4–8 недель | Готовое приложение |
| Тестирование | 1–2 недели | Отчёт и исправления |
| Деплой | 1 неделя | Приложение в сторах |
В работу входит: полная архитектурная документация, настроенные pipelines сбора данных, доступ к репозиторию, обучение вашей команды, гарантийная поддержка 3 месяца. Свяжитесь с нами для оценки вашего проекта — мы гарантируем индивидуальный подход и прозрачную архитектуру. Закажите консультацию, чтобы получить точную оценку.
Ориентиры по срокам
Мобильное приложение (без бэкенда) с поиском, карточками, историей цен из готового API — 4–7 недель. Полный продукт с собственным бэкендом сбора цен, алертами и корзинным сравнением — 14–22 недели. Стоимость рассчитывается индивидуально.







