Забезпечення CCPA-комплайансу мобільного додатку
CCPA (California Consumer Privacy Act) та його оновлення CPRA — закон штату Каліфорнія, який де-факто став стандартом для US-ринку. Якщо додаток працює з жителями Каліфорнії та бізнес перевищує пороги ($25M річного обороту, або 100K+ споживачів, або 50%+ доходу від продажу даних), CCPA обов'язковий.
Головне відмінність від GDPR: CCPA не вимагає согласия до збору даних. Він вимагає права на відмову (opt-out) від продажу даних та права на видалення. Це змінює архітектуру реалізації.
«Продаж даних» — ширше, ніж здається
CCPA визначає «продаж» дуже широко: будь-яка передача даних третій стороні за «ціннісне вознаграження» — включаючи рекламні сети, аналітичні платформи з behavioral data, data brokers. Передача даних у Facebook SDK для рекламних цілей — це «продаж» за CCPA.
Це означає: більшість додатків з рекламною монетизацією технічно «продають» дані та мають надавати право на opt-out.
«Не продавати мої дані» — технічна реалізація
Кнопка «Do Not Sell or Share My Personal Information» повинна бути помітною — App Store не приймає її спрятаною в 5-й вкладці настройок. По факту — в головному меню настройок профілю.
// Зберігання CCPA opt-out статусу
class CCPAManager {
private let defaults = UserDefaults.standard
private let optOutKey = "ccpa_do_not_sell"
var isOptedOut: Bool {
get { defaults.bool(forKey: optOutKey) }
set {
defaults.set(newValue, forKey: optOutKey)
updateThirdPartySDKs(optOut: newValue)
syncToServer()
}
}
private func updateThirdPartySDKs(optOut: Bool) {
// Meta Audience Network
Settings.shared.isAdvertiserDataCollectionEnabled = !optOut
// Google AdMob — обмежена обробка даних
let extras = GADExtras()
extras.additionalParameters = ["npa": optOut ? "1" : "0"]
// Adjust
if optOut {
Adjust.disableThirdPartySharing()
}
}
}
Важливо: opt-out повинен зберігатися між сеансами та синхронізуватися на сервер — щоб при переустановленні додатку настройка відновлювалася.
Global Privacy Control
Браузери почали підтримувати Global Privacy Control (GPC) — сигнал «не продавати» на рівні HTTP заголовка Sec-GPC: 1. CPRA (оновлення 2023) зобов'язує операторів поважати GPC. У мобільному додатку немає браузерного GPC, але IAB's Global Privacy Platform (GPP) для mobile заповнює цю нішу — зберігає consent string в NSUserDefaults / SharedPreferences за стандартними ключами, що все сумісні SDK читають автоматично.
Права споживачів за CCPA
| Право | SLA | Технічна реалізація |
|---|---|---|
| Право знати | 45 днів | Екран «Мої дані» + виггрузка |
| Право на видалення | 45 днів | Delete account workflow |
| Право на виправлення | 45 днів | Edit profile + синхронізація |
| Право на opt-out | Негайно | «Не продавати» перемикач |
| Право на переносимість | 45 днів | Експорт даних у JSON/CSV |
«Право знати» — не просто список категорій у Privacy Policy. По запиту потрібно надати конкретні дані конкретного користувача за останні 12 місяців. Це означає backend API, який уміє агрегувати дані по userId.
Верифікація запитів
CCPA не дозволяє виконувати запити на видалення без верифікації особистості — інакше зловмисник може видалити дані чужого аккаунту. Допустимі методи: email-верифікація (посилання на пошту), re-authentication у додатку, SMS OTP.
Для зареєстрованих користувачів достатньо re-authentication. Для незареєстрованих запитів (по email або телефону) — двохетапна верифікація.
Обмежена обробка чутливих даних (CPRA)
CPRA додав категорію «sensitive personal information» з правом на обмеження обробки. Включає: SSN, фінансові дані, точну геолокацію, біометрію, дані про здоровʼя, дані про дітей. Для цих даних потрібна окремо кнопка «Limit the Use of My Sensitive Personal Information».
Privacy Notice при збору даних
CCPA вимагає «notice at collection» — сповіщення в момент збору даних. Для мобільного додатку: перед запитом location permission — краткое пояснення, чому та як довго зберігається геолокація. Перед запитом contacts — те ж саме.
Терміни: базова реалізація (opt-out, права на видалення/виггрузку, notice at collection): 2–3 дні. З GPP/IAB інтеграцією та повним backend workflow: 4–6 днів.







