Розробка системи рекомендацій товарів у мобільному додатку

Зауважимо: коли після впровадження рекомендацій CTR не зростає, причина часто в поганому трекінгу подій. Багато розробників неправильно визначають перегляд товару: використовують `viewDidAppear` — і модель отримує зашумлені дані. Ми будуємо інфраструктуру, яка реально підвищує конверсію. Досвід — 5+

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Розробка системи рекомендацій товарів у мобільному додатку
Складний
від 1 тижня до 3 місяців

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    896
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Зауважимо: коли після впровадження рекомендацій CTR не зростає, причина часто в поганому трекінгу подій. Багато розробників неправильно визначають перегляд товару: використовують viewDidAppear — і модель отримує зашумлені дані. Ми будуємо інфраструктуру, яка реально підвищує конверсію. Досвід — 5+ років у мобільній розробці, 30+ проєктів з рекомендаційними модулями. Гарантуємо дотримання App Store Review Guidelines та політик Google Play. Персоналізація в мобільному e-commerce — не просто тренд, а необхідність: без якісних рекомендацій до 70% користувачів ідуть з порожньою стрічкою. Правильна рекомендаційна система збільшує середній чек на 15–30% і утримання на 20%. Особливо складна ситуація з холодним стартом — коли в додатку мало даних про поведінку. У цьому випадку допомагають heuristics: популярні товари, редакційні добірки, гео-рекомендації.

Архітектура: з чого складається система

Рекомендаційна система складається з трьох шарів, і мобільний додаток бере участь у кожному.

Збір подій. Додаток генерує поведінкові сигнали: перегляд товару, додавання в кошик, покупка, час на екрані, свайп-скрол по стрічці. Ці події надсилаються до аналітичної системи (Amplitude, Mixpanel, Segment, власний Kafka-топік). Якість даних критична: якщо view_product спрацьовує при кожному скролі повз картку — модель отримує зашумлений сигнал. Для коректного impression-трекінгу використовуйте таймер видимості (див. код нижче).

Модель і офлайн-навчання. Персоналізація будується на основі collaborative filtering (за Wikipedia), content-based filtering за атрибутами товару або гібридних підходах. Для e-commerce з холодним стартом (нові користувачі, нові товари) чистий CF не працює — потрібні fallback-стратегії на основі атрибутів. Гібридний підхід дає на 20% більше точності порівняно з чистим CF.

Доставка рекомендацій. Мобільний додаток запитує рекомендації через API, отримує впорядкований список товарів. Тут важливі: час відповіді (< 200ms для inline-блоків), TTL кешу, деградація при недоступності сервісу. 95% uptime сервісу підтримується за рахунок CDN та Redis.

Чому трекінг подій — найвужче місце?

Найчастіше упущення — неправильне визначення «перегляду» товару. viewDidAppear на екрані товару спрацьовує раніше, ніж користувач реально побачив контент. Для impression-трекінгу в списку використовуємо UICollectionView.indexPathsForVisibleItems з таймером:

// iOS: рахуємо impression лише якщо товар видимий > 1 секунди private var impressionTimers: [IndexPath: Timer] = [:] func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) { let timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: false) { [weak self] _ in guard let product = self?.products[indexPath.item] else { return } Analytics.track(.productImpression(productId: product.id, source: .recommendations)) } impressionTimers[indexPath] = timer } func collectionView(_ collectionView: UICollectionView, didEndDisplaying cell: UICollectionViewCell, forItemAt indexPath: IndexPath) { impressionTimers[indexPath]?.invalidate() impressionTimers.removeValue(forKey: indexPath) } 
Деталі реалізації для Android На Android аналог — RecyclerView + кастомний OnScrollListener або ViewTreeObserver.OnGlobalLayoutListener з логікою Intersection Observer. Використовуйте бібліотеку `Transitions Everywhere` для плавної появи.

Інтеграція API рекомендацій

Рекомендації бувають кількох типів з різними точками інтеграції:

Тип Місце в UI Контекст запиту
Homepage feed Головний екран user_id
Similar items Екран товару product_id, user_id
Cross-sell Кошик cart_items[], user_id
Post-purchase Екран «Дякую» order_id, user_id

Для кожного типу — окремий endpoint або параметр placement. Не один універсальний запит «дай мені рекомендації». Кешування: рекомендації головної сторінки кешуються на 30–60 хвилин (NSCache на iOS, Room + WorkManager на Android для фонового підвантаження). Рекомендації на екрані товару — не кешуємо або з TTL 5 хвилин, вони мають враховувати поточну сесію.

Як забезпечити швидкість відповіді рекомендацій?

Час відповіді API — < 200ms для inline-блоків. Використовуємо CDN для статичних fallback-списків, Redis для кешу обчислених рекомендацій. На клієнті — попереднє завантаження наступного блоку при скролі. Якщо сервіс недоступний, показуємо редакційну добірку з локального конфігу. Вартість ліцензії на готовий сервіс розраховується індивідуально.

Холодний старт і fallback

Новий користувач — немає історії, немає вектора. Варіанти:

  • Онбординг з вибором категорій інтересів → передаємо як початкові сигнали
  • Популярні товари в категорії (editorial picks, не просто топ продажів)
  • Geo-based recommendations (що купують у цьому регіоні)

Fallback при недоступності рекомендаційного сервісу: готовий статичний список «редакційна добірка» в конфігу або CDN.

A/B тестування

Система рекомендацій без A/B тесту — це віра в модель. Кожен новий алгоритм перевіряємо через Feature Flags (Firebase Remote Config, Unleash): 10% трафіку на нову модель, метрика — CTR рекомендаційного блоку та конверсія в покупку з attribution_window 7 днів. Для in-app purchases використовуємо StoreKit 2 на iOS та Google Play Billing 6 на Android. Порівняння підходів:

Алгоритм CTR Конверсія Холодний старт
Collaborative Filtering 5% 3% Ні
Content-based 4% 2.5% Так
Гібридний 7% 4.2% Так

Що входить у роботу

  • Аудит поточного трекінгу подій та схеми даних
  • Проєктування event schema: імена, параметри, контекст
  • Інтеграція рекомендаційного API або розробка кастомної моделі
  • Реалізація UI-компонентів: горизонтальний скрол, карусель, inline-блок з impression-трекінгом
  • Налаштування кешування, fallback та офлайн-режиму
  • A/B тестування та визначення метрик успіху
  • Документація та навчання команди

Процес роботи

  1. Аудит поточного трекінгу подій: що вже збирається, що потрібно додати.
  2. Проєктування event schema: назви подій, обов'язкові параметри, контекст.
  3. Інтеграція рекомендаційного API або розробка моделі (якщо немає готового сервісу).
  4. Реалізація UI-компонентів: горизонтальний скрол, карусель, inline-блок, з коректним impression-трекінгом.
  5. Кешування, fallback при помилках, offline-режим.
  6. Налаштування A/B тестування, визначення метрик успіху.
  7. Передача документації та code review.

Орієнтири за термінами

Інтеграція готового рекомендаційного API в існуючий додаток — від 1 до 2 тижнів. Розробка системи з нуля, включаючи збір даних, модель, API та мобільну частину — від 2 до 3 місяців. Вартість розраховується індивідуально після аналізу поточного стеку та обсягу каталогу. Замовте аудит — ми оцінимо вашу систему та запропонуємо рішення. Отримайте консультацію щодо впровадження.