Что App SDK собирает сам
Краткое содержание
Библиотека автоматически передает технические данные о запуске, сессии, приложении и устройстве. Персональные данные и действия пользователя SDK не собирает, пока приложение само их не передаст. Идентификаторы, состояние сессии и очередь событий хранятся в песочнице приложения, cookie не используются.
Где посмотреть данные
Автоматически передаваемые параметры отображаются в отчетах продуктовой аналитики в разделе «Поведенческая аналитика».
Что хранится на устройстве
В песочнице приложения сохраняются идентификатор установки, состояние сессии и очередь неотправленных на сервер событий.
Что передаётся в каждом событии
В стандартной конфигурации событие содержит имя, тип и заголовок экрана, параметры приложения, объект электронной коммерции (если передан), время с часовым поясом и ссылку (при диплинке). Также передаются идентификаторы клиента (AppSet ID на Android, IDFV на iOS), идентификаторы установки, посетителя, потока, сессии и запуска, а также порядковые номера событий. Информация о приложении включает bundle id, версии приложения и SDK, а на iOS — идентификатор в App Store. Данные об устройстве и ОС включают производителя, модель, бренд, тип устройства, версию ОС и прошивки (Android), разрешение экрана, ориентацию и язык. Состояние устройства и сети передает тип соединения, признак VPN, оператора связи, заряд батареи, свободные ресурсы, тепловое состояние, частоты процессора, статус работы приложения (фон/передний план) и признаки эмулятора или root. Мобильный SDK читает IP-адрес и передает User-agent в HTTP-заголовке. Эти данные нужны для отличия реальных устройств от эмуляторов и корректного анализа технических сбоев.
Служебные события, которые SDK отправляет сам
SDK автоматически отправляет событие установки (install) с данными об источнике из магазина и рекламными метками. На Android дополнительно отправляются периодическое техническое событие, событие возврата пользователя после долгого отсутствия и метрики отрисовки (при включенных метриках производительности). Сведения о сбое уходят только при включенной отправке сбоев.
Рекламные идентификаторы и геолокация
Рекламные идентификаторы передаются для атрибуции установок в рамках разрешений ОС, SDK не запрашивает у пользователя разрешения. На Android передаются GAID (если приложение объявило разрешение) и OAID на устройствах Huawei, на iOS — IDFA (только при разрешении пользователя) и IDFV. Геолокацию SDK не запрашивает и не читает. Если приложение передаст координаты, SDK определит город и страну, отправляя только их.
Отправка сбоев
При включенной отправке передаются стектрейс, причина сбоя, характеристики устройства и версии приложения. По умолчанию на Android и iOS отправка выключена. Сбои отображаются в разделе «Крашлитика». Метрики сети, старта, эксперименты и удаленные настройки включаются отдельно.
Чего App SDK не делает
SDK не читает контакты, SMS, журнал звонков, буфер обмена, список приложений, галерею и файлы. Не делает скриншотов и не записывает экран. Не читает номер телефона и IMEI. Не запрашивает у пользователя разрешений. Не собирает персональные данные, если их не передает приложение.
Домены, к которым обращается App SDK
Мобильные потоки используют домен m-api вместо api. Домен m-api.a.mts.ru используется для отправки событий всегда и для конфигурации экспериментов/настроек (если они используются). Домен itunes.apple.com используется на iOS для получения идентификатора приложения в App Store.
После установки Android SDK или iOS SDK библиотека передаёт в МТС Аналитику технические данные о запуске, сессии, приложении и устройстве.
Персональные данные и действия пользователя SDK не собирает, пока приложение само их не передаст.
Полный список параметров для отчётов — в статье Параметры событий App. Как передать свои события — в статье Разметка приложений.
App SDK не использует cookie. Идентификаторы, состояние сессии и очередь неотправленных событий хранятся в песочнице приложения.
Где посмотреть данные
Параметры, которые SDK передаёт автоматически, отображаются в отчётах. Отчёты продуктовой аналитики — в разделе «Поведенческая аналитика».
Что хранится на устройстве
В песочнице приложения лежат:
- идентификатор установки;
- состояние сессии;
- очередь событий, которые ещё не ушли на сервер.
Что передаётся в каждом событии
В стандартной конфигурации в событие попадают:
Событие
- имя, тип и заголовок экрана;
- параметры, которые передало приложение;
- объект электронной коммерции — если приложение его отправило;
- время события по часам устройства с часовым поясом;
- ссылка — если переход был по диплинку.
Идентификаторы и сессия
- идентификатор клиента — на Android это AppSet ID, который Google выдаёт приложениям одного разработчика. На iOS — IDFV, который система выдаёт приложениям одного вендора без разрешений;
- идентификатор установки;
- идентификатор посетителя;
- id потока, сессии и запуска;
- порядковые номера событий.
Приложение
- bundle id
- версия приложения и номер сборки;
- версия SDK;
- на iOS — идентификатор приложения в App Store: SDK запрашивает его у Apple по bundle id.
Устройство и ОС
- производитель, модель, бренд, тип устройства;
- ОС и версия, на Android — версия прошивки;
- разрешение экрана, ориентация, язык.
Состояние устройства и сети
- тип соединения, признак VPN;
- оператор связи и его цифровой код;
- заряд, идёт ли зарядка, энергосбережение;
- свободные память и диск, тепловое состояние, частоты процессора;
- работает ли приложение на переднем плане или в фоне;
- признаки эмулятора и отладочной сборки, на Android — признак root.
Мобильный SDK читает IP-адрес сетевого интерфейса устройства.
User-agent передаётся в HTTP-заголовке запроса.
Они нужны, чтобы отличать реальные устройства от эмуляторов и автоматического трафика и корректно читать технические сбои. Обрыв сессии при разряде батареи, нехватке памяти или перегреве в отчётах выглядит иначе, чем уход пользователя.
Служебные события, которые SDK отправляет сам
Помимо событий разметки SDK сам отправляет события:
- установку приложения (install) — при первом запуске, с данными об источнике из магазина (Google Play, RuStore, AppGallery), включая рекламные метки, если установка пришла из кампании;
На Android дополнительно:
- периодическое техническое событие: SDK сообщает, что приложение ещё работает;
- событие возврата пользователя после долгого отсутствия;
- метрики отрисовки — если включены метрики производительности.
Сведения о сбое уходят только при включённой отправке сбоев — см. раздел ниже.
Рекламные идентификаторы и геолокация
Рекламные идентификаторы нужны для атрибуции установок из рекламных кампаний. SDK передаёт их в пределах разрешений операционной системы и сам разрешения у пользователя не запрашивает.
| Платформа | Что передаётся | Когда |
|---|---|---|
| Android | Рекламный идентификатор Google (GAID), на устройствах Huawei — OAID, плюс AppSet ID | GAID собирается, только если приложение само объявило разрешение. SDK разрешение не запрашивает и удаляет его из манифеста. Как объявить разрешение — в статье Android SDK |
| iOS | IDFA, статус разрешения на отслеживание, IDFV | IDFA — только если пользователь разрешил отслеживание в App Tracking Transparency. Без разрешения поле пустое. Диалог показывает приложение, не SDK. IDFV iOS выдаёт без разрешений |
Геолокацию SDK не запрашивает и не читает, location-разрешения не объявляет. Если приложение передаст координаты методом setLocation, SDK определит по ним город и страну и отправит только их, не координаты.
Отправка сбоев
При включённой отправке уходят стектрейс, причина сбоя, характеристики устройства, версии приложения и служебные метки сборки для расшифровки стектрейса.
По умолчанию: на Android выключено, на iOS выключено. Управляется параметром конфигурации на стороне приложения.
Сбои отображаются в разделе «Крашлитика».
Метрики сети и старта, эксперименты и удалённые настройки включаются отдельно: Android, iOS.
Чего App SDK не делает
- Не читает контакты, SMS, журнал звонков, буфер обмена, список установленных приложений, галерею и пользовательские файлы.
- Не делает скриншотов и не записывает экран.
- Не читает номер телефона и IMEI.
- Не запрашивает у пользователя разрешений.
- Не собирает персональные данные — они попадают в систему, только если их передаёт приложение.
Домены, к которым обращается App SDK
Домены мобильных потоков отличаются от веб-потоков: m-api вместо api. Это важно, если в приложении ограничены исходящие соединения.
| Домен | Назначение | Когда используется |
|---|---|---|
m-api.a.mts.ru | Отправка событий (protobuf, батчами) | Всегда |
m-api.a.mts.ru | Конфигурация экспериментов и удалённых настроек | Только если они используются |
itunes.apple.com | Идентификатор приложения в App Store по bundle id | Только iOS |