Аналитика Центра приложений (Android)

Важно!

Прекращение поддержки Центра приложений Visual Studio запланировано на 31 марта 2025 г. Хотя вы можете продолжать использовать Центр приложений Visual Studio до полного прекращения его использования, существует несколько рекомендуемых вариантов, на которые можно перейти.

Узнайте больше о сроках поддержки и альтернативных вариантах.

Аналитика Центра приложений помогает понять поведение пользователей и взаимодействие с клиентами для улучшения приложения. Пакет SDK автоматически записывает количество сеансов и свойства устройств, такие как модель, версия ОС и т. д. Вы можете определить собственные пользовательские события для измерения важных для вас вещей. Вся записанная информация доступна на портале Центра приложений для анализа данных.

Если вы еще не настроили пакет SDK в приложении, следуйте инструкциям в разделе Начало работы с пакетом SDK .

Сведения о сеансе и устройстве

После добавления аналитики Центра приложений в приложение и запуска пакета SDK он автоматически отслеживает сеансы и свойства устройства, такие как версия ОС, модель и т. д., без написания дополнительного кода.

код страны;

Пакет SDK автоматически сообщает код страны пользователя, если на устройстве установлен мобильный модем данных и SIM-карта. Устройства только с Wi-Fi не сообщают код страны по умолчанию. Чтобы задать код страны для этих пользователей, необходимо самостоятельно получить расположение пользователя и использовать setCountryCode: метод в пакете SDK:

AppCenter.setCountryCode("en");
AppCenter.setCountryCode("en")

Примечание

Чтобы код страны отображался в сеансах аналитики, AppCenter.setCountryCode необходимо вызвать перед вызовом AppCenter.start.

Настраиваемые события

Вы можете отслеживать собственные пользовательские события с помощью до 20 свойств , чтобы понять взаимодействие между пользователями и приложением.

После запуска пакета SDK используйте trackEvent() метод для отслеживания событий с помощью свойств. Можно отправить до 200 уникальных имен событий. Кроме того, существуют максимальные ограничения на символы:

  • 256 символов на event name.
  • 125 символов на event property name & event property value.
Map<String, String> properties = new HashMap<>();
properties.put("Category", "Music");
properties.put("FileName", "favorite.avi");

Analytics.trackEvent("Video clicked", properties);
val properties = hashMapOf("Category" to "Music", "FileName" to "favorite.avi")
Analytics.trackEvent("Video clicked", properties)

Свойства для событий являются полностью необязательными. Если вы просто хотите отслеживать событие, используйте следующий пример:

Analytics.trackEvent("Video clicked");
Analytics.trackEvent("Video clicked")

Приоритет и сохраняемость событий

Вы можете отслеживать критически важные для бизнеса события, которые имеют более высокую важность, чем другие события.

  • Разработчики могут задать приоритет событий как Обычный (Flags.NORMAL в API) или Критический (Flags.CRITICAL в API).
  • События с приоритетом , для которого задано значение Критическое, сначала извлекаются из хранилища и отправляются перед обычными событиями.
  • Когда локальное хранилище заполнено и необходимо сохранить новые события, сначала удаляются самые старые события с наименьшим приоритетом.
  • Если хранилище заполнено журналами с критическим приоритетом, отслеживание события с обычным приоритетом завершится ошибкой, так как пакет SDK не сможет освободить место в этом случае.
  • Если вы также используете службу аварийного завершения , журналы сбоев задаются как критические и совместно используют то же хранилище, что и события.
  • Интервал передачи применяется только к обычным событиям. Критические события будут отправляться через 3 секунды.

Для отслеживания события как критического можно использовать следующий API:

Map<String, String> properties = new HashMap<>();
properties.put("Category", "Music");
properties.put("FileName", "favorite.avi");

Analytics.trackEvent("eventName", properties, Flags.CRITICAL);

// If you're using name only, you can pass null as properties.
val properties = hashMapOf("Category" to "Music", "FileName" to "favorite.avi")
Analytics.trackEvent("Video clicked", properties, Flags.CRITICAL)

// If you're using name only, you can pass null as properties.

Приостановка и возобновление отправки журналов

Приостановка передачи событий может быть полезна в сценариях, когда приложению необходимо управлять пропускной способностью сети для более важных бизнес-потребностей. Вы можете приостановить отправку журналов в серверную часть Центра приложений. При приостановке события по-прежнему можно отслеживать и сохранять, но они отправляются не сразу. Все события, которые приложение отслеживает во время приостановки, будут отправляться только после вызова resume.

Analytics.pause();
Analytics.resume();
Analytics.pause()
Analytics.resume()

Включение или отключение аналитики Центра приложений во время выполнения

Вы можете включать и отключать аналитику Центра приложений во время выполнения. Если вы отключите его, пакет SDK не будет собирать дополнительные аналитические сведения для приложения.

Analytics.setEnabled(false);
Analytics.setEnabled(false)

Чтобы снова включить Аналитику Центра приложений, используйте тот же API, но передайте true в качестве параметра.

Analytics.setEnabled(true);
Analytics.setEnabled(true)

Состояние сохраняется в хранилище устройства при запусках приложений.

Этот API является асинхронным. Дополнительные сведения см. в руководстве по асинхронным API Центра приложений .

Примечание

Этот метод следует использовать только после Analytics запуска.

Проверьте, включена ли аналитика Центра приложений

Вы также можете проверка, включена ли аналитика Центра приложений.

Analytics.isEnabled();
Analytics.isEnabled()

Этот API является асинхронным. Дополнительные сведения см. в руководстве по асинхронным API Центра приложений .

Примечание

Этот метод следует использовать только после Analytics запуска. Он всегда возвращается false перед запуском.

Управление сеансом запуска

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

Примечание

Обратите внимание, что каждый вызов API Analytics.StartSession() создает новый сеанс. Если в режиме отслеживания сеансов вручную этот API не будет вызываться, то все журналы отправки будут иметь значение null сеанса.

Примечание

Обратите внимание, что после запуска нового приложения идентификатор сеанса будет повторно создан.

  • Вызовите следующий метод перед запуском пакета SDK:
Analytics.enableManualSessionTracker();
Analytics.enableManualSessionTracker()
  • Затем можно использовать startSession API после AppCenter.start:
Analytics.startSession();
Analytics.startSession()

Размер локального хранилища

По умолчанию пакет SDK хранит все журналы событий размером до 10 МБ. Разработчики могут использовать API для увеличения размера хранилища , а пакет SDK будет хранить журналы до тех пор, пока хранилище не будет заполнено.

Нет доступа к Интернету

Если сетевое подключение отсутствует, пакет SDK сохраняет до 10 МБ журналов в локальном хранилище. После заполнения хранилища пакет SDK начинает удалять старые журналы, чтобы освободить место для новых журналов. После возврата сетевого подключения пакет SDK отправляет журналы в пакете 50 или через каждые 6 секунд (по умолчанию).

Примечание

Журналы старше 25 дней не будут приняты серверной частью.

Пакетная обработка журналов событий

Пакет SDK центра приложений отправляет журналы пакетом из 50, и если пакет SDK не содержит 50 журналов для отправки, он по-прежнему будет отправлять журналы через 6 секунд (по умолчанию). Может быть отправлено не более трех пакетов параллельно. Интервал передачи можно изменить:

// Change transmission interval to 10 seconds.
Analytics.setTransmissionInterval(10000);
// Change transmission interval to 10 seconds.
Analytics.setTransmissionInterval(10000)

Значение интервала передачи должно быть от 6 до 86400 секунд (один день), и этот метод должен вызываться перед запуском службы.

Логика повторов и откатов

Пакет SDK центра приложений поддерживает повторные попытки восстановления при сетевых ошибках, которые можно восстановить. Ниже приведена логика повторных попыток.

  • Не более 3 попыток на запрос.
  • Каждый запрос имеет собственный конечный автомат повтора.
  • Все каналы передачи отключаются (до следующего процесса приложения) после того, как один запрос исчерпает все свои повторные попытки.

Логика отката

  • 50 % случайных значений, сначала повторите попытку от 5 до 10 секунд, следующую попытку от 2,5 до 5 минут, последнюю попытку от 10 до 20 минут.
  • Если сеть переключается с выключения на включено (или с Wi-Fi на мобильное устройство), состояния повторных попыток сбрасываются, и запросы немедленно повторяются.