Реализация механизма согласия на обработку данных (Consent Management)

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Реализация механизма согласия на обработку данных (Consent Management)
Средняя
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Реализация механизма согласия на обработку данных (Consent Management)

Без CMP (Consent Management Platform) приложение с аналитикой и рекламой нарушает GDPR с первого запуска — Firebase Analytics, Facebook SDK и AppsFlyerначинают собирать данные до того, как пользователь что-либо разрешил. Штраф за это реален. Задача — встроить управление согласиями так, чтобы ни один SDK не инициализировался до явного разрешения пользователя.

IAB TCF 2.2 и почему это важно

IAB Transparency & Consent Framework (TCF) 2.2 — стандарт для рекламной экосистемы. Если приложение использует рекламные сети (AdMob, ironSource, AppLovin), CMP должна быть совместима с TCF. Иначе рекламные партнёры не получат сигнал о согласии, и монетизация ломается.

Сертифицированные IAB CMP: OneTrust, Usercentrics, Didomi, Quantcast Choice. Все имеют мобильные SDK.

Что происходит технически при запуске приложения

До появления CMP диалога — никакого трекинга. После принятия:

  • согласие сохраняется локально (Keychain/Keystore)
  • инициализируются только разрешённые SDK

Схема инициализации:

// iOS, упрощённо
func application(_ app: UIApplication, didFinishLaunchingWithOptions...) {
    ConsentManager.shared.requestConsentUpdate { status in
        switch status {
        case .obtained:
            self.initializeAnalyticsIfAllowed()
            self.initializeAdsIfAllowed()
        case .notRequired: // не в ЕС/UK
            self.initializeAll()
        case .required: // нужен диалог
            break // CMP покажет диалог сам
        }
    }
}

func initializeAnalyticsIfAllowed() {
    guard ConsentManager.shared.hasConsent(for: .analytics) else { return }
    Analytics.configure()
}

На Android аналогично через UserMessagingPlatform (Google UMP) или SDK выбранной CMP.

Google UMP как минимальный вариант

Google User Messaging Platform — бесплатный вариант от Google, интегрируется в AdMob. Подходит для приложений, монетизирующихся только через Google рекламу:

val params = ConsentRequestParameters.Builder()
    .setTagForUnderAgeOfConsent(false)
    .build()

consentInformation.requestConsentInfoUpdate(
    activity, params,
    {
        if (consentInformation.isConsentFormAvailable) {
            loadForm()
        }
    },
    { error -> /* обработать */ }
)

UMP не подходит, если используются сторонние рекламные сети — нужна полноценная TCF-совместимая CMP.

Гранулярные согласия

GDPR требует раздельных согласий по целям. Минимальный набор категорий:

  • Необходимые (Strictly Necessary) — без согласия, нельзя отключить
  • Аналитика (Analytics) — Firebase, Amplitude, Mixpanel
  • Реклама (Advertising) — AdMob, Facebook Audience Network
  • Персонализация (Personalization) — рекомендательные системы
  • Внешние сервисы — Sentry (crash reporting), Intercom (support)

Crash reporting — спорная категория. Технически нужен для работы сервиса, можно аргументировать как necessary. Но если Sentry/Crashlytics передаёт user_id — это персональные данные, нужно согласие.

iOS ATT Framework

На iOS 14.5+ приложения обязаны запрашивать ATTrackingManager.requestTrackingAuthorization перед доступом к IDFA (рекламному идентификатору). Это отдельно от GDPR-согласия — это требование Apple.

ATTrackingManager.requestTrackingAuthorization { status in
    switch status {
    case .authorized:
        // IDFA доступен, можно передавать в рекламные SDK
        let idfa = ASIdentifierManager.shared().advertisingIdentifier
    case .denied, .restricted, .notDetermined:
        // работаем без IDFA, SKAdNetwork для атрибуции
    }
}

Показывать ATT диалог нужно после CMP диалога и желательно с предварительным объяснением зачем это нужно — иначе конверсия разрешений очень низкая.

Хранение и синхронизация согласий

Согласие хранится локально с timestamp и версией документов (Privacy Policy, Terms). При смене версии — повторный запрос. При смене региона пользователя — пересмотр применимых требований.

Логировать согласие нужно серверно: при изменении отправлять на бэкенд {user_id, consent_version, purposes: {...}, timestamp, ip_hash}. Это доказательная база при проверке регулятора.

Сроки реализации CMP с гранулярными согласиями, условной инициализацией SDK, ATT flow на iOS и серверным логированием — 2–3 дня при использовании готовой CMP SDK. Кастомная реализация без готового SDK — до 5 дней.