Приватность и GDPR
Какие данные хранятся, сколько и как удалить данные пользователя по запросу.
appmetrica.online собирает минимум данных, нужный для отчётов: технический контекст сессии и непрозрачные идентификаторы. Ни рекламных идентификаторов, ни IP-адресов, ни персональных данных в явном виде система не хранит.
Что хранится
| Данные | Пример | Зачем |
|---|---|---|
install_id | 6f1c2a9e-3b7d-4c55-8a2e-0d9b1f7e4c21 | Установка приложения |
user_id | a3f9c2d1-77b4-… | Склейка установок одного аккаунта |
Время события, session_id, duration_ms | — | Сессии и их длительность |
| Платформа, ОС и её версия, версия и сборка приложения, модель и тип устройства, язык | iOS 26.0.1, iPhone17,3, ru-RU | Разбивки отчётов |
| Страна и город | RU, Москва | Разбивка по географии |
| Окружение | production | Отделение тестовых событий |
Данные лежат в собственных ClickHouse и Postgres на выделенном сервере в ЕС и не передаются третьим лицам.
Чего нет
- IP-адреса. IP используется только в памяти, чтобы определить страну и город, и сразу отбрасывается. Его нет в базах, логах, метриках и отклонённых событиях.
- Email и телефоны. Сервер отклоняет
user_id, похожий на email или телефон, с кодомuser_id_looks_like_pii. - Рекламные идентификаторы (IDFA, GAID), отпечатки браузера, cookie сторонних доменов.
Ответственность клиента — не передавать в user_id публичные идентификаторы, по которым легко найти
человека. Внутренний ID аккаунта подходит, Telegram ID — только в виде HMAC (см.
Боты и бэкенды).
Сроки хранения
| Данные | Срок |
|---|---|
| События | 25 месяцев |
| Первое появление установки и пользователя, связки установок с аккаунтами | 25 месяцев с последней активности |
| Отклонённые события (вкладка «Интеграция») | 7 дней |
| Дневные агрегаты отчётов | Без срока: в них нет идентификаторов |
Если установка молчит 25 месяцев, её история удаляется целиком, и вернувшийся пользователь считается новым.
Удаление по запросу
Право на удаление выполняется по install_id, по user_id или для всего приложения. Удаление по
user_id стирает события этого пользователя и всех установок, привязанных к нему. Прошлые дни, в
которые он был активен, пересчитывает ближайшее закрытие дней после завершения удаления; оно идёт раз
в 15 минут.
Запустить удаление можно двумя способами:
- в дашборде — из профиля человека, кнопка «Удалить данные»;
- через Read API ключом со scope
delete:
curl -sS -X POST "https://api.analytics.example.com/v1/apps/$APP_ID/deletion-requests" \
-H "Authorization: Bearer $AM_SK" \
-H "Content-Type: application/json" \
-d '{"subject_type": "user", "subject_value": "a3f9c2d1-77b4-4e0a-9c1e-2b5d8f6e1a90"}'Ответ 202 возвращает запрос со статусом pending. Удаление выполняется в фоне. Повтор с теми же
параметрами, пока запрос не завершён, вернёт тот же запрос. Статус проверяется так:
curl -sS "https://api.analytics.example.com/v1/apps/$APP_ID/deletion-requests/$REQUEST_ID" \
-H "Authorization: Bearer $AM_SK"Статус done означает, что данные удалены из всех таблиц. Если удаление не удалось после нескольких
попыток, статус станет failed, а владелец получит уведомление в Telegram.
Слияние приложений
Если одно приложение подключено как два — например, iOS и Android отдельно, — их можно объединить:
«Настройки → Опасная зона → Объединить…» в приложении, которое останется. События, отклонённые события
и ключи записи переносятся в него, приложение-источник удаляется, а люди с одним user_id в двух
приложениях становятся одним человеком. Ключи источника продолжают работать, поэтому выпущенные версии
приложений обновлять не нужно.
Слияние не меняет состав данных: переносятся только события владельца между его же приложениями, IP по-прежнему не хранится. Перенесённые события сохраняют свою дату, поэтому срок хранения 25 месяцев считается от неё, а не от даты слияния.
Пока по любому из двух приложений выполняется удаление по запросу, начать слияние нельзя: сначала
дождитесь статуса done. После слияния удаление данных пользователя запрашивается в приложении, которое
осталось. Слияние не отменяется — перед ним стоит сделать бэкап.
Выгрузка данных пользователя
Для запроса на доступ к данным откройте профиль человека в дашборде или запросите
getProfile через Read API: там первое и последнее
появление, установки, устройства и лента сессий.
Атрибуция
Геолокация по IP — база IP Geolocation by DB-IP (лицензия CC BY 4.0).