COPPA-відповідність мобільного застосунку: захист дитячих даних

Магазини застосунків блокують дитячі продукти за порушення правил обробки даних, і реліз завмирає. Ми налаштовуємо COPPA-відповідність мобільного застосунку під ключ: вибудовуємо згоду батьків, обмежуємо збір дитячих даних, готуємо документи для перевірки. Підготовка до перевірки відбувається паралельно з розробкою і не гальмує випуск.

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
COPPA-відповідність мобільного застосунку: захист дитячих даних
Складний
~2-3 дні
Часті запитання

Чому COPPA-відповідність ламає реліз мобільного застосунку

Дитячий застосунок ламається не на архітектурі, а на першому екрані реєстрації. Форма запитує email, дату народження, ім'я і відразу тягне за собою збір ідентифікаторів пристрою та подієвої аналітики — те, що в застосунку для дорослих проходить непоміченим.

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

Віковий поріг — друга пастка. Нейтральне поле «дата народження» без логіки розгалуження не вирішує нічого: COPPA прив'язує вимоги не до того, що користувач ввів, а до того, кому адресований продукт і що ви достовірно знаєте про користувача.

Якщо опис, скриншоти й дизайн читаються як дитячі, режим дитячих даних вмикається незалежно від того, чи питали ви вік узагалі.

Далі — підтверджувана згода батьків. Галочка «я батько/мати» не є згодою: потрібен перевірюваний механізм верифікації дорослого, а після нього — обмеження збору до мінімально необхідного для роботи конкретної функції.

Тут же виринають запити на видалення: якщо дані вже пішли в аналітику та сторонні бібліотеки, видалити запис в акаунті недостатньо — потрібен наскрізний шлях стирання по всіх сховищах і копіях.

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

Розбіжність — відхилення на рев'ю, а після релізу — претензії регулятора й ризик блокування застосунку разом з накопиченою аудиторією.

Нижче розбираємо, як це закривається: де ставити віковий бар'єр, як вибудувати підтверджувану згоду і як зробити видалення даних перевірюваним.

Що змінюється після впровадження: вимірюваний ефект

Основний ефект видно на релізному циклі.

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

Оновлення перестає залежати від того, чи пам'ятає конкретний розробник, що в дитячому режимі не можна викликати рекламний модуль: обмеження живе в конфігурації збірки, а не в інструкції для команди.

Запити батьків перестають бути ручною роботою підтримки.

Видалення дитячого акаунта разом із пов'язаними записами запускається з інтерфейсу батьків і йде за регламентом: спочатку дані позначаються, потім вичищаються з основного сховища, резервних копій і зовнішніх сервісів, про кожну операцію залишається запис у журналі.

Частка звернень, які закриваються без участі інженерів, зростає, а час відповіді стає передбачуваним і не залежить від завантаження команди.

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

Вимоги COPPA перестають бути списком, який перечитують перед аудитом, і стають властивостями збірки: автоперевірка запускається на кожній зміні й блокує випуск, якщо в дитячому сегменті з'явився заборонений виклик.

Варіанти організації згоди батьків: порівняння підходів

До підтвердження згоди батьків застосунок не збирає ідентифікатори — ні рекламні, ні аналітичні. Далі все залежить від того, що застосунок уміє показувати без цих даних: звідси вибір між повним блокуванням і роботою в обмеженому режимі.

Варіант Коли підходить Обмеження
Повне блокування до згоди Сценарій тримається на даних: прогрес, профіль, покупки, листування До підтвердження доступний лише екран з поясненням і формою згоди; частина аудиторії втрачається на цьому кроці
Обмежений режим без персоналізації Контент можна показувати анонімно: читання, перегляд, прості завдання Немає збереження прогресу між сесіями, урізана аналітика, реклама лише неперсоналізована
Окремий дитячий профіль Сімейні сервіси, де батько/мати реєструється сам і керує налаштуваннями дитини Потрібна зв'язка «батько/мати — дитина» і окремі правила зберігання, відкликання та видалення даних
Віковий шлюз із розгалуженням Змішана аудиторія: дорослі й діти в одному застосунку Потребує достовірної перевірки віку; у разі хибного проходження відповідає оператор застосунку

Ключовий критерій вибору — що саме залишається працювати без ідентифікаторів. Якщо сценарій на них тримається, залишається повне блокування до підтверджуваної згоди; в інших випадках обмежений режим без персоналізації зберігає продукт живим і знімає більшість ризиків.

Кожен варіант потребує своєї інфраструктури: де зберігається підтвердження, як фіксується відкликання згоди, що видаляється на запит батьків.

Віковий шлюз додає ще й питання достовірності відповіді, а обмеження реклами доводиться закладати в налаштування рекламного блоку, а не в інтерфейс.

Етапи впровадження COPPA-контуру в релізний цикл продукту

COPPA-контур не прикручується за тиждень до релізу: правки зачіпають реєстрацію, аналітику, рекламні модулі та серверну частину. Тому йдемо фіксованою послідовністю — кожен етап залишає артефакт, на який спирається наступний.

  1. Аудит збору даних. Інвентаризуємо всі точки, де застосунок або підключені модулі отримують дані: реєстрація, профіль, аналітика, реклама, звернення до підтримки. Кожній точці присвоюємо клас — дитячі дані, вік під питанням, нейтральні.
  2. Карта потоків даних. Для кожної точки фіксуємо отримувача: наш сервер, зовнішній сервіс, локальне сховище. Відзначаємо, що саме йде і на якій підставі залишається.
  3. Мінімізація та ролі доступу. Прибираємо поля, без яких продукт працює, вимикаємо рекламні ідентифікатори для дитячих профілів. Ролі розводимо так, щоб підтримка й аналітик бачили різний зріз даних.
  4. Сценарії згоди. Проєктуємо екран батьківської згоди, механіку підтвердження, відкликання та видалення. Окремо описуємо поведінку застосунку, поки згоди немає.
  5. Тестування сценаріїв згоди. Проганяємо відмову, відкликання, повторний вхід, зміну пристрою. Збірка не йде далі, якщо хоча б один сценарій збирає дані без підтвердження.
  6. Регламенти підтримки. Описуємо обробку запиту батьків на видалення або копію даних, хто підтверджує дію і в який строк.
  7. Передача документації. Віддаємо карту потоків, опис ролей, чек-лист перевірок і порядок оновлення при додаванні нових модулів.

Далі контур живе в релізному циклі: будь-яка зміна, що зачіпає збір даних, проходить чек-лист до викату.

Що передаємо на руки: конфігурації, схеми та регламенти

Відповідність вимогам до дитячих даних живе не в презентації, а у файлах і регламентах, які можна відкрити й перевірити.

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

  • Схема потоків даних. Карта: які дані збираються в користувача віком до 13 років, куди йдуть, де зберігаються, хто зовнішній отримувач і на якій підставі.
  • Політика зберігання дитячих даних. Строк життя для кожного типу записів, правила автоматичного очищення після закінчення строку та знеособлення перед аналітикою.
  • Журнал згод. Незмінний запис: хто дав згоду, у якій формі, з якою версією тексту і коли; вивантаження за конкретним акаунтом.
  • Регламент видалення на запит батьків. Прийом звернення, строки підтвердження, видалення з основного сховища, резервних копій і в зовнішніх отримувачів, відповідь заявнику.
  • Налаштування за замовчуванням. Що не збирається взагалі, які отримувачі даних заблоковані до підтвердження віку, які дозволи застосунок не запитує.
  • Матриця перевірок перед релізом. Що проганяється автоматично при кожній збірці, щоб нова логіка не відкрила збір даних в обхід згоди.
  • Регламент підтримки. Хто обробляє звернення про дитячі дані, за який строк, кому ескалюється інцидент і як фіксується результат.

Кейс: дитячий застосунок пройшов перевірку без блокування

Дитячий освітній застосунок із сотнями тисяч дитячих акаунтів двічі не проходив перевірку на COPPA-відповідність: магазини повертали збірку через дані неповнолітніх, зібрані без згоди батьків.

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

Що знайшли під час аудиту

Аналітичний модуль записував ідентифікатор пристрою та історію занять раніше, ніж батько/мати підтверджував згоду, — дані дітей уже лежали на серверах. Віковий екран приймав будь-який введений вік, і дитячий режим обходився за один крок.

Видалення було ручним: записи шукали за адресою пошти і в третині випадків не знаходили пов'язані події в журналах.

Що змінили

Згода батьків стала обов'язковим кроком до першого надсилання даних: без підтвердження мобільний застосунок працює в гостьовому режимі й нічого не зберігає.

Дитячі акаунти винесли в окремий контур із каскадним видаленням — профіль, журнали, вкладення й копії в резервних архівах чистяться одним запитом.

Метрики після

Частка відмов під час перевірки знизилася з трьох збірок із п'яти до нуля на десяти оновленнях підряд, час проходження перевірки — з двох-трьох тижнів до чотирьох днів.

Запити на видалення даних закриваються автоматично у восьми випадках із десяти, решта — за дві доби; каскадно видалено десятки тисяч записів.

Що робити, якщо дитячі дані вже збираються?

Якщо застосунок уже працює і збирає дані дітей, зупиняти його не потрібно: перебудова йде поверх чинного продукту. Починаємо з інвентаризації — які поля потрапляють у сховище, де вони пов'язані з акаунтом або ідентифікатором пристрою, що йде в зовнішню аналітику. Зайві потоки вимикаються першими.

Перебудова реєстрації — ключовий етап: згода батьків запитується до збору даних і підтверджується явною дією. Згода заднім числом юридично не працює, тому при наступному вході наявний користувач потрапляє на блокуючий екран, поки батько/мати не підтвердить новий сценарій. Прогрес і куплений контент при цьому зберігаються.

Міграція вже зібраних даних іде за принципом мінімізації: звіряємо каталог полів із тим, що реально потрібно застосунку, і прибираємо зайве — геолокацію, контакти, вільні текстові поля.

Видалення старих записів робимо пакетами з журналом: фіксуємо, що видалено, коли і на якій підставі. Решту знеособлюємо — зв'язок запису з конкретною дитиною втрачається.

Перехідний період розводимо за функціями, а не за датою релізу. Нові встановлення з першого дня живуть за новими правилами, наявні отримують м'яке оновлення зі збереженням сесії.

Окремо перевіряємо офлайн-режим і синхронізацію: скидання згоди не повинно виглядати як втрата прогресу.

На виході залишається відтворюваний регламент: хто видаляє дані на запит батьків і за який строк відповідає на звернення. Саме це й перевіряє аудит.

Технічні сумніви: що уточнюють перед стартом

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

Розбираємо типові сумніви інженерів і продакт-власників, щоб не переробляти сховище й потоки даних після релізу.

Дитина введе будь-який рік народження — перевірка віку взагалі працює?

Працює, якщо екран нейтральний: введення дати, а не кнопка «мені 13 років і більше». Нижче порогу вмикається сценарій згоди батьків — підтвердження платіжним документом, підписаним бланком або дзвінком оператору. Самопроголошений вік вимоги COPPA не закриває.

Що вважається доказом згоди і де воно зберігається?

Не відмітка у формі, а запис: час, спосіб перевірки, версія тексту політики, ідентифікатор батьків і прив'язка до дитячого профілю. Запис незмінний, доступ до нього логується, а вивантаження за конкретним акаунтом займає хвилини.

Чи можна залишити рекламу та зовнішні модулі?

Рекламу без підбору за поведінкою — так; збір ідентифікатора пристрою для профілювання і передача даних третім особам — ні. Аналітику знеособлюємо й агрегуємо, зайві зовнішні модулі вирізаємо до релізу: кожен із них — окремий канал утечі.

Скільки зберігаються дитячі дані?

Рівно стільки, скільки потрібно для заявленої мети. Строк фіксуємо за кожною категорією окремо — профіль, ігрова статистика, записи згоди — і після закінчення видаляємо автоматично, а не на запит; записи згоди зазвичай живуть довше за решту.

Обговоримо задачу: що потрібно від вас на старті

Щоб повернутися до вас з оцінкою та планом робіт, а не із загальними формулюваннями, нам потрібен зріз поточного стану застосунку: які дані він збирає, куди вони йдуть і на якій підставі.

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

  • Сценарії продукту та вікові групи: для кого робиться застосунок, чи є екран вікової перевірки, як визначається вік і що відбувається при введенні значення нижче порогу.
  • Карта потоків даних: які ідентифікатори пристрою, контакти, геолокація, фото та рекламні ідентифікатори збираються, які сторонні бібліотеки аналітики й реклами підключаються і що кожна з них передає назовні.
  • Поточна механіка згоди: як зараз оформлюється згода батьків, які способи підтвердження використовуються, де зберігається факт і версія згоди, чи можна її відкликати.
  • Зберігання та видалення: строки зберігання дитячих даних, обробка запитів батьків на доступ, виправлення та видалення, що при цьому відбувається з резервними копіями й вивантаженнями.
  • Доступи та середовища: репозиторії, схема збірки й релізів, панелі аналітики, консолі магазинів застосунків, тестові облікові записи й пристрої для перевірки сценаріїв.
  • Зовнішні вимоги: правила магазинів для дитячих категорій, вимоги партнера або школи при інтеграції, галузеві обмеження, яким потрібно відповідати.
  • Склад команди та точки ухвалення рішень: хто з боку продукту відповідає за зміни в інтерфейсі згоди, хто випускає збірку і з ким узгоджуються правки текстів.

Після цього ми фіксуємо план: етапи, що змінюється в логіці згоди й потоках даних, які бібліотеки доведеться вимкнути або замінити, як перевіряємо результат і в якому порядку викочуємо зміни, щоб не зламати поточних користувачів.

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

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

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1010
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    903
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1107
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714