Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Центр приложений Visual Studio был прекращен 31 марта 2025 г., за исключением функций аналитики и диагностики, которые будут поддерживаться до 30 июня 2026 г. Подробнее.
Аналитика Центра приложений помогает понять поведение пользователей и взаимодействие с клиентами для улучшения приложения. Пакет 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()
- Затем вы можете использовать
startSessionAPI после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 на мобильные устройства), состояния повторных попыток сбрасываются, и запросы повторяются немедленно.