Реалізація механізму згоди на обробку даних (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
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Реалізація механізму управління согласием на обробку даних (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 днів.