Разработка мобильного приложения для кэшбэк-сервиса под ключ
Кэшбэк-сервис — связующее звено между пользователем, магазином и партнёрской сетью. Если атрибуция сломана, бизнес теряет до 30% комиссионных. Типичная ошибка — использование встроенного WebView для трекинга. Неверно выбранный механизм перехода приводит к потере до трети партнёрских комиссий, что напрямую сказывается на доходности сервиса. Именно поэтому мы уделяем особое внимание выбору компонента для открытия ссылок: на iOS это SFSafariViewController, на Android — Chrome Custom Tabs. Эти компоненты гарантируют передачу cookie и корректное начисление кэшбэка, снижая потери атрибуции до минимума. За 5+ лет мы реализовали 15+ проектов и знаем все подводные камни. Мы уже помогли десяткам клиентов запустить свои кэшбэк-сервисы и сэкономить на потерянных комиссиях. Закажите консультацию для детального расчета вашего проекта.
Как работает атрибуция покупок в кэшбэк-приложении?
Атрибуция строится на трекинговых ссылках партнёрских сетей: Admitad, CJ, Impact или собственных. Схема шаг за шагом:
- Приложение открывает трекинговую ссылку:
https://trk.admitad.com/g/xxxxx?uid={userId} - Трекер редиректит в магазин, устанавливает cookie
- Пользователь совершает покупку
- Магазин отправляет конверсию в сеть с
uid - Сеть присылает постбэк на ваш сервер
- Сервер начисляет кэшбэк пользователю с данным
uid
Переход в магазин — через SFSafariViewController (iOS) или Chrome Custom Tabs (Android). Никогда не используйте встроенный WKWebView: его cookie изолированы и не передаются в Safari, что приводит к потере до 30% атрибуции. Chrome Custom Tabs работает быстрее WKWebView на 20% и поддерживает общие сессии браузера — это повышает конверсию переходов в покупки.
Сравнение способов открытия магазина:
| Параметр | WKWebView | SFSafariViewController | Chrome Custom Tabs |
|---|---|---|---|
| Изоляция cookie | Да, изолированы | Нет, общие с Safari | Нет, общие с Chrome |
| Потеря атрибуции | До 30% | < 5% | < 5% |
| Скорость загрузки (относительно) | 1x | 1.2x | 1.2x |
| Возможность кастомизации | Полная | Ограниченная | Ограниченная |
Для iOS используем SFSafariViewController, для Android — Chrome Custom Tabs.
import SafariServices func openShopWithTracking(shop: Shop) { guard let trackingUrl = buildTrackingUrl(shop: shop, userId: currentUser.id) else { return } let safariVC = SFSafariViewController(url: trackingUrl) safariVC.preferredControlTintColor = .systemBlue present(safariVC, animated: true) // Фиксируем переход локально для статистики analyticsService.track(.shopOpened(shopId: shop.id)) } // Android: Chrome Custom Tabs для трекинга val customTabsIntent = CustomTabsIntent.Builder() .setShowTitle(true) .setColorScheme(CustomTabsIntent.COLOR_SCHEME_LIGHT) .build() customTabsIntent.launchUrl(this, trackingUri) Свяжитесь с нами для оценки вашего проекта — мы подберем оптимальную архитектуру трекинга.
Начисление и вывод кэшбэка
Кэшбэк хранится как внутренний баланс пользователя. Статусы начисления:
| Статус | Описание |
|---|---|
| PENDING | Переход зафиксирован, покупка не подтверждена |
| CONFIRMED | Магазин подтвердил покупку (обычно 30–90 дней) |
| AVAILABLE | Доступен для вывода |
| WITHDRAWN | Выведен |
| CANCELLED | Покупка возвращена, кэшбэк отменён |
Для вывода средств мы интегрируем ЮKassa Payouts, Tinkoff Payouts API или МТС Pay — под каждый банк своя специфика. В среднем реализация выплат занимает 1–2 недели. Гарантируем соответствие требованиям App Store Review Guidelines (Section 5.1) и Google Play policies.
Подробнее о настройке push-уведомлений
Push-уведомления — ключевой канал возврата пользователя. Когда кэшбэк по конкретной покупке подтверждается (CONFIRMED → AVAILABLE), мы отправляем пуш с суммой. Также при запуске акций в магазинах — персонализированные предложения на основе истории. Стек: FCM (Firebase Cloud Messaging) для Android, APNs для iOS. Сегментация по интересам, A/B-тестирование текстов. Реализация занимает около 1 недели и включает обработку deep link для возврата в приложение.
Поиск и фильтрация магазинов
Список магазинов — основной экран. Фильтры: категория, размер кэшбэка (фиксированный % или сумма), новизна, популярность. На бэкенде — полнотекстовый поиск через PostgreSQL tsvector или Elasticsearch. Клиент дебаунсирует запросы:
// iOS: поиск с debounce через Combine @Published var searchQuery = "" init() { $searchQuery .debounce(for: .milliseconds(300), scheduler: RunLoop.main) .removeDuplicates() .filter { $0.count >= 2 } .sink { [weak self] query in self?.loadShops(query: query) } .store(in: &cancellables) } Почему стоит доверять разработку нашей команде?
У нас 5+ лет опыта в мобильной разработке, 15+ опубликованных приложений, сертификаты App Store и Google Play. Мы предоставляем полную документацию, исходный код, доступы к сторам и обучение ваших специалистов. Кэшбэк-сервис — сложный продукт с высокой ответственностью за атрибуцию, поэтому мы используем только проверенные трекеры и строго соблюдаем политики платформ. Получите консультацию по архитектуре вашего проекта.
Что входит в работу (deliverables)
- Архитектурная документация (Tech Stack, Flow Charts)
- Исходный код под iOS (Swift 5.9+, SwiftUI/UIKit) и Android (Kotlin, Jetpack Compose)
- Доступы к App Store Connect и Google Play Console с настроенными сертификатами
- Интеграция с партнёрскими сетями (Admitad, CJ, Impact) и выплатными провайдерами
- Push-уведомления (FCM/APNs) с сегментацией по интересам
- Обучение команды (2 часа онлайн) и руководство пользователя
Ориентиры по срокам
Разработка базовой версии (каталог, трекинг, история) занимает 4–6 недель. Вывод средств — ещё 1–2 недели. Полный цикл включая интеграцию с бэкендом — до 10 недель. Стоимость рассчитывается индивидуально после анализа вашего технического задания. Оценим проект бесплатно — свяжитесь с нами.







