Перейти к основному содержимому

Что 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. Как передать свои события — в статье Разметка приложений.

Cookie

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 IDGAID собирается, только если приложение само объявило разрешение. SDK разрешение не запрашивает и удаляет его из манифеста. Как объявить разрешение — в статье Android SDK
iOSIDFA, статус разрешения на отслеживание, IDFVIDFA — только если пользователь разрешил отслеживание в App Tracking Transparency. Без разрешения поле пустое. Диалог показывает приложение, не SDK. IDFV iOS выдаёт без разрешений
Геолокация

Геолокацию SDK не запрашивает и не читает, location-разрешения не объявляет. Если приложение передаст координаты методом setLocation, SDK определит по ним город и страну и отправит только их, не координаты.

Методы: Android, iOS.

Отправка сбоев​

При включённой отправке уходят стектрейс, причина сбоя, характеристики устройства, версии приложения и служебные метки сборки для расшифровки стектрейса.

По умолчанию: на 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

FAQ​