Поделиться через


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

Это важно

Центр приложений Visual Studio был прекращен 31 марта 2025 г., за исключением функций аналитики и диагностики, которые будут поддерживаться до 30 июня 2026 г. Подробнее.

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

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

Замечание

Чтобы использовать приведенные ниже API, необходимо добавить в файл следующую using инструкцию .cs :

using Microsoft.AppCenter.Unity.Analytics;

Кроме того, необходимо убедиться, что параметр Use Analytics установлен в параметрах игрового объекта App Center.

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

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

Пользовательские события

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

TrackEvent() Используйте метод для отслеживания событий с помощью свойств. Вы можете отправлять до 200 различных имен событий. Существует максимальное ограничение в 256 символов на имя события и 125 символов на имя и значение свойства события.

Analytics.TrackEvent("Video clicked", new Dictionary<string, string> {
	{ "Category", "Music" },
	{ "FileName", "favorite.avi" }
});

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

Analytics.TrackEvent("Video clicked");

Предупреждение

Analytics.TrackEvent() будет вести себя непоследовательно между платформами, если он вызывается до метода Awake() в скрипте AppCenterBehavior.cs. Для надежности, вы должны полагаться только на события, которые будут отправлены после того, как первая сцена в вашем приложении пробудит все MonoBehaviour скрипты. Чтобы отслеживать событие в сочетании с инициализацией MonoBehavour, попробуйте добавить API в метод Start() вашего скрипта вместо Awake().

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

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

Analytics.SetEnabledAsync(false);

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

Analytics.SetEnabledAsync(true);

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

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

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

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

bool isEnabled = await Analytics.IsEnabledAsync();

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

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

Разработчики могут задать сохраняемость событий как обычные (Flags.PersistenceNormal в API) или критически важные (Flags.PersistenceCritical в API).

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

Analytics.TrackEvent("eventName", Flags.PersistenceCritical);

Если вы используете свойства:

Analytics.TrackEvent("eventName", new Dictionary<string, string> {
	{ "Category", "Music" },
	{ "FileName", "favorite.avi" }
}, Flags.PersistenceCritical);

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

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

Analytics.Pause();
Analytics.Resume();

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

Управление начальным сеансом

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

Замечание

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

Замечание

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

  • Снимите флажок Enable Manual Session Tracker в разделе "Аналитика " для объекта игры с присоединенным AppCenterBehavior .
  • Затем вы можете использовать StartSession API после AppCenter.Start.
Analytics.StartSession();

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

По умолчанию пакет SDK хранит до 10 МБ журналов в хранилище.

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

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

Журналы событий пакетной обработки

SDK Центра приложений отправляет журналы партиями по 50, и если в наличии нет 50 журналов для отправки, он все равно отправит журналы через 6 секунд. В параллельном режиме может быть отправлено не более трех пакетов.

Логика повторной попытки и постепенного отступления

Пакет SDK для Центра приложений поддерживает повторные попытки восстановления при возникновении ошибок сети, доступных для восстановления. Ниже приведена логика повторных попыток:

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

Логика резервного копирования

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