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


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

Важно!

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

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

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

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

Примечание

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

using Microsoft.AppCenter.Unity.Analytics;

Также необходимо убедиться, что в параметрах игрового объекта Центра приложений установлен флажок Использовать аналитику .

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

После добавления аналитики Центра приложений и запуска пакета 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 сеанса.

Примечание

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

  • Снимите флажок Включить отслеживание сеансов вручную в разделе Аналитика для игрового объекта с присоединенным AppCenterBehavior .
  • Затем можно использовать StartSession API после AppCenter.Start:
Analytics.StartSession();

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

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

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

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

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

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

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

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

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

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

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